]> begriffs open source - libtap/blob - Makefile
Remove the extra whitespace
[libtap] / Makefile
1 CFLAGS = -g -Wall -I. -fPIC
2 CC = gcc
3 PREFIX = $(DESTDIR)/usr/local
4 TESTS = $(patsubst %.c, %, $(wildcard t/*.c))
5
6 ifdef ANSI
7         # -D_BSD_SOURCE for MAP_ANONYMOUS
8         CFLAGS += -ansi -D_BSD_SOURCE
9         LDLIBS += -lbsd-compat
10 endif
11
12 ifdef TAP_COLOR_OUTPUT
13         CFLAGS += -DTAP_COLOR_OUTPUT
14 endif
15
16 %:
17         $(CC) $(LDFLAGS) $(TARGET_ARCH) $(filter %.o %.a %.so, $^) $(LDLIBS) -o $@
18
19 %.o:
20         $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $(filter %.c, $^) $(LDLIBS) -o $@
21
22 %.a:
23         $(AR) rcs $@ $(filter %.o, $^)
24
25 %.so:
26         $(CC) -shared $(LDFLAGS) $(TARGET_ARCH) $(filter %.o, $^) $(LDLIBS) -o $@
27
28 all: libtap.a libtap.so tap.pc tests
29
30 tap.pc:
31         @echo generating tap.pc
32         @echo 'prefix='$(PREFIX) > tap.pc
33         @echo 'exec_prefix=$${prefix}' >> tap.pc
34         @echo 'libdir=$${prefix}/lib' >> tap.pc
35         @echo 'includedir=$${prefix}/include' >> tap.pc
36         @echo '' >> tap.pc
37         @echo 'Name: libtap' >> tap.pc
38         @echo 'Description: Write tests in C' >> tap.pc
39         @echo 'Version: 0.1.0' >> tap.pc
40         @echo 'URL: https://github.com/zorgnax/libtap' >> tap.pc
41         @echo 'Libs: -L$${libdir} -ltap' >> tap.pc
42         @echo 'Cflags: -I$${includedir}' >> tap.pc
43
44 libtap.a: tap.o
45
46 libtap.so: tap.o
47
48 tap.o: tap.c tap.h
49
50 tests: $(TESTS)
51
52 $(TESTS): %: %.o libtap.a
53
54 $(patsubst %, %.o, $(TESTS)): %.o: %.c tap.h
55
56 clean:
57         rm -rf *.o t/*.o tap.pc libtap.a libtap.so $(TESTS)
58
59 install: libtap.a tap.h libtap.so tap.pc
60         mkdir -p $(PREFIX)/lib $(PREFIX)/include $(PREFIX)/lib/pkgconfig
61         install -c libtap.a $(PREFIX)/lib
62         install -c libtap.so $(PREFIX)/lib
63         install -c tap.pc $(PREFIX)/lib/pkgconfig
64         install -c tap.h $(PREFIX)/include
65
66 uninstall:
67         rm $(PREFIX)/lib/libtap.a $(PREFIX)/lib/libtap.so $(PREFIX)/include/tap.h
68
69 dist:
70         rm libtap.zip
71         zip -r libtap *
72
73 check test: all
74         perl t/test.t
75
76 .PHONY: all clean install uninstall dist check test tests