Fix problem with running wvlog.t.cc on win32.
[wvstreams.git] / Makefile-win32
blob1d48f0d81cb28d2fd3a3d5fbb3da112efec606db
1 WVSTREAMS=.
3 include $(WVSTREAMS)/wvrules.mk
4 include vars.mk
6 ifneq ($(COMPILER_STANDARD),)
7 include vars-$(COMPILER_STANDARD).mk
8 endif
10 default: all
12 runconfigure: aclocal.m4 configure include/wvautoconf.h.in
14 aclocal.m4: $(wildcard gnulib/m4/*.m4) acinclude.m4
15         aclocal -I gnulib/m4
16         @touch $@
18 configure: configure.ac include/wvautoconf.h.in aclocal.m4
19         autoconf
20         @rm -f config.mk include/wvautoconf.h gnulib/Makefile
21         @touch $@
23 include/wvautoconf.h.in: configure.ac aclocal.m4
24         autoheader
25         @touch $@
27 gnulib: FORCE
28         $(MAKE) -C gnulib
31 %.exe: %
32         rm -f $@
33         ln -s $(shell basename $<) $@
35 ifneq ($(have_dbus),no)
36   DBUSEXE=dbus/tests/wvdbus dbus/tests/wvdbusd
37 endif
39 all: fake-libs gnulib \
40         ipstreams/tests/tcptest crypto/tests/ssltest \
41         uniconf/tests/uni uniconf/daemon/uniconfd \
42         $(DBUSEXE) \
43         wvtestmain
44         
45 include $(filter-out xplc%,$(wildcard */rules.mk */*/rules.mk)) /dev/null
47 -include $(shell find . -name '.*.d') /dev/null
49         
50 #LIBS+=-lssl -lcrypto -lz -lole32 -lrpcrt4 -lwsock32 -lgdi32 \
51 #       $(with_xplc)/libxplc-cxx.a $(with_xplc)/libxplc.a gnulib/libgnu.a \
52 #       -lstdc++
54 .PHONY: clean test
56 # object files that we replace completely for win32
57 OBJREPLACED=utils/wvtask.o
59 # object files that we can't use in win32 for now, but which we should
60 # definitely fix
61 OBJFIXME=\
62         utils/wvsubprocqueue.o \
63         utils/wvsystem.o \
64         utils/wvregex.o \
65         utils/wvglob.o \
66         utils/wvglobdiriter.o \
67         utils/wvsubproc.o \
68         \
69         streams/wvatomicfile.o \
70         streams/wvlogrotator.o \
71         streams/wvpipe.o \
72         streams/wvwatcher.o \
73         \
74         ipstreams/wvunixsocket.o \
75         \
76         uniconf/unifilesystemgen.o
78 # object files that we probably just shouldn't include in win32 libraries
79 OBJSKIP=$(OBJREPLACED) $(OBJFIXME) \
80         utils/strcrypt.o \
81         utils/wvfork.o \
82         utils/wvmagiccircle.o \
83         utils/wvshmzone.o \
84         utils/wvprociter.o \
85         \
86         streams/wvlockdev.o \
87         streams/wvlockfile.o \
88         streams/wvmagicloopback.o \
89         streams/wvmodem.o \
90         streams/wvsyslog.o \
91         streams/wvsubprocqueuestream.o \
92         \
93         ipstreams/wvipraw.o \
94         ipstreams/wvunixdgsocket.o \
95         \
96         uniconf/unigenhack.o \
97         uniconf/daemon/uniconfd.o
99 TOBJFIXME=\
100         utils/t/wvsubprocqueue.t.o \
101         utils/t/wvsystem.t.o \
102         utils/t/wvpushdir.t.o \
103         \
104         streams/t/wvatomicfile.t.o \
105         streams/t/wvstreamsdaemon.t.o \
106         streams/t/wvpipe.t.o \
107         \
108         uniconf/t/uniconfd.t.o \
109         uniconf/t/uniconfgen-sanitytest.o \
110         uniconf/t/unicachegen.t.o \
111         uniconf/t/uniinigen.t.o \
112         uniconf/t/unireplicategen.t.o \
113         uniconf/t/uniretrygen.t.o \
114         uniconf/t/uniclientgen.t.o \
115         uniconf/t/uniunwrapgen.t.o \
116         uniconf/t/unitransactiongen.t.o \
117         uniconf/t/unicallbackgen.t.o \
118         uniconf/t/unimountgen.t.o \
119         uniconf/t/unisubtreegen.t.o \
120         uniconf/t/unipermgen.t.o \
121         uniconf/t/unidefgen.t.o \
122         uniconf/t/unifastregetgen.t.o \
123         uniconf/t/unitempgen.t.o \
124         uniconf/t/unireadonlygen.t.o \
125         uniconf/t/uniautogen.t.o \
126         uniconf/t/unilistgen.t.o
127         
129 TOBJSKIP=$(TOBJFIXME) \
130         utils/t/strcrypt.t.o \
131         utils/t/wvondiskhash.t.o \
132         utils/t/wvregex.t.o \
133         utils/t/wvglob.t.o \
134         utils/t/wvglobdiriter.t.o \
135         utils/t/wvprociter.t.o \
136         \
137         streams/t/wvmagicloopback.t.o \
138         streams/t/wvlogrotator.t.o \
139         streams/t/wvsubprocqueuestream.t.o \
140         \
141         ipstreams/t/wvunixdgsocket.t.o \
142         ipstreams/t/wvunixsocket.t.o \
143         \
144         uniconf/t/unitempgenvsdaemon.t.o \
146 W=$(WVSTREAMS)/Win32WvStreams
147 DIRS=utils streams ipstreams uniconf uniconf/daemon crypto \
148         urlget configfile \
149         $W/libwvutils $W/libwvstreams $W/libuniconf
150 ifneq ($(have_dbus),no)
151 DIRS+=dbus
152 endif
153 _OBJFILES=$(call objects,$(DIRS))
154 OBJFILES=$(filter-out $(OBJSKIP),$(_OBJFILES))
156 _TOBJFILES=$(call objects,$(addsuffix /t,$(DIRS)))
157 TOBJFILES=$(filter-out $(TOBJSKIP),$(_TOBJFILES))
159 LIBS+=$(LIBS_DBUS)
161 wvtestmain: $(TOBJFILES) libwvwin32.a
163 $(TESTS): libwvwin32.a
164 $(addsuffix .o,$(TESTS)):
165 tests: $(TESTS)
167 test: wvtestmain
168         ./wvtestmain '$(TESTNAME)'
170 $(patsubst %.t.cc,%.t,$(wildcard */t/*.cc)): libwvwin32.a
172 libwvwin32.a: $(OBJFILES)
174 fake-libs: libwvwin32.a
175         for d in libwvbase libwvutils libwvstreams libuniconf; do \
176                 rm -f $$d.a $$d.so; \
177                 ln -s libwvwin32.a $$d.a; \
178                 ln -s libwvwin32.a $$d.so; \
179         done
181 ifeq ($(VERBOSE),)
182 define wild_clean
183         @list=`echo $(wildcard $(1))`; \
184                 test -z "$${list}" || sh -c "rm -rf $${list}"
185 endef
186 else
187 define wild_clean
188         @list=`echo $(wildcard $(1))`; \
189                 test -z "$${list}" || sh -cx "rm -rf $${list}"
190 endef
191 endif
193 clean:
194         $(call wild_clean,$(shell find . -name '*.o') \
195                 $(shell find . -name '*.exe') $(shell find . -name '*.a'))