aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile51
1 files changed, 39 insertions, 12 deletions
diff --git a/Makefile b/Makefile
index 86991e5..78d7e5b 100644
--- a/Makefile
+++ b/Makefile
@@ -1,21 +1,48 @@
-.PHONY: test clean
+.POSIX:
+.PHONY: tests clean string_tests htable_tests
+.SUFFIXES:
+.SUFFIXES: .c .o .test
+CC=cc
+
+CFLAGS=-Wall -std=c89 -Werror -pedantic -fPIC -g -Iinclude
+
+tests: string_tests htable_tests
COMMON_OBJECTS=uns.o
-CHENEY_C89_OBJECTS=cheney_c89.o c89_relo.o
-CFLAGS=-Wall -std=c89 -Werror -pedantic -fPIC -g -Iinclude
+uns.o: uns.c include/uns.h
+
+libuniversalservice.so: uns.o ${ALL_COLLECTORS}
+ ${CC} -shared uns.o ${ALL_COLLECTORS} -o libuniversalservice.so
-libuniversalservice.so: $(COMMON_OBJECTS) $(CHENEY_C89_OBJECTS)
- $(CC) -shared $(COMMON_OBJECTS) $(CHENEY_C89_OBJECTS) -o libuniversalservice.so
.c.o:
- $(CC) $(CFLAGS) $< -c -o $@
+ ${CC} ${CFLAGS} $< -c -o $@
-test:
-
+## Collectors
+CHENEY_C89_OBJS = cheney_c89.o
+cheney_c89.o: cheney_c89.c include/uns.h include/cheney_c89.h
-###################
-## Clean
-##################
+COLLECTOR_OBJS=${CHENEY_C89_OBJS}
+## Example libraries
+examples/string/uns_string.o: examples/string/uns_string.c \
+ examples/string/uns_string.h \
+ include/uns.h
+
+UNS_STRING_OBJS=examples/string/uns_string.o
+
+examples/hashtable/uns_hashtable.o: examples/hashtable/uns_hashtable.c \
+ examples/hashtable/uns_hashtable.h \
+ include/uns.h
+UNS_HASHTABLE_OBJS=examples/hashtable/uns_hashtable.o
+
+EXAMPLE_OBJS=${UNS_STRING_OBJS} ${UNS_HASHTABLE_OBJS}
+
+## Clean
clean:
- rm -f $(COMMON_OBJECTS) $(CHENEY_C89_OBJECTS) libuniversalservice.so
+ ${RM} -f ${COMMON_OBJECTS} libuniversalservice.so \
+ ${TEST_OBJS} ${COLLECTOR_OBJS} ${EXAMPLE_OBJS}
+
+tests.makefile: gen_tests.sh
+ ./gen_tests.sh > tests.makefile
+include tests.makefile