4 CFLAGS = -Iinclude -fPIC
6 MAKEFILES = Makefile build/$(VARIANT)/extra.mk
8 OBJS = build/$(VARIANT)/vector.o build/$(VARIANT)/list.o build/$(VARIANT)/hashmap.o build/$(VARIANT)/treemap.o
12 include build/$(VARIANT)/extra.mk
14 lib : build/$(VARIANT)/libderp.so build/$(VARIANT)/libderp.a
16 build/$(VARIANT)/libderp.a : $(OBJS)
19 build/$(VARIANT)/libderp.so : $(OBJS)
20 $(CC) $(CFLAGS) -shared $(OBJS) -o $@
22 tests : build/$(VARIANT)/test/t_vector build/$(VARIANT)/test/t_list build/$(VARIANT)/test/t_hashmap build/$(VARIANT)/test/t_treemap
24 build/$(VARIANT)/vector.o : src/vector.c include/vector.h include/common.h $(MAKEFILES)
25 rm -f build/$(VARIANT)/vector.gcda
26 $(CC) $(CFLAGS) -o $@ -c src/vector.c
28 build/$(VARIANT)/list.o : src/list.c include/list.h include/common.h $(MAKEFILES)
29 rm -f build/$(VARIANT)/list.gcda
30 $(CC) $(CFLAGS) -o $@ -c src/list.c
32 build/$(VARIANT)/hashmap.o : src/hashmap.c include/hashmap.h include/list.h include/common.h $(MAKEFILES)
33 rm -f build/$(VARIANT)/hashmap.gcda
34 $(CC) $(CFLAGS) -o $@ -c src/hashmap.c
36 build/$(VARIANT)/treemap.o : src/treemap.c include/treemap.h include/common.h $(MAKEFILES)
37 rm -f build/$(VARIANT)/treemap.gcda
38 $(CC) $(CFLAGS) -o $@ -c src/treemap.c
40 build/$(VARIANT)/test/t_vector : build/$(VARIANT)/vector.o test/t_vector.c
42 $(CC) $(CFLAGS) $(LDFLAGS) -o $@ build/$(VARIANT)/vector.o test/t_vector.c $(LDLIBS)
44 build/$(VARIANT)/test/t_list : build/$(VARIANT)/list.o test/t_list.c
46 $(CC) $(CFLAGS) $(LDFLAGS) -o $@ build/$(VARIANT)/list.o test/t_list.c $(LDLIBS)
48 build/$(VARIANT)/test/t_hashmap : build/$(VARIANT)/hashmap.o build/$(VARIANT)/list.o test/t_hashmap.c
50 $(CC) $(CFLAGS) $(LDFLAGS) -o $@ build/$(VARIANT)/hashmap.o build/$(VARIANT)/list.o test/t_hashmap.c $(LDLIBS)
52 build/$(VARIANT)/test/t_treemap : build/$(VARIANT)/treemap.o test/t_treemap.c
54 $(CC) $(CFLAGS) $(LDFLAGS) -o $@ build/$(VARIANT)/treemap.o test/t_treemap.c $(LDLIBS)