wvcc compiler macros now generate explicit CC and CXX scripts.
[wvstreams.git] / wvrules-posix.mk
blobac212bb50261166e460a33455386bc43d9f83ce5
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 CC: FORCE
58 @CC="$(CC)" CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" \
59 $(WVSTREAMS)/gen-cc CC c
61 CXX: FORCE
62 @CC="$(CXX)" CFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" \
63 $(WVSTREAMS)/gen-cc CXX cc
65 wvlink=$(LINK_MSG)$(CC) $(LDFLAGS) $($1-LDFLAGS) -o $1 $(filter %.o %.a %.so, $2) $($1-LIBS) $(LIBS) $(XX_LIBS) $(LDLIBS)