]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/win32/Makefile
Merge remote branch 'sf/master'
[bacula/bacula] / bacula / src / win32 / Makefile
1 ECHO_CMD=@
2
3 WIN32_DIRS=lib filed filed/plugins console scripts
4
5 WIN64_DIRS=lib filed filed/plugins console scripts
6
7 ifeq ($(WIN64),yes)
8          DIRS=$(WIN64_DIRS)
9          INSTALLER=win64_installer
10          SPECIAL=bsmtp
11 else
12          DIRS=$(WIN32_DIRS)
13          INSTALLER=win32_installer
14          SPECIAL=bat bsmtp
15 endif
16
17 .PHONY: $(DIRS) clean all Makefile.inc win32_installer full_win32_installer \
18          win64_installer bsmtp
19
20 all: Makefile.inc $(DIRS) $(SPECIAL) $(INSTALLER)
21
22 clean: $(DIRS) win32_installer win64_installer
23         $(ECHO_CMD)-rm -rf release32 release64
24
25 bat:
26         (cd ../qt-console; ./make-win32)
27
28 full_win32_installer:
29         @if test -f Makefile.inc; then \
30            if $(MAKE) -C $@ $(MAKECMDGOALS); then \
31                 echo "\n===== Make of $@ succeeded =====\n\n" ; \
32            else  \
33                 echo "\n!!!!! Make of $@ failed !!!!!\n\n" ; exit 1; \
34            fi ; \
35         fi
36
37 win32_installer:
38         @if test -f Makefile.inc; then \
39            if $(MAKE) -C $@ $(MAKECMDGOALS); then \
40                 echo "\n===== Make of $@ succeeded =====\n\n" ; \
41            else  \
42                 echo "\n!!!!! Make of $@ failed !!!!!\n\n" ; exit 1; \
43            fi ; \
44         fi
45
46 win64_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
56 $(DIRS):
57         @if test -f Makefile.inc; then \
58            if $(MAKE) -C $@ $(MAKECMDGOALS); then \
59                 echo "\n===== Make of $@ succeeded =====\n\n" ; \
60            else  \
61                 echo "\n!!!!! Make of $@ failed !!!!!\n\n" ; exit 1; \
62            fi ; \
63         fi
64
65 bsmtp:
66         @if test -f Makefile.inc; then \
67            if $(MAKE) -C tools bsmtp $(MAKECMDGOALS); then \
68                 echo "\n===== Make of tools/bsmtp succeeded =====\n\n" ; \
69            else  \
70                 echo "\n!!!!! Make of tools/bsmtp failed !!!!!\n\n" ; exit 1; \
71            fi ; \
72         fi
73
74
75
76 Makefile.inc:
77         @echo Creating $@
78         $(ECHO_CMD)TOPDIR=`(cd ../../..;pwd)`; \
79         TOPDIR=$${DEPKGS:-$${TOPDIR}}; \
80         if test "$(WIN64)" = yes -a -e $${TOPDIR}/cross-tools/mingw-w64/bin/x86_64-pc-mingw32-gcc; then \
81                 BINDIR=$${TOPDIR}/cross-tools/mingw-w64/bin; \
82                 INCDIR=$${TOPDIR}/cross-tools/mingw-w64/x86_64-pc-mingw32/include; \
83                 DLLDIR=$${TOPDIR}/cross-tools/mingw-w64/x86_64-pc-mingw32/bin; \
84                 DEPKGSDIR=depkgs-mingw-w64; \
85                 DEPKGSDIR32=depkgs-mingw32; \
86         elif test -e $${TOPDIR}/cross-tools/mingw32/bin/mingw32-gcc; then \
87                 BINDIR=$${TOPDIR}/cross-tools/mingw32/bin; \
88                 INCDIR=$${TOPDIR}/cross-tools/mingw32/mingw32/include; \
89                 DLLDIR=$${TOPDIR}/cross-tools/mingw32/mingw32/bin; \
90                 DEPKGSDIR=depkgs-mingw32; \
91                 DEPKGSDIR32=depkgs-mingw32; \
92         else \
93                 echo "\nThe GCC cross compiler isn't installed."; \
94                 echo "You must run build-win32-cross-tools and build-dependencies first.\n"; \
95                 exit 1; \
96         fi ; \
97         BUILDDIR=`(pwd)`; \
98         MAINDIR=`(cd ../..;pwd)`; \
99         sed \
100                 -e "s^@WIN64@^$${WIN64}^" \
101                 -e "s^@WIN32DEPKGS@^$${DEPKGSDIR}^" \
102                 -e "s^@WIN32DEPKGS32@^$${DEPKGSDIR32}^" \
103                 -e "s^@WIN32BUILDDIR@^$${BUILDDIR}^" \
104                 -e "s^@WIN32MAINDIR@^$${MAINDIR}^" \
105                 -e "s^@WIN32TOPDIR@^$${TOPDIR}^" \
106                 -e "s^@WIN32BINDIR@^$${BINDIR}^" \
107                 -e "s^@WIN32INCDIR@^$${INCDIR}^" \
108                 -e "s^@WIN32DLLDIR@^$${DLLDIR}^" < Makefile.inc.in > $@