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