]> begriffs open source - libderp/blob - Makefile
Find Boehm faster on mac
[libderp] / Makefile
1 .POSIX :
2
3 VARIANT = release
4 CFLAGS = -Iinclude -g $(EXTRA_CFLAGS)
5
6 MAKEFILES = Makefile build/$(VARIANT)/extra.mk config.mk
7
8 OBJS = build/$(VARIANT)/common.o \
9            build/$(VARIANT)/vector.o \
10            build/$(VARIANT)/list.o \
11            build/$(VARIANT)/hashmap.o \
12            build/$(VARIANT)/treemap.o
13
14 OBJS_PIC = build/$(VARIANT)/pic/common.o \
15                    build/$(VARIANT)/pic/vector.o \
16                    build/$(VARIANT)/pic/list.o \
17                    build/$(VARIANT)/pic/hashmap.o \
18                    build/$(VARIANT)/pic/treemap.o
19
20 COMMON_HEADERS = include/derp/common.h include/internal/alloc.h
21
22 .SUFFIXES :
23
24 include config.mk
25 include build/$(VARIANT)/extra.mk
26
27 lib : build/$(VARIANT)/libderp.${SO} build/$(VARIANT)/libderp.a
28
29 build/$(VARIANT)/libderp.a : $(OBJS)
30         $(AR) r $@ $?
31
32 build/$(VARIANT)/libderp.${SO} : $(OBJS_PIC) VERSION
33         $(CC) $(CFLAGS) -fPIC ${SOFLAGS} $(OBJS_PIC) -o $@
34
35 tests : build/$(VARIANT)/test/t_vector build/$(VARIANT)/test/t_list build/$(VARIANT)/test/t_hashmap build/$(VARIANT)/test/t_treemap
36
37 build/$(VARIANT)/common.o : src/common.c $(COMMON_HEADERS) $(MAKEFILES)
38         $(CC) $(CFLAGS) -o $@ -c src/common.c
39 build/$(VARIANT)/pic/common.o : src/common.c $(COMMON_HEADERS) $(MAKEFILES)
40         $(CC) $(CFLAGS) -fPIC -o $@ -c src/common.c
41
42 build/$(VARIANT)/vector.o : src/vector.c include/derp/vector.h $(COMMON_HEADERS) $(MAKEFILES)
43         $(CC) $(CFLAGS) -o $@ -c src/vector.c
44 build/$(VARIANT)/pic/vector.o : src/vector.c include/derp/vector.h $(COMMON_HEADERS) $(MAKEFILES)
45         $(CC) $(CFLAGS) -fPIC -o $@ -c src/vector.c
46
47 build/$(VARIANT)/list.o : src/list.c include/derp/list.h $(COMMON_HEADERS) $(MAKEFILES)
48         $(CC) $(CFLAGS) -o $@ -c src/list.c
49 build/$(VARIANT)/pic/list.o : src/list.c include/derp/list.h $(COMMON_HEADERS) $(MAKEFILES)
50         $(CC) $(CFLAGS) -fPIC -o $@ -c src/list.c
51
52 build/$(VARIANT)/hashmap.o : src/hashmap.c include/derp/hashmap.h include/derp/list.h $(COMMON_HEADERS) $(MAKEFILES)
53         $(CC) $(CFLAGS) -o $@ -c src/hashmap.c
54 build/$(VARIANT)/pic/hashmap.o : src/hashmap.c include/derp/hashmap.h include/derp/list.h $(COMMON_HEADERS) $(MAKEFILES)
55         $(CC) $(CFLAGS) -fPIC -o $@ -c src/hashmap.c
56
57 build/$(VARIANT)/treemap.o : src/treemap.c include/derp/treemap.h include/derp/list.h $(COMMON_HEADERS) $(MAKEFILES)
58         $(CC) $(CFLAGS) -o $@ -c src/treemap.c
59 build/$(VARIANT)/pic/treemap.o : src/treemap.c include/derp/treemap.h include/derp/list.h $(COMMON_HEADERS) $(MAKEFILES)
60         $(CC) $(CFLAGS) -fPIC -o $@ -c src/treemap.c
61
62 build/$(VARIANT)/test/t_vector : build/$(VARIANT)/common.o build/$(VARIANT)/vector.o test/t_vector.c
63         $(CC) $(CFLAGS) $(LDFLAGS) -o $@ build/$(VARIANT)/common.o build/$(VARIANT)/vector.o test/t_vector.c $(LDLIBS)
64
65 build/$(VARIANT)/test/t_list : build/$(VARIANT)/common.o build/$(VARIANT)/list.o test/t_list.c
66         $(CC) $(CFLAGS) $(LDFLAGS) -o $@ build/$(VARIANT)/common.o build/$(VARIANT)/list.o test/t_list.c $(LDLIBS)
67
68 build/$(VARIANT)/test/t_hashmap : build/$(VARIANT)/common.o build/$(VARIANT)/hashmap.o build/$(VARIANT)/list.o test/t_hashmap.c
69         $(CC) $(CFLAGS) $(LDFLAGS) -o $@ build/$(VARIANT)/common.o build/$(VARIANT)/hashmap.o build/$(VARIANT)/list.o test/t_hashmap.c $(LDLIBS)
70
71 build/$(VARIANT)/test/t_treemap : build/$(VARIANT)/common.o build/$(VARIANT)/treemap.o build/$(VARIANT)/list.o test/t_treemap.c
72         $(CC) $(CFLAGS) $(LDFLAGS) -o $@ build/$(VARIANT)/common.o build/$(VARIANT)/treemap.o build/$(VARIANT)/list.o test/t_treemap.c $(LDLIBS)