summaryrefslogtreecommitdiff
path: root/cros_ec/test/Makefile
blob: 84c766495decf6b3f4c858747905aeaa8ecdb265 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

INCLUDES += -I./include \
		-I$(CROS_EC_DIR)/lib/include \
		-I../../
BUILD_ROOT = ${BUILD}/cros_ec/test

TEST_NAMES = ec_os_test ec_keyboard_test

TEST_BINS = $(addprefix ${BUILD_ROOT}/,$(TEST_NAMES))

# TODO: port over test lib from vboot_reference
# TEST_LIB = ${BUILD_ROOT}/test.a
# TEST_LIB_SRCS = test_common.c timer_utils.c
# TEST_LIB_OBJS = $(TEST_LIB_SRCS:%.c=${BUILD_ROOT}/%.o)
# ALL_DEPS = $(addsuffix .d,${TEST_BINS} ${TEST_LIB_OBJS})

# Allow multiple definitions, so tests can mock functions from other libraries
CFLAGS +=  -MMD -MF $@.d -Xlinker --allow-multiple-definition

LIBS := ${TEST_LIB} $(CROS_EC_LIB) $(CHIP_STUB_LIB)

.SUFFIXES:
.SUFFIXES: .o .c

ifneq (${RUNTESTS},)
EXTRA_TARGET = runtests
endif

all: $(TEST_BINS) ${EXTRA_TARGET}

# ${TEST_LIB}: ${TEST_LIB_OBJS}
#	rm -f $@
#	ar qc $@ $^

${BUILD_ROOT}/%.o : %.c
	$(CC) $(CFLAGS) $(INCLUDES) -MMD -MF $@.d -c -o $@ $<

${BUILD_ROOT}/% : %.c ${LIBS}
	$(CC) $(CFLAGS) $(INCLUDES) $< ${LIBS} -o $@ -lrt

ALLTESTS = ec_os_test ec_keyboard_test

runtests:
	${BUILD_ROOT}/ec_os_test
	${BUILD_ROOT}/ec_keyboard_test

-include ${ALL_DEPS}