]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/win32/Makefile
Fix class member shadowing.
[bacula/bacula] / bacula / src / win32 / Makefile
1 #
2 #  Makefile for Win32/Win64 Bacula File daemon
3 #
4 #  If called make win64=yes the Win64 version will be built
5 #     otherwise the Win32 version will be built.
6 #
7 #  If called with bat=no, bat will not be built, otherwise it will be
8 #     built.
9 #
10
11 ECHO_CMD=@
12
13 WIN32_DIRS=lib filed filed/plugins console scripts
14
15 WIN64_DIRS=lib filed filed/plugins console scripts
16
17 ifeq ($(win64),yes)
18          DIRS=$(WIN64_DIRS)
19          INSTALLER=win64_installer
20          SPECIAL=bsmtp
21 else
22          DIRS=$(WIN32_DIRS)
23          INSTALLER=win32_installer
24          SPECIAL=bat bsmtp
25 endif
26
27 ifeq ($(bat),no)
28          SPECIAL=bsmtp
29 endif        
30
31 .PHONY: $(DIRS) clean all Makefile.inc win32_installer full_win32_installer \
32          win64_installer bsmtp
33
34 all: Makefile.inc $(DIRS) $(SPECIAL) $(INSTALLER)
35
36 clean: $(DIRS) win32_installer win64_installer
37         $(MAKE) -C tools clean
38         $(ECHO_CMD)-rm -rf release32 release64 ../qt-console/obj32 ../cats/obj32 ../wx-console/obj32
39         $(ECHO_CMD)-rm -rf stored/obj32 dird/obj32 cats/obj32 wx-console/obj32
40         $(ECHO_CMD)-rm -f ../qt-console/release/bat.exe ../qt-console/debug/bat.exe
41         $(ECHO_CMD)-rm -f ../qt-console/tray-monitor/release/bacula-tray-monitor.exe ../qt-console/tray-monitor/debug/bacula-tray-monitor.exe
42
43 bat:
44         (cd ../qt-console; ./make-win32)
45
46 full_win32_installer:
47         @if test -f Makefile.inc; then \
48            if $(MAKE) -C $@ $(MAKECMDGOALS); then \
49                 echo "\n===== Make of $@ succeeded =====\n\n" ; \
50            else  \
51                 echo "\n!!!!! Make of $@ failed !!!!!\n\n" ; exit 1; \
52            fi ; \
53         fi
54
55 win32_installer:
56         @if test -f Makefile.inc; then \
57            if $(MAKE) -C $@ $(MAKECMDGOALS); then \
58                 echo "\n===== Make of $@ succeeded =====\n\n" ; \
59            else  \
60                 echo "\n!!!!! Make of $@ failed !!!!!\n\n" ; exit 1; \
61            fi ; \
62         fi
63
64 win64_installer:
65         @if test -f Makefile.inc; then \
66            if $(MAKE) -C $@ $(MAKECMDGOALS); then \
67                 echo "\n===== Make of $@ succeeded =====\n\n" ; \
68            else  \
69                 echo "\n!!!!! Make of $@ failed !!!!!\n\n" ; exit 1; \
70            fi ; \
71         fi
72
73
74 $(DIRS):
75         @if test -f Makefile.inc; then \
76            if $(MAKE) -C $@ $(MAKECMDGOALS); then \
77                 echo "\n===== Make of $@ succeeded =====\n\n" ; \
78            else  \
79                 echo "\n!!!!! Make of $@ failed !!!!!\n\n" ; exit 1; \
80            fi ; \
81         fi
82
83 bsmtp:
84         @if test -f Makefile.inc; then \
85            if $(MAKE) -C tools bsmtp $(MAKECMDGOALS); then \
86                 echo "\n===== Make of tools/bsmtp succeeded =====\n\n" ; \
87            else  \
88                 echo "\n!!!!! Make of tools/bsmtp failed !!!!!\n\n" ; exit 1; \
89            fi ; \
90         fi
91
92
93
94 Makefile.inc:
95         @echo Creating $@
96         $(ECHO_CMD)TOPDIR=`(cd ../../..;pwd)`; \
97         TOPDIR=$${DEPKGS:-$${TOPDIR}}; \
98         if test "$(win64)" = yes -a -e $${TOPDIR}/cross-tools/mingw-w64/bin/x86_64-pc-mingw32-gcc; then \
99                 BINDIR=$${TOPDIR}/cross-tools/mingw-w64/bin; \
100                 INCDIR=$${TOPDIR}/cross-tools/mingw-w64/x86_64-pc-mingw32/include; \
101                 DLLDIR=$${TOPDIR}/cross-tools/mingw-w64/x86_64-pc-mingw32/bin; \
102                 DEPKGSDIR=depkgs-mingw-w64; \
103                 DEPKGSDIR32=depkgs-mingw32; \
104         elif test -e $${TOPDIR}/cross-tools/mingw32/bin/mingw32-gcc; then \
105                 BINDIR=$${TOPDIR}/cross-tools/mingw32/bin; \
106                 INCDIR=$${TOPDIR}/cross-tools/mingw32/mingw32/include; \
107                 DLLDIR=$${TOPDIR}/cross-tools/mingw32/mingw32/bin; \
108                 DEPKGSDIR=depkgs-mingw32; \
109                 DEPKGSDIR32=depkgs-mingw32; \
110         else \
111                 echo "\nThe GCC cross compiler isn't installed."; \
112                 echo "You must run build-win32-cross-tools and build-dependencies first.\n"; \
113                 exit 1; \
114         fi ; \
115         BUILDDIR=`(pwd)`; \
116         MAINDIR=`(cd ../..;pwd)`; \
117         sed \
118                 -e "s^@WIN64@^$${win64}^" \
119                 -e "s^@BAT@^$${bat}^" \
120                 -e "s^@WIN32DEPKGS@^$${DEPKGSDIR}^" \
121                 -e "s^@WIN32DEPKGS32@^$${DEPKGSDIR32}^" \
122                 -e "s^@WIN32BUILDDIR@^$${BUILDDIR}^" \
123                 -e "s^@WIN32MAINDIR@^$${MAINDIR}^" \
124                 -e "s^@WIN32TOPDIR@^$${TOPDIR}^" \
125                 -e "s^@WIN32BINDIR@^$${BINDIR}^" \
126                 -e "s^@WIN32INCDIR@^$${INCDIR}^" \
127                 -e "s^@WIN32DLLDIR@^$${DLLDIR}^" < Makefile.inc.in > $@