Make WvStreams compile with gcc 4.4.
[wvstreams.git] / wvrules-posix.mk
blobac2f9fd6a3aa8158c57641a9a6462ae7a45c877c
1 ifdef _WIN32
2 LIBWVSTATIC=$(WVSTREAMS_LIB)/libwvstatic.a
3 LIBWVBASE=$(LIBWVSTATIC)
4 LIBWVUTILS=$(LIBWVSTATIC)
5 LIBWVSTREAMS=$(LIBWVSTATIC)
6 LIBUNICONF=$(LIBWVSTATIC)
7 LIBWVDBUS=$(LIBWVSTATIC) $(LIBS_DBUS)
8 LIBWVQT=$(LIBWVSTATIC)
9 LIBWVTEST=$(WVSTREAMS_LIB)/libwvtest.a $(LIBWVUTILS)
10 else
11 LIBWVSTATIC=$(WVSTREAMS_LIB)/libwvstatic.a
12 LIBWVBASE=$(WVSTREAMS_LIB)/libwvbase.so
13 LIBWVUTILS=$(WVSTREAMS_LIB)/libwvutils.so $(LIBWVBASE)
14 LIBWVSTREAMS=$(WVSTREAMS_LIB)/libwvstreams.so $(LIBWVUTILS)
15 LIBUNICONF=$(WVSTREAMS_LIB)/libuniconf.so $(LIBWVSTREAMS)
16 ifneq ("$(with_dbus)", "no")
17 LIBWVDBUS=$(WVSTREAMS_LIB)/libwvdbus.so $(LIBWVSTREAMS)
18 endif
19 ifneq ("$(with_qt)", "no")
20 LIBWVQT=$(WVSTREAMS_LIB)/libwvqt.so $(LIBWVSTREAMS)
21 endif
22 LIBWVTEST=$(WVSTREAMS_LIB)/libwvtest.a $(LIBWVUTILS)
23 endif
26 # Initial C compilation flags
28 INCFLAGS=$(addprefix -I,$(WVSTREAMS_INC) $(XPATH))
30 CPPFLAGS += $(CPPOPTS)
31 CFLAGS += $(COPTS)
32 CXXFLAGS += $(CXXOPTS)
33 LDFLAGS += $(LDOPTS) -L$(WVSTREAMS_LIB)
35 # Default compiler we use for linking
36 WVLINK_CC = $(CXX)
38 ifneq ("$(enable_optimization)", "no")
39 CXXFLAGS+=-O2
40 CFLAGS+=-O2
41 endif
43 ifneq ("$(enable_warnings)", "no")
44 CXXFLAGS+=-Wall -Woverloaded-virtual
45 CFLAGS+=-Wall
46 endif
48 DEBUG:=$(filter-out no 0,$(enable_debug))
49 ifdef DEBUG
50 CPPFLAGS += -ggdb -DDEBUG=1 $(patsubst %,-DDEBUG_%,$(DEBUG))
51 LDFLAGS += -ggdb
52 else
53 CPPFLAGS += -DDEBUG=0
54 LDFLAGS +=
55 endif
57 define wvlink_ar
58 $(LINK_MSG)set -e; rm -f $1 $(patsubst %.a,%.libs,$1); \
59 echo $2 $($1-EXTRA) >$(patsubst %.a,%.libs,$1); \
60 $(AR) q $1 $(filter %.o,$2 $($1-EXTRA)); \
61 for d in "" $(filter %.libs,$2 $($1-EXTRA)); do \
62 if [ "$$d" == "" ]; then \
63 continue; \
64 fi; \
65 cd $$(dirname "$$d"); \
66 for c in $$(cat $$(basename "$$d")); do \
67 if echo $$c | grep -q "\.list$$"; then \
68 for i in $$(cat $$c); do \
69 $(AR) q $(shell pwd)/$1 $$i; \
70 done; \
71 else \
72 $(AR) q $(shell pwd)/$1 $$c; \
73 fi; \
74 done; \
75 cd $(shell pwd); \
76 done; \
77 for l in "" $(filter %.list,$2 $($1-EXTRA)); do \
78 if [ "$$l" == "" ]; then \
79 continue; \
80 fi; \
81 for i in $$(cat $$l); do \
82 $(AR) q $1 $$(dirname "$$l")/$$i; \
83 done; \
84 done; \
85 $(AR) s $1
86 endef
88 CC: FORCE
89 @CC="$(CC)" CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" \
90 $(WVSTREAMS)/gen-cc CC c
92 CXX: FORCE
93 @CC="$(CXX)" CFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" \
94 $(WVSTREAMS)/gen-cc CXX cc
96 wvlink=$(LINK_MSG)$(WVLINK_CC) $(LDFLAGS) $($1-LDFLAGS) -o $1 $(filter %.o %.a %.so, $2) $($1-LIBS) $(XX_LIBS) $(LDLIBS) $(PRELIBS) $(LIBS)