-c+ECHO_CMD=@
+#
+# Makefile for Win32/Win64 Bacula File daemon
+#
+# If called make win64=yes the Win64 version will be built
+# otherwise the Win32 version will be built.
+#
+# If called with bat=no, bat will not be built, otherwise it will be
+# built.
+#
-DIRS= dll \
- cats \
- filed \
- filed/plugins \
- dird \
- stored \
- console \
- wx-console \
- tools \
- scripts \
- installer
+ECHO_CMD=@
-.PHONY: $(DIRS) clean all
+WIN32_DIRS=lib filed filed/plugins console scripts
-all: Makefile.inc $(DIRS)
+WIN64_DIRS=lib filed filed/plugins console scripts
+
+ifeq ($(win64),yes)
+ DIRS=$(WIN64_DIRS)
+ INSTALLER=win64_installer
+ SPECIAL=bsmtp
+else
+ DIRS=$(WIN32_DIRS)
+ INSTALLER=win32_installer
+ SPECIAL=bat bsmtp
+endif
+
+ifeq ($(bat),no)
+ SPECIAL=bsmtp
+endif
+
+.PHONY: $(DIRS) clean all Makefile.inc win32_installer full_win32_installer \
+ win64_installer bsmtp
+
+all: Makefile.inc $(DIRS) $(SPECIAL) $(INSTALLER)
+
+clean: $(DIRS) win32_installer win64_installer
+ $(MAKE) -C tools clean
+ $(ECHO_CMD)-rm -rf release32 release64
+
+bat:
+ (cd ../qt-console; ./make-win32)
+
+full_win32_installer:
+ @if test -f Makefile.inc; then \
+ if $(MAKE) -C $@ $(MAKECMDGOALS); then \
+ echo "\n===== Make of $@ succeeded =====\n\n" ; \
+ else \
+ echo "\n!!!!! Make of $@ failed !!!!!\n\n" ; exit 1; \
+ fi ; \
+ fi
+
+win32_installer:
+ @if test -f Makefile.inc; then \
+ if $(MAKE) -C $@ $(MAKECMDGOALS); then \
+ echo "\n===== Make of $@ succeeded =====\n\n" ; \
+ else \
+ echo "\n!!!!! Make of $@ failed !!!!!\n\n" ; exit 1; \
+ fi ; \
+ fi
+
+win64_installer:
+ @if test -f Makefile.inc; then \
+ if $(MAKE) -C $@ $(MAKECMDGOALS); then \
+ echo "\n===== Make of $@ succeeded =====\n\n" ; \
+ else \
+ echo "\n!!!!! Make of $@ failed !!!!!\n\n" ; exit 1; \
+ fi ; \
+ fi
-clean: $(DIRS)
- $(ECHO_CMD)-rm -rf release
$(DIRS):
@if test -f Makefile.inc; then \
if $(MAKE) -C $@ $(MAKECMDGOALS); then \
echo "\n===== Make of $@ succeeded =====\n\n" ; \
else \
- echo "\n!!!!! Make of $@ failed !!!!!\n\n" ; \
+ echo "\n!!!!! Make of $@ failed !!!!!\n\n" ; exit 1; \
+ fi ; \
+ fi
+
+bsmtp:
+ @if test -f Makefile.inc; then \
+ if $(MAKE) -C tools bsmtp $(MAKECMDGOALS); then \
+ echo "\n===== Make of tools/bsmtp succeeded =====\n\n" ; \
+ else \
+ echo "\n!!!!! Make of tools/bsmtp failed !!!!!\n\n" ; exit 1; \
fi ; \
fi
-Makefile.inc: Makefile.inc.in
+
+
+Makefile.inc:
@echo Creating $@
$(ECHO_CMD)TOPDIR=`(cd ../../..;pwd)`; \
- if test -e ../../../cross-tools/mingw32/bin/mingw32-gcc; then \
+ TOPDIR=$${DEPKGS:-$${TOPDIR}}; \
+ if test "$(win64)" = yes -a -e $${TOPDIR}/cross-tools/mingw-w64/bin/x86_64-pc-mingw32-gcc; then \
+ BINDIR=$${TOPDIR}/cross-tools/mingw-w64/bin; \
+ INCDIR=$${TOPDIR}/cross-tools/mingw-w64/x86_64-pc-mingw32/include; \
+ DLLDIR=$${TOPDIR}/cross-tools/mingw-w64/x86_64-pc-mingw32/bin; \
+ DEPKGSDIR=depkgs-mingw-w64; \
+ DEPKGSDIR32=depkgs-mingw32; \
+ elif test -e $${TOPDIR}/cross-tools/mingw32/bin/mingw32-gcc; then \
BINDIR=$${TOPDIR}/cross-tools/mingw32/bin; \
INCDIR=$${TOPDIR}/cross-tools/mingw32/mingw32/include; \
DLLDIR=$${TOPDIR}/cross-tools/mingw32/mingw32/bin; \
- elif test -e /mingw/bin/mingw32-gcc; then \
- BINDIR=/mingw/bin; \
- INCDIR=/mingw/include; \
- DLLDIR=/mingw/bin; \
+ DEPKGSDIR=depkgs-mingw32; \
+ DEPKGSDIR32=depkgs-mingw32; \
else \
echo "\nThe GCC cross compiler isn't installed."; \
echo "You must run build-win32-cross-tools and build-dependencies first.\n"; \
exit 1; \
fi ; \
- $(ECHO_CMD)BUILDDIR=`(pwd)`; \
- $(ECHO_CMD)MAINDIR=`(cd ../..;pwd)`; \
+ BUILDDIR=`(pwd)`; \
+ MAINDIR=`(cd ../..;pwd)`; \
sed \
- -e "s^@WIN3wBUILDDIR@^$${BUILDDIR}^" \
+ -e "s^@WIN64@^$${win64}^" \
+ -e "s^@BAT@^$${bat}^" \
+ -e "s^@WIN32DEPKGS@^$${DEPKGSDIR}^" \
+ -e "s^@WIN32DEPKGS32@^$${DEPKGSDIR32}^" \
+ -e "s^@WIN32BUILDDIR@^$${BUILDDIR}^" \
-e "s^@WIN32MAINDIR@^$${MAINDIR}^" \
-e "s^@WIN32TOPDIR@^$${TOPDIR}^" \
-e "s^@WIN32BINDIR@^$${BINDIR}^" \