]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/win32/filed/Makefile.mingw
Rewrite msvcrt localtime kludge so it doesn't used undocumented functions and compile...
[bacula/bacula] / bacula / src / win32 / filed / Makefile.mingw
1 # New makefile for win32 bacula executables
2 # Using MinGW cross-compiler on GNU/Linux
3
4
5 # Configuration
6
7 # Version for cross-tools-3.4.2
8 INCLUDE_MINGW = -I/data/cross-tools/mingw32/mingw32/include
9 INCLUDE_GCC = -I/data/cross-tools/mingw32/include
10
11 # For cross-tools-2.95.3
12 #INCLUDE_MINGW = -I/data/cross-tools/include
13 #INCLUDE_GCC = -I/data/cross-tools/i386-mingw32msvc/include
14
15 INCLUDE_BACULA = -I../compat -I../.. -I../../win32/zlib
16 INCLUDE_PTHREAD = -I/data/cross-tools-pthread/include
17 INCLUDE_VSS = -I/data/Master/backup/vss-sdk/inc
18 INCLUDE_ICONS = -I../../filed/win32
19
20 INCLUDES = \
21                 $(INCLUDE_GCC) \
22                 $(INCLUDE_MINGW) \
23                 $(INCLUDE_BACULA) \
24                 $(INCLUDE_PTHREAD) \
25                 $(INCLUDE_VSS) \
26                 $(INCLUDE_ICONS) \
27
28 EXCLUDED_INCLUDES = \
29
30 HAVES = \
31         -DHAVE_STDINT_H \
32         -DHAVE_STDARG_H \
33         -DHAVE_STDLIB_H \
34         -DHAVE_ALLOCA_H \
35         -DHAVE_LIMITS_H \
36         -DHAVE_SYS_SOCKET_H \
37         -DHAVE_SYS_WAIT_H \
38         -DHAVE_SSL \
39         -DHAVE_MINGW \
40         -DHAVE_WIN32 \
41         -DHAVE_U_INT64_T \
42         -DHAVE_UINT64_T \
43         -DHAVE_ZLIB_H \
44         -DHAVE_LIBZ \
45
46 HAVE_NOT = \
47         -DHAVE_SYS_BITYPES_H \
48         -DSIZEOF_LONG_LONG_INT=8
49
50 NOT_DEFINED = \
51         
52 DEFINES = \
53         -DWIN32 \
54         $(HAVES) \
55         -DCOMPILING_BACULA \
56         -DWIN32_VSS \
57
58 CC = mingw32-g++ $(DEFINES) $(INCLUDES)
59 CXX = mingw32-g++ $(DEFINES) $(INCLUDES) 2>&1
60 WINDRES = mingw32-windres
61
62 #CC = i386-mingw32msvc-g++ $(DEFINES) $(INCLUDES)
63 #CXX = i386-mingw32msvc-g++ $(DEFINES) $(INCLUDES)
64 #WINDRES = i386-mingw32msvc-windres
65
66 # first: all bacula-fd.exe
67 first: all
68
69 INTDIR = .
70
71 ##########################################################################
72
73 # Files in src/win32/filed/
74 OBJS_FILED_FAILED = \
75
76 OBJS_FILED = \
77         $(INTDIR)/authenticate.o \
78         $(INTDIR)/backup.o \
79         $(INTDIR)/chksum.o \
80         $(INTDIR)/estimate.o \
81         $(INTDIR)/filed.o \
82         $(INTDIR)/filed_conf.o \
83         $(INTDIR)/heartbeat.o \
84         $(INTDIR)/job.o \
85         $(INTDIR)/restore.o \
86         $(INTDIR)/status.o \
87         $(INTDIR)/verify.o \
88         $(INTDIR)/verify_vol.o \
89         $(OBJS_FILED_FAILED)
90
91
92 authenticate.o: ../filed/authenticate.cpp
93         $(CXX) -c ../filed/authenticate.cpp -o authenticate.o
94
95 backup.o:       ../filed/backup.cpp
96         $(CXX) -c ../filed/backup.cpp -o backup.o
97
98 chksum.o:       ../filed/chksum.cpp
99         $(CXX) -c ../filed/chksum.cpp -o chksum.o
100
101 estimate.o:     ../filed/estimate.cpp
102         $(CXX) -c ../filed/estimate.cpp -o estimate.o
103
104 filed.o:        ../filed/filed.cpp
105         $(CXX) -c ../filed/filed.cpp -o filed.o
106
107 filed_conf.o:   ../filed/filed_conf.cpp
108         $(CXX) -c ../filed/filed_conf.cpp -o filed_conf.o
109
110 heartbeat.o:    ../filed/heartbeat.cpp
111         $(CXX) -c ../filed/heartbeat.cpp -o heartbeat.o
112
113 job.o:  ../filed/job.cpp
114         $(CXX) -c ../filed/job.cpp -o job.o
115
116 restore.o:      ../filed/restore.cpp
117         $(CXX) -c ../filed/restore.cpp -o restore.o
118
119 status.o:       ../filed/status.cpp
120         $(CXX) -c ../filed/status.cpp -o status.o
121
122 verify.o:       ../filed/verify.cpp
123         $(CXX) -c ../filed/verify.cpp -o verify.o
124
125 verify_vol.o:   ../filed/verify_vol.cpp
126         $(CXX) -c ../filed/verify_vol.cpp -o verify_vol.o
127
128 ######################################################################
129
130 # Files in src/compat
131 OBJS_COMPAT_FAILED = \
132                 $(INTDIR)/vss_w2k3.o \
133
134 OBJS_COMPAT = \
135                 $(INTDIR)/print.o \
136                 $(INTDIR)/compat.o \
137                 $(INTDIR)/getopt.o \
138                 $(INTDIR)/vss.o \
139                 $(INTDIR)/vss_xp.o \
140                 $(OBJS_COMPAT_FAILED)
141
142 compat.o:       ../compat/compat.cpp
143         $(CXX) -c ../compat/compat.cpp -o compat.o
144 # TODO
145
146 getopt.o:       ../compat/getopt.c
147         $(CXX) -c ../compat/getopt.c -o getopt.o
148
149 print.o:        ../compat/print.cpp
150         $(CXX) -c ../compat/print.cpp -o print.o
151
152 vss.o:  ../compat/vss.cpp
153         $(CXX) -c ../compat/vss.cpp -o vss.o
154 # TODO
155
156 vss_xp.o:       ../compat/vss_xp.cpp
157         $(CXX) -c ../compat/vss_xp.cpp -o vss_xp.o
158 # TODO
159
160 vss_w2k3.o:     ../compat/vss_w2k3.cpp
161         $(CXX) -c ../compat/vss_w2k3.cpp -o vss_w2k3.o
162 # TODO
163
164
165
166 ######################################################################
167
168 # Files in src/filed/win32
169 OBJS_WIN = \
170         $(INTDIR)/winabout.o \
171         $(INTDIR)/winevents.o \
172         $(INTDIR)/winservice.o \
173         $(INTDIR)/winstat.o \
174         $(INTDIR)/wintray.o \
175                 $(INTDIR)/winmain.o \
176         $(INTDIR)/winres.res
177
178 winabout.o:     ../../filed/win32/winabout.cpp
179         $(CXX) -c ../../filed/win32/winabout.cpp -o winabout.o
180
181 winevents.o:    ../../filed/win32/winevents.cpp
182         $(CXX) -c ../../filed/win32/winevents.cpp -o winevents.o
183
184 winmain.o:      ../../filed/win32/winmain.cpp
185         $(CXX) -c ../../filed/win32/winmain.cpp -o winmain.o
186 # TODO
187
188 winservice.o:   ../../filed/win32/winservice.cpp
189         $(CXX) -c ../../filed/win32/winservice.cpp -o winservice.o
190
191 winstat.o:      ../../filed/win32/winstat.cpp
192         $(CXX) -c ../../filed/win32/winstat.cpp -o winstat.o
193
194 wintray.o:      ../../filed/win32/wintray.cpp
195         $(CXX) -c ../../filed/win32/wintray.cpp -o wintray.o
196
197 winres.res:     ../../filed/win32/winres.rc
198         $(WINDRES) $(INCLUDE_ICONS) -O coff ../../filed/win32/winres.rc -o winres.res
199 #       $(WINDRES) --help
200 #       mingw32-nm winres.res
201
202 ######################################################################
203
204 # Files in ??? Needed ???
205
206 #       $(INTDIR)/StdAfx.o
207
208 ######################################################################
209
210 # Files in src/findlib
211 OBJS_FINDLIB = \
212         $(INTDIR)/attribs.o \
213         $(INTDIR)/bfile.o \
214         $(INTDIR)/create_file.o \
215         $(INTDIR)/enable_priv.o \
216         $(INTDIR)/find.o \
217         $(INTDIR)/find_one.o \
218         $(INTDIR)/fstype.o \
219         $(INTDIR)/makepath.o \
220         $(INTDIR)/match.o \
221         $(INTDIR)/save-cwd.o
222
223 attribs.o:      ../../findlib/attribs.c
224         $(CXX) -c ../../findlib/attribs.c -o attribs.o
225
226 bfile.o:        ../../findlib/bfile.c
227         $(CXX) -c ../../findlib/bfile.c -o bfile.o
228
229 create_file.o:  ../../findlib/create_file.c
230         $(CXX) -c ../../findlib/create_file.c -o create_file.o
231
232 enable_priv.o:  ../../findlib/enable_priv.c
233         $(CXX) -c ../../findlib/enable_priv.c -o enable_priv.o
234
235 find.o: ../../findlib/find.c
236         $(CXX) -c ../../findlib/find.c -o find.o
237
238 find_one.o:     ../../findlib/find_one.c
239         $(CXX) -c ../../findlib/find_one.c -o find_one.o
240
241 fstype.o:       ../../findlib/fstype.c
242         $(CXX) -c ../../findlib/fstype.c -o fstype.o
243
244 makepath.o:     ../../findlib/makepath.c
245         $(CXX) -c ../../findlib/makepath.c -o makepath.o
246
247 match.o:        ../../findlib/match.c
248         $(CXX) -c ../../findlib/match.c -o match.o
249
250 save-cwd.o:     ../../findlib/save-cwd.c
251         $(CXX) -c ../../findlib/save-cwd.c -o save-cwd.o
252
253
254 ######################################################################
255
256 # Files in src/win32/lib, based on files in src/lib
257 LIB_OBJS_FAILED = \
258         $(INTDIR)/bpipe.o \
259
260 LIB_OBJS = \
261         $(INTDIR)/address_conf.o \
262         $(INTDIR)/alist.o \
263         $(INTDIR)/alloc.o \
264         $(INTDIR)/attr.o \
265         $(INTDIR)/base64.o \
266         $(INTDIR)/berrno.o \
267         $(INTDIR)/bget_msg.o \
268         $(INTDIR)/bnet.o \
269         $(INTDIR)/bnet_server.o \
270         $(INTDIR)/bshm.o \
271         $(INTDIR)/bsys.o \
272         $(INTDIR)/btime.o \
273         $(INTDIR)/btimers.o \
274         $(INTDIR)/cram-md5.o \
275         $(INTDIR)/crc32.o \
276         $(INTDIR)/daemon.o \
277         $(INTDIR)/dlist.o \
278         $(INTDIR)/edit.o \
279         $(INTDIR)/fnmatch.o \
280         $(INTDIR)/hmac.o \
281         $(INTDIR)/htable.o \
282         $(INTDIR)/idcache.o \
283         $(INTDIR)/jcr.o \
284         $(INTDIR)/lex.o \
285         $(INTDIR)/md5.o \
286         $(INTDIR)/mem_pool.o \
287         $(INTDIR)/message.o \
288         $(INTDIR)/parse_conf.o \
289         $(INTDIR)/pythonlib.o \
290         $(INTDIR)/queue.o \
291         $(INTDIR)/regex.o \
292         $(INTDIR)/res.o \
293         $(INTDIR)/rwlock.o \
294         $(INTDIR)/semlock.o \
295         $(INTDIR)/serial.o \
296         $(INTDIR)/sha1.o \
297         $(INTDIR)/signal.o \
298         $(INTDIR)/smartall.o \
299         $(INTDIR)/tls.o \
300         $(INTDIR)/var.o \
301         $(INTDIR)/watchdog.o \
302         $(INTDIR)/winapi.o \
303         $(INTDIR)/workq.o \
304         $(INTDIR)/scan.o \
305         $(INTDIR)/tree.o \
306         $(INTDIR)/util.o \
307         $(LIB_OBJS_FAILED) \
308
309 OBJS = $(LIB_OBJS) $(OBJS_COMPAT) $(OBJS_WIN) $(OBJS_FINDLIB) $(OBJS_FILED)
310
311 LIBS = \
312         -L/data/cross-tools/mingw32/mingw32/lib \
313         /data/cross-tools/mingw32/mingw32/lib/libole32.a \
314         /data/cross-tools/mingw32/mingw32/lib/liboleaut32.a \
315         /data/cross-tools/mingw32/mingw32/lib/libuser32.a \
316         /data/cross-tools/mingw32/mingw32/lib/libadvapi32.a \
317         /data/cross-tools/mingw32/mingw32/lib/libgdi32.a \
318         /data/cross-tools/mingw32/mingw32/lib/libwsock32.a \
319         /data/cross-tools/mingw32/mingw32/lib/libshell32.a \
320         /data/cross-tools/mingw32/mingw32/lib/libnetapi32.a \
321         /data/cross-tools/mingw32/mingw32/lib/libuuid.a \
322         /data/cross-tools-pthread/lib/libpthreadGCE2.a \
323         /data/Master/backup/bacula/bacula/src/win32/zlib/libz.a \
324
325 # LIBS = \
326 #       -L/data/cross-tools/mingw32/mingw32/lib \
327 #       libole32.a \
328 #       liboleaut32.a \
329 #       /data/cross-tools/mingw32/mingw32/lib/libuser32.a \
330 #       /data/cross-tools/mingw32/mingw32/lib/libadvapi32.a \
331 #       /data/cross-tools/mingw32/mingw32/lib/libgdi32.a \
332 #       /data/cross-tools/mingw32/mingw32/lib/libwsock32.a \
333 #       /data/cross-tools/mingw32/mingw32/lib/libshell32.a \
334
335 #       pthreadVCE.a \
336 #       zlib.a
337
338 #
339 # Rules for generating from ../lib
340
341
342 address_conf.o: ../lib/address_conf.cpp
343         $(CXX) -c ../lib/address_conf.cpp -o address_conf.o
344
345 alist.o:        ../lib/alist.cpp
346         $(CXX) -c ../lib/alist.cpp -o alist.o
347
348 alloc.o:        ../lib/alloc.cpp
349         $(CXX) -c ../lib/alloc.cpp -o alloc.o
350
351 attr.o: ../lib/attr.cpp
352         $(CXX) -c ../lib/attr.cpp -o attr.o
353
354 base64.o:       ../lib/base64.cpp
355         $(CXX) -c ../lib/base64.cpp -o base64.o
356
357 berrno.o:       ../lib/berrno.cpp
358         $(CXX) -c ../lib/berrno.cpp -o berrno.o
359
360 bget_msg.o:     ../lib/bget_msg.cpp
361         $(CXX) -c ../lib/bget_msg.cpp -o bget_msg.o
362
363 bnet.o: ../lib/bnet.cpp
364         $(CXX) -c ../lib/bnet.cpp -o bnet.o
365
366 bnet_server.o:  ../lib/bnet_server.cpp
367         $(CXX) -c ../lib/bnet_server.cpp -o bnet_server.o
368
369 bpipe.o:        ../lib/bpipe.cpp
370         $(CXX) -c ../lib/bpipe.cpp -o bpipe.o
371
372 bshm.o: ../lib/bshm.cpp
373         $(CXX) -c ../lib/bshm.cpp -o bshm.o
374
375 bsys.o: ../lib/bsys.cpp
376         $(CXX) -c ../lib/bsys.cpp -o bsys.o
377
378 btime.o:        ../lib/btime.cpp
379         $(CXX) -c ../lib/btime.cpp -o btime.o
380
381 btimers.o:      ../lib/btimers.cpp
382         $(CXX) -c ../lib/btimers.cpp -o btimers.o
383
384 cram-md5.o:     ../lib/cram-md5.cpp
385         $(CXX) -c ../lib/cram-md5.cpp -o cram-md5.o
386
387 crc32.o:        ../lib/crc32.cpp
388         $(CXX) -c ../lib/crc32.cpp -o crc32.o
389
390 daemon.o:       ../lib/daemon.cpp
391         $(CXX) -c ../lib/daemon.cpp -o daemon.o
392
393 dlist.o:        ../lib/dlist.cpp
394         $(CXX) -c ../lib/dlist.cpp -o dlist.o
395
396 edit.o: ../lib/edit.cpp
397         $(CXX) -c ../lib/edit.cpp -o edit.o
398
399 fnmatch.o:      ../lib/fnmatch.cpp
400         $(CXX) -c ../lib/fnmatch.cpp -o fnmatch.o
401
402 hmac.o: ../lib/hmac.cpp
403         $(CXX) -c ../lib/hmac.cpp -o hmac.o
404
405 htable.o:       ../lib/htable.cpp
406         $(CXX) -c ../lib/htable.cpp -o htable.o
407
408 idcache.o:      ../lib/idcache.cpp
409         $(CXX) -c ../lib/idcache.cpp -o idcache.o
410
411 jcr.o:  ../lib/jcr.cpp
412         $(CXX) -c ../lib/jcr.cpp -o jcr.o
413
414 lex.o:  ../lib/lex.cpp
415         $(CXX) -c ../lib/lex.cpp -o lex.o
416
417 md5.o:  ../lib/md5.cpp
418         $(CXX) -c ../lib/md5.cpp -o md5.o
419
420 mem_pool.o:     ../lib/mem_pool.cpp
421         $(CXX) -c ../lib/mem_pool.cpp -o mem_pool.o
422
423 message.o:      ../lib/message.cpp
424         $(CXX) -c ../lib/message.cpp -o message.o
425
426 parse_conf.o:   ../lib/parse_conf.cpp
427         $(CXX) -c ../lib/parse_conf.cpp -o parse_conf.o
428
429 pythonlib.o:    ../lib/pythonlib.cpp
430         $(CXX) -c ../lib/pythonlib.cpp -o pythonlib.o
431
432 queue.o:        ../lib/queue.cpp
433         $(CXX) -c ../lib/queue.cpp -o queue.o
434
435 regex.o:        ../lib/regex.cpp
436         $(CXX) -c ../lib/regex.cpp -o regex.o
437
438 res.o:  ../lib/res.cpp
439         $(CXX) -c ../lib/res.cpp -o res.o
440
441 rwlock.o:       ../lib/rwlock.cpp
442         $(CXX) -c ../lib/rwlock.cpp -o rwlock.o
443
444 scan.o: ../lib/scan.cpp
445         $(CXX) -c ../lib/scan.cpp -o scan.o
446
447 semlock.o:      ../lib/semlock.cpp
448         $(CXX) -c ../lib/semlock.cpp -o semlock.o
449
450 serial.o:       ../lib/serial.cpp
451         $(CXX) -c ../lib/serial.cpp -o serial.o
452
453 sha1.o: ../lib/sha1.cpp
454         $(CXX) -c ../lib/sha1.cpp -o sha1.o
455
456 signal.o:       ../lib/signal.cpp
457         $(CXX) -c ../lib/signal.cpp -o signal.o
458
459 smartall.o:     ../lib/smartall.cpp
460         $(CXX) -c ../lib/smartall.cpp -o smartall.o
461
462 tls.o:  ../lib/tls.cpp
463         $(CXX) -c ../lib/tls.cpp -o tls.o
464
465 tree.o: ../lib/tree.cpp
466         $(CXX) -c ../lib/tree.cpp -o tree.o
467
468 util.o: ../lib/util.cpp
469         $(CXX) -c ../lib/util.cpp -o util.o
470
471 var.o:  ../lib/var.cpp
472         $(CXX) -c ../lib/var.cpp -o var.o
473
474 watchdog.o:     ../lib/watchdog.cpp
475         $(CXX) -c ../lib/watchdog.cpp -o watchdog.o
476
477 winapi.o:       ../lib/winapi.cpp
478         $(CXX) -c ../lib/winapi.cpp -o winapi.o
479
480 workq.o:        ../lib/workq.cpp
481         $(CXX) -c ../lib/workq.cpp -o workq.o
482
483 # Targets
484
485 all: bacula-fd.exe
486 #       echo $PATH
487
488 # all: $(LIB_OBJS) $(OBJS_FILED) $(OBJS_COMPAT) $(OBJS_WIN) $(OBJS_FINDLIB)
489 # all: $(LIB_OBJS) $(OBJS_FILED) $(OBJS_WIN) $(OBJS_FINDLIB)
490
491 # all: $(OBJS_FILED)    # OK
492 # all: $(OBJS_COMPAT)   # TODO vss...
493 # all: $(OBJS_WIN)              # OK
494 # all: $(OBJS_FINDLIB)  # OK
495 # all: $(LIB_OBJS)              # OK
496
497 # Link the executable ...
498 bacula-fd.exe: $(OBJS)
499         $(CXX) $(OBJS) $(LIBS) -o bacula-fd.exe
500
501 # TODO ...
502 # Fix vss files: check for consistent levels of pointer indirection
503 # bpipe.c: WTERMSIG undefined
504 # getopt.c: alloca redefined warning