]> git.llucax.com Git - software/posixx.git/blob - src/Makefile
Use Boost Unit Test Framework MT library
[software/posixx.git] / src / Makefile
1
2 # Build flags (include general stuff in the .pc file instead)
3 LOCAL_CFLAGS =
4 LOCAL_LDFLAGS =
5
6 # XXX: The cut pipe is to strip the leading "./" from find results. It's
7 #      a little ugly but I couldn't find a better way to get a list of all
8 #      headers in the directory (recursively).
9 HEADERS = $(shell find -name '*.hpp' | cut -b3-)
10 HDRPATH = posixx
11 PCFILE = posixx.pc
12 PCTEMPLATE = $(PCFILE).template
13
14 # prefix for installing the binaries
15 prefix = /usr/local
16
17
18 # Flags fetched from pkg-config .pc file
19 ifneq ($(PCTEMPLATE), )
20 PKG_LIB = $(shell grep Libs.private: $(PCTEMPLATE) | cut -d' ' -f2-)
21 PKG_REQ = $(shell grep Requires: $(PCTEMPLATE) | cut -d' ' -f2-)
22 ifneq ($(PKG_REQ), )
23 PKG_REQ_CFLAGS = $(shell pkg-config --cflags $(PKG_REQ))
24 PKG_REQ_LDFLAGS = $(shell pkg-config --libs $(PKG_REQ))
25 endif
26 endif
27
28 # XXX: LI_* variables are for internal use only
29 # (for the super-repository local-install target)
30 ALL_CFLAGS = $(LOCAL_CFLAGS) $(PKG_REQ_CFLAGS) $(LI_CFLAGS) $(CFLAGS)
31 ALL_LDFLAGS = $(LOCAL_LDFLAGS) $(PKG_LIB) $(PKG_REQ_LDFLAGS) $(LI_LDFLAGS) \
32                 $(LDFLAGS)
33
34
35 # install command
36 INSTALL = install -p -m 0644 -D
37
38
39 # install utility functions
40 install_msg = echo "  INSTALL $(1)"
41
42 install_files = @$(call install_msg,$(2)) && \
43         for f in $(1); do \
44                 $(call install,$$f,$(2)/$$f); \
45         done && \
46         touch $@
47
48 ifneq ($(V), 1)
49 NICE_CLEAN = @echo "  CLEAN"; $(RM)
50 install = $(INSTALL) $(1) $(2)
51 else
52 NICE_CLEAN = $(RM) -v
53 install = $(call install_msg,$(2)); $(INSTALL) $(1) $(2)
54 endif
55
56
57 default: all
58
59 all:
60
61 $(PCFILE): $(PCTEMPLATE)
62         @sed 's|PREFIX|$(prefix)|' $< > $@
63
64 install: install-headers install-pc
65
66 install-headers: .install-headers-stamp
67
68 .install-headers-stamp: $(HEADERS)
69         $(call install_files,$^,$(prefix)/include/$(HDRPATH))
70
71 install-pc: .install-pc-stamp
72
73 .install-pc-stamp: $(PCFILE)
74         $(call install_files,$^,$(prefix)/lib/pkgconfig)
75
76 clean:
77         $(NICE_CLEAN) $(PCFILE) .*-stamp
78
79 .PHONY: default all install install-headers install-pc clean
80