55 lines
1.5 KiB
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
|