]> begriffs open source - libtap/blob - Makefile
Add Travis CI config
[libtap] / Makefile
1 CFLAGS = -g -Wall -I.
2 CC = gcc
3 TESTS = $(patsubst %.c, %, $(wildcard t/*.c))
4
5 ifdef ANSI
6         # -D_BSD_SOURCE for MAP_ANONYMOUS
7         CFLAGS += -ansi -D_BSD_SOURCE
8         LDLIBS += -lbsd-compat
9 endif
10
11 %:
12         $(CC) $(LDFLAGS) $(TARGET_ARCH) $(filter %.o %.a %.so, $^) $(LDLIBS) -o $@
13
14 %.o:
15         $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $(filter %.c, $^) $(LDLIBS) -o $@
16
17 %.a:
18         $(AR) rcs $@ $(filter %.o, $^)
19
20 %.so:
21         $(CC) -shared $(LDFLAGS) $(TARGET_ARCH) $(filter %.o, $^) $(LDLIBS) -o $@
22
23 all: libtap.a tests
24
25 libtap.a: tap.o
26
27 tap.o: tap.c tap.h
28
29 tests: $(TESTS)
30
31 $(TESTS): %: %.o libtap.a
32
33 $(patsubst %, %.o, $(TESTS)): %.o: %.c tap.h
34
35 clean:
36         rm -rf *.o t/*.o libtap.a $(TESTS)
37
38 install: libtap.a tap.h
39         sudo cp libtap.a /usr/lib
40         sudo cp tap.h /usr/include
41
42 uninstall:
43         sudo rm /usr/lib/libtap.a /usr/include/tap.h
44
45 dist:
46         rm libtap.zip
47         zip -r libtap *
48
49 check test: all
50         prove
51
52 .PHONY: all clean install uninstall dist check test tests
53