A selection of relatively minor problems in the build system.
[wvstreams.git] / vars.mk
blobe0d9bc32b35cff067d96a96c308d1f95e280df08
1 DEBUG:=$(filter-out no,$(enable_debug))
3 # debugging function
4 showvar = @echo \"'$(1)'\" =\> \"'$($(1))'\"
5 tbd = $(error "$@" not implemented yet)
7 # initialization
8 TARGETS:=
9 GARBAGE:=
10 DISTCLEAN:=
11 REALCLEAN:=
12 TESTS:=
13 NO_CONFIGURE_TARGETS:=
15 NO_CONFIGURE_TARGETS+=clean ChangeLog depend dust configure dist \
16 distclean realclean
18 TARGETS += libwvbase.so libwvbase.a
19 TARGETS += libwvutils.so libwvutils.a
20 TARGETS += libwvstreams.so libwvstreams.a
21 TARGETS += libuniconf.so libuniconf.a
22 TARGETS += wvtestmain.o libwvtest.a
23 TARGETS += uniconf/daemon/uniconfd uniconf/tests/uni
24 TARGETS += crypto/tests/ssltest ipstreams/tests/unixtest
25 TARGETS += crypto/tests/printcert
26 ifneq ("$(with_dbus)", "no")
27 TARGETS += dbus/tests/wvdbus dbus/tests/wvdbusd
28 endif
29 ifneq ("$(with_readline)", "no")
30 TARGETS += ipstreams/tests/wsd
31 endif
32 GARBAGE += wvtestmain.o tmp.ini .wvtest-total
34 ifneq ("$(with_qt)", "no")
35 TARGETS += libwvqt.so libwvqt.a
36 endif
38 ifneq ("$(with_dbus)", "no")
39 TARGETS += libwvdbus.so libwvdbus.a
40 endif
42 TARGETS_SO := $(filter %.so,$(TARGETS))
43 TARGETS_A := $(filter %.a,$(TARGETS))
45 GARBAGE += $(wildcard lib*.so.*)
47 DISTCLEAN += autom4te.cache config.mk config.log config.status \
48 include/wvautoconf.h config.cache reconfigure
50 REALCLEAN += stamp-h.in configure include/wvautoconf.h.in
52 CPPFLAGS += -Iinclude -pipe
53 ARFLAGS = rs
54 RELEASE?=$(PACKAGE_VERSION)
56 DEBUG:=$(filter-out no,$(enable_debug))
58 CXXFLAGS+=$(if $(filter-out yes,$(DEBUG)), -DDEBUG_$(DEBUG))
59 CFLAGS+=$(if $(filter-out yes,$(DEBUG)), -DDEBUG_$(DEBUG))
61 ifeq ("$(enable_fatal_warnings)", "yes")
62 CXXFLAGS+=-Werror
63 # FIXME: not for C, because our only C file, crypto/wvsslhack.c, has
64 # a few warnings.
65 #CFLAGS+=-Werror
66 endif
68 ifeq ("$(enable_testgui)", "no")
69 WVTESTRUN=env
70 endif
72 ifneq ("$(with_xplc)", "no")
73 LIBS+=$(LIBS_XPLC) -lm
74 endif
76 libwvutils.so-LIBS+=$(LIBS_PAM)
78 include $(filter-out xplc/% linuxstreams/%,$(wildcard */vars.mk */*/vars.mk)) \
79 $(wildcard $(foreach dir,$(ARCH_SUBDIRS),$(dir)/*/vars.mk)) /dev/null
81 # LDFLAGS+=-z defs
83 BASEOBJS= \
84 utils/wvbuffer.o utils/wvbufferstore.o \
85 utils/wvcont.o \
86 utils/wverror.o \
87 streams/wvfdstream.o \
88 utils/wvfork.o \
89 utils/wvhash.o \
90 utils/wvhashtable.o \
91 utils/wvlinklist.o \
92 utils/wvmoniker.o \
93 utils/wvregex.o \
94 utils/wvscatterhash.o utils/wvsorter.o \
95 utils/wvstring.o utils/wvstringlist.o \
96 utils/wvstringmask.o \
97 utils/strutils.o \
98 utils/wvtask.o \
99 utils/wvtimeutils.o \
100 streams/wvistreamlist.o \
101 utils/wvstreamsdebugger.o \
102 streams/wvlog.o \
103 streams/wvstream.o \
104 uniconf/uniconf.o \
105 uniconf/uniconfgen.o uniconf/uniconfkey.o uniconf/uniconfroot.o \
106 uniconf/unihashtree.o \
107 uniconf/unimountgen.o \
108 uniconf/unitempgen.o \
109 utils/wvbackslash.o \
110 utils/wvencoder.o \
111 utils/wvtclstring.o \
112 utils/wvstringcache.o \
113 uniconf/uniinigen.o \
114 uniconf/unigenhack.o \
115 uniconf/unilistiter.o \
116 streams/wvfile.o \
117 streams/wvstreamclone.o \
118 streams/wvconstream.o \
119 utils/wvcrashbase.o
121 TESTOBJS = utils/wvtest.o
123 # print the sizes of all object files making up libwvbase, to help find
124 # optimization targets.
125 basesize:
126 size --total $(BASEOBJS)
128 micro: micro.o libwvbase.so
130 libwvbase.a libwvbase.so: $(filter-out uniconf/unigenhack.o,$(BASEOBJS))
131 libwvbase.a: uniconf/unigenhack_s.o
132 libwvbase.so: uniconf/unigenhack.o
133 libwvbase.so: LIBS+=$(LIBXPLC)
135 libwvutils.a libwvutils.so: $(filter-out $(BASEOBJS) $(TESTOBJS),$(call objects,utils))
136 libwvutils.so: libwvbase.so
137 libwvutils.so: -lz -lcrypt
139 libwvstreams.a libwvstreams.so: $(filter-out $(BASEOBJS), \
140 $(call objects,configfile crypto ipstreams \
141 $(ARCH_SUBDIRS) streams urlget))
142 libwvstreams.so: libwvutils.so libwvbase.so
143 libwvstreams.so: LIBS+=-lz -lssl -lcrypto
145 libuniconf.a libuniconf.so: $(filter-out $(BASEOBJS), \
146 $(call objects,uniconf))
147 libuniconf.a: uniconf/uniconfroot.o
148 libuniconf.so: libwvstreams.so libwvutils.so libwvbase.so
150 libwvdbus.a libwvdbus.so: $(call objects,dbus)
151 libwvdbus.so: libwvstreams.so libwvutils.so libwvbase.so
152 libwvdbus.so: LIBS+=$(LIBS_DBUS)
154 libwvtest.a: wvtestmain.o $(TESTOBJS)
156 ifeq ("$(wildcard /usr/lib/libqt-mt.so)", "/usr/lib/libqt-mt.so")
157 libwvqt.so-LIBS+=-lqt-mt
158 else
159 # RedHat has a pkgconfig file we can use to sort out this mess..
160 ifeq ("$(wildcard /usr/lib/pkgconfig/qt-mt.pc)", "/usr/lib/pkgconfig/qt-mt.pc")
161 libwvqt.so-LIBS+=`pkg-config --libs qt-mt`
162 else
163 libwvqt.so-LIBS+=-lqt
164 endif
165 endif
166 libwvqt.a libwvqt.so: $(call objects,qt)
167 libwvqt.so: libwvutils.so libwvstreams.so libwvbase.so
169 libwvgtk.a libwvgtk.so: $(call objects,gtk)
170 libwvgtk.so: -lgtk -lgdk libwvstreams.so libwvutils.so libwvbase.so