universalservice/Makefile

55 lines
1.5 KiB
Makefile

.POSIX:
.PHONY: tests clean string_tests htable_tests
.SUFFIXES:
.SUFFIXES: .c .o .test
CC=cc
CFLAGS=-Wall -std=c89 -Werror -pedantic -fPIC -g -Iinclude -I.
tests: string_tests htable_tests
COMMON_OBJECTS=uns.o
uns.o: uns.c include/uns.h
libuniversalservice.so: uns.o ${ALL_COLLECTORS}
${CC} -shared uns.o ${ALL_COLLECTORS} -o libuniversalservice.so
.c.o:
${CC} ${CFLAGS} $< -c -o $@
## Collectors
CHENEY_C89_OBJS = cheney_c89.o
cheney_c89.o: cheney_c89.c include/uns.h include/cheney_c89.h
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
examples/lisp/uns_lisp.o: include/uns.h \
examples/lisp/uns_lisp.c \
examples/string/uns_string.h
UNS_LISP_OBJS=examples/lisp/uns_lisp.o examples/string/uns_string.o
EXAMPLE_OBJS=${UNS_STRING_OBJS} ${UNS_HASHTABLE_OBJS}
## Clean
clean: clean_tests
${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