59 lines
1.7 KiB
Makefile
59 lines
1.7 KiB
Makefile
.POSIX:
|
|
.PHONY: tests clean string_tests htable_tests
|
|
.SUFFIXES:
|
|
.SUFFIXES: .c .o .test
|
|
CC=cc
|
|
TEST_WRAPPER=valgrind --exit-on-first-error=yes
|
|
|
|
CFLAGS=-Wall -std=c89 -Werror -pedantic -fPIC -g -Iinclude -I. -Wno-unused-function -Wno-unused-variable ${EXTRACFLAGS}
|
|
|
|
tests: string_tests htable_tests
|
|
|
|
with_valgrind:
|
|
make EXTRACFLAGS=-DUNS_VALGRIND
|
|
|
|
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
|