8385c3acc14e32dabfce5d18edd196f8284fe34e
[apps/agl-service-can-low-level.git] / Makefile
1 CC = gcc
2 INCLUDES = -Isrc
3 CFLAGS = $(INCLUDES) -c -w -Wall -Werror -g -ggdb
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 OBJS = $(SRC:.c=.o)
20 TEST_SRC = $(wildcard $(TEST_DIR)/*.c)
21 TEST_OBJS = $(TEST_SRC:.c=.o)
22
23 all: $(OBJS)
24
25 test: $(TEST_DIR)/tests.bin
26         @set -o $(TEST_SET_OPTS) >/dev/null 2>&1
27         @export SHELLOPTS
28         @sh runtests.sh $(TEST_DIR)
29
30 $(TEST_DIR)/tests.bin: $(TEST_OBJS) $(OBJS)
31         @mkdir -p $(dir $@)
32         $(CC) $(LDFLAGS) $(CC_SYMBOLS) $(INCLUDES) -o $@ $^ $(LDLIBS)
33
34 clean:
35         rm -rf **/*.o $(TEST_DIR)/*.bin