Initial commit.
[apps/agl-service-can-low-level.git] / Makefile
1 CC = gcc
2 INCLUDES = -Isrc -Ideps/bitfield-c/src -Ideps/isotp-c/src
3 CFLAGS = $(INCLUDES) -c -w -Wall -Werror -g -ggdb -std=c99
4 LDFLAGS =
5 LDLIBS = -lcheck
6
7 TEST_DIR = tests
8
9 # Guard against \r\n line endings only in Cygwin
10 OSTYPE := $(shell uname)
11 ifneq ($(OSTYPE),Darwin)
12         OSTYPE := $(shell uname -o)
13         ifeq ($(OSTYPE),Cygwin)
14                 TEST_SET_OPTS = igncr
15         endif
16 endif
17
18 SRC = $(wildcard src/**/*.c)
19 SRC += $(wildcard deps/bitfield-c/src/**/*.c)
20 SRC += $(wildcard deps/isotp-c/src/**/*.c)
21 OBJS = $(SRC:.c=.o)
22 TEST_SRC = $(wildcard $(TEST_DIR)/test_*.c)
23 TESTS=$(patsubst %.c,%.bin,$(TEST_SRC))
24 TEST_SUPPORT_SRC = $(TEST_DIR)/common.c
25 TEST_SUPPORT_OBJS = $(TEST_SUPPORT_SRC:.c=.o)
26
27 all: $(OBJS)
28
29 test: $(TESTS)
30         @set -o $(TEST_SET_OPTS) >/dev/null 2>&1
31         @export SHELLOPTS
32         @sh runtests.sh $(TEST_DIR)
33
34 $(TEST_DIR)/%.bin: $(TEST_DIR)/%.o $(OBJS) $(TEST_SUPPORT_OBJS)
35         @mkdir -p $(dir $@)
36         $(CC) $(LDFLAGS) $(CC_SYMBOLS) $(INCLUDES) -o $@ $^ $(LDLIBS)
37
38 clean:
39         rm -rf **/*.o $(TEST_DIR)/*.bin