Forget all those old .a files, just make a big libwvstatic.a.
[wvstreams.git] / wvrules-posix.mk
blobb8bfe36259072aed11f195da4d1213fabcb1211a
1 LIBWVBASE=$(WVSTREAMS_LIB)/libwvbase.so $(LIBXPLC)
2 LIBWVUTILS=$(WVSTREAMS_LIB)/libwvutils.so $(LIBWVBASE)
3 LIBWVSTREAMS=$(WVSTREAMS_LIB)/libwvstreams.so $(LIBWVUTILS)
4 LIBWVOGG=$(WVSTREAMS_LIB)/libwvoggvorbis.so $(LIBWVSTREAMS)
5 LIBUNICONF=$(WVSTREAMS_LIB)/libuniconf.so $(LIBWVSTREAMS)
6 LIBWVDBUS=$(WVSTREAMS_LIB)/libwvdbus.so $(LIBWVSTREAMS)
7 LIBWVQT=$(WVSTREAMS_LIB)/libwvqt.so $(LIBWVSTREAMS)
8 LIBWVTEST=$(WVSTREAMS_LIB)/libwvtest.a $(LIBWVUTILS)
9 LIBWVSTATIC=$(WVSTREAMS_LIB)/libwvstatic.a
12 # Initial C compilation flags
14 INCFLAGS=$(addprefix -I,$(WVSTREAMS_INC) $(XPATH))
16 CPPFLAGS += $(CPPOPTS)
17 CFLAGS += $(COPTS)
18 CXXFLAGS += $(CXXOPTS)
19 LDFLAGS += $(LDOPTS) -L$(WVSTREAMS_LIB)
21 # Default compiler we use for linking
22 WVLINK_CC = $(CXX)
24 ifneq ("$(enable_optimization)", "no")
25 CXXFLAGS+=-O2
26 CFLAGS+=-O2
27 endif
29 ifneq ("$(enable_warnings)", "no")
30 CXXFLAGS+=-Wall -Woverloaded-virtual
31 CFLAGS+=-Wall
32 endif
34 DEBUG:=$(filter-out no 0,$(enable_debug))
35 ifdef DEBUG
36 CPPFLAGS += -ggdb -DDEBUG=1 $(patsubst %,-DDEBUG_%,$(DEBUG))
37 LDFLAGS += -ggdb
38 else
39 CPPFLAGS += -DDEBUG=0
40 LDFLAGS +=
41 endif
43 define wvlink_ar
44 $(LINK_MSG)set -e; rm -f $1 $(patsubst %.a,%.libs,$1); \
45 echo $2 >$(patsubst %.a,%.libs,$1); \
46 $(AR) q $1 $(filter %.o,$2); \
47 for d in "" $(filter %.libs,$2); do \
48 if [ "$$d" != "" ]; then \
49 cd $$(dirname "$$d"); \
50 $(AR) q $(shell pwd)/$1 $$(cat $$(basename $$d)); \
51 cd $(shell pwd); \
52 fi; \
53 done; \
54 $(AR) s $1
55 endef
57 define wvcc_base
58 @rm -f "$1"
59 $(COMPILE_MSG)$4 $5 $2 -o $1
60 @# The Perl script here generates the proper dependencies, including
61 @# null dependencies so Make doesn't complain
62 $(DEPEND_MSG)$4 -M -E $< \
63 | perl -we \
64 '$$a = '"'"'$1'"'"'; \
65 $$\ = $$/; \
66 local $$/; \
67 while (<>) { \
68 for (split(/(?<!\\)$$/m)) { \
69 s/^[^:]+:\s*/$$a: /; \
70 print; \
71 if (s/^$$a: //) { \
72 map {print "$$_:" unless m/^\\$$/} (split(/\s+/));\
73 } \
74 } \
75 }' >$(DEPFILE)
76 endef
78 wvlink=$(LINK_MSG)$(CC) $(LDFLAGS) $($1-LDFLAGS) -o $1 $(filter %.o %.a %.so, $2) $($1-LIBS) $(LIBS) $(XX_LIBS) $(LDLIBS)