# # Copyright (C) 2000-2018 Kern Sibbald # License: BSD 2-Clause; see file LICENSE-FOSS # # # Makefile for win32 bacula executables # Using MinGW cross-compiler on GNU/Linux # # Written by Robert Nelson, June 2006 # include ../Makefile.inc VERSION := $(shell sed -ne 's/^.define[ \t]VERSION[ \t][ \t]*"\(.*\)"/\1/p' < ../../version.h) RELEASE ?= $(shell awk '/define RELEASE [0-9]+/ { print $$3 }' ../../version.h) DEFINES := \ -DVERSION=$(VERSION) \ -DOUT_DIR=$(BUILDDIR)/release32 \ -DSRC_DIR=release32 \ -DBUILD_TOOLS=MinGW32 \ -DWINVER=32 \ -DBUILD_BAT=$(BUILD_BAT) INSTALL_EXE := $(BUILDDIR)/release32/winbacula-$(VERSION).exe BACULABINARIES := \ bacula.dll \ alldrives-fd.dll \ exchange-fd.dll \ bacula-fd.exe \ bconsole.exe \ bsleep.exe \ bsmtp.exe \ bacula-sd.exe \ bextract.exe \ bls.exe \ bcopy.exe ifeq ($(bat),no) BACULA_BINARIES=$(BACULABINARIES) HELP= else BACULA_BINARIES=$(BACULABINARIES) bat.exe #bacula-tray-monitor.exe HELP=help endif EXTRA= # bacula-sd.exe \ DEPKGS_BINARIES := \ libeay32.dll \ pthreadGCE2.dll \ zlib1.dll \ ssleay32.dll \ openssl.exe \ sed.exe \ expr64.exe \ snooze.exe \ QtCore4.dll \ QtGui4.dll \ libwinpthread-1.dll \ libgcc_s_sjlj-1.dll \ libstdc++-6.dll # libgcc_s_dw2-1.dll NONGCC_BINARIES := NONGCC_LIBRARIES := MINGW_BINARIES := SCRIPT_FILES := CAT_FILES := DIRD_FILES := SSL_FILES := \ openssl.cnf LICENSE_FILES := \ LICENSE ########################################################################## # Targets .PHONY: all clean installer distclean all: $(HELP) docs $(INSTALL_EXE) $(EXTRA) installer: $(HELP) docs $(INSTALL_EXE) distclean: clean clean: @echo "Cleaning `pwd`" $(CMD_ECHO)-rm -f $(INSTALL_EXE) $(CMD_ECHO)-rm -rf release32 help: rm -rf release32/help mkdir -p release32/help cp -f $(BINDIR)/help/* release32/help/ docs: rm -rf release32/docs mkdir -p release32/docs/manuals/en/console mkdir -p release32/docs/manuals/en/main mkdir -p release32/docs/manuals/en/misc mkdir -p release32/docs/manuals/en/problems mkdir -p release32/docs/manuals/en/utility cp -f $(DOCDIR)/docs/manuals/en/pdf-and-html/console/console.pdf release32/docs/manuals/en/console/ cp -f $(DOCDIR)/docs/manuals/en/pdf-and-html/main/main.pdf release32/docs/manuals/en/main/ cp -f $(DOCDIR)/docs/manuals/en/pdf-and-html/misc/misc.pdf release32/docs/manuals/en/misc/ cp -f $(DOCDIR)/docs/manuals/en/pdf-and-html/problems/problems.pdf release32/docs/manuals/en/problems/ cp -f $(DOCDIR)/docs/manuals/en/pdf-and-html/utility/utility.pdf release32/docs/manuals/en/utility/ # # Rules # define Convert_Binary release32/$$(notdir $(1)): $(1) $$(call checkdir,$$@) $(ECHO_CMD)cp -f $$^ $$@ ; \ $(STAB2CV) $$@ endef define Copy_Binary release32/$$(notdir $(1)): $(1) $$(call checkdir,$$@) $(ECHO_CMD)cp -f $$^ $$@ endef define Copy_Docs release32/$(1): $(DOCDIR)/$(1) $$(call checkdir,$$@) cp -f $$^ $$(dir $$@) $(ECHO_CMD)cp -f $$^ $$(dir $$@) endef define Copy_Licenses release32/$$(notdir $(1)): $(1) $$(call checkdir,$$@) $(ECHO_CMD)cp -f $$^ $$(dir $$@) endef $(foreach file,$(addprefix $(DEPKGS)/bin/, $(DEPKGS_BINARIES)),$(eval $(call Convert_Binary,$(file)))) $(foreach file,$(addprefix $(DEPKGS)/bin/, $(NONGCC_BINARIES)),$(eval $(call Copy_Binary,$(file)))) $(foreach file,$(addprefix $(DEPKGS)/lib/, $(NONGCC_LIBRARIES)),$(eval $(call Copy_Binary,$(file)))) $(foreach file,$(addprefix $(BINDIR)/, $(BACULA_BINARIES)),$(eval $(call Convert_Binary,$(file)))) $(foreach file,$(addprefix $(DEPKGS)/ssl/, $(SSL_FILES)),$(eval $(call Copy_Binary,$(file)))) $(foreach file,$(addprefix ../scripts/, $(SCRIPT_FILES)),$(eval $(call Copy_Binary,$(file)))) $(foreach file,$(addprefix ../cats/, $(CAT_FILES)),$(eval $(call Copy_Binary,$(file)))) $(foreach file,$(addprefix ../../dird/, $(DIRD_FILES)),$(eval $(call Copy_Binary,$(file)))) $(foreach file,$(addprefix $(MAINDIR)/, $(LICENSE_FILES)),$(eval $(call Copy_Licenses,$(file)))) #$(foreach file,$(DOC_FILES),$(eval $(call Copy_Docs,$(file)))) $(INSTALL_EXE): winbacula.nsi $(addprefix release32/,$(BACULA_BINARIES) $(SCRIPT_FILES) $(CAT_FILES) $(DEPKGS_BINARIES) $(NONGCC_BINARIES) $(NONGCC_LIBRARIES) $(MINGW_BINARIES) $(SSL_FILES) $(DIRD_FILES) $(LICENSE_FILES) ) echo "makensis -V3 $(DEFINES) winbacula.nsi" makensis -V3 $(DEFINES) winbacula.nsi include $(BUILDDIR)/Makefile.rules