2 # Copyright (C) 2000-2018 Kern Sibbald
3 # License: BSD 2-Clause; see file LICENSE-FOSS
6 # Makefile for win32 bacula executables
7 # Using MinGW cross-compiler on GNU/Linux
9 # Written by Robert Nelson, June 2006
12 include ../Makefile.inc
14 VERSION := $(shell sed -ne 's/^.define[ \t]VERSION[ \t][ \t]*"\(.*\)"/\1/p' < ../../version.h)
15 RELEASE ?= $(shell awk '/define RELEASE [0-9]+/ { print $$3 }' ../../version.h)
18 -DVERSION=$(VERSION) \
19 -DOUT_DIR=$(BUILDDIR)/release32 \
21 -DBUILD_TOOLS=MinGW32 \
23 -DBUILD_BAT=$(BUILD_BAT)
25 INSTALL_EXE := $(BUILDDIR)/release32/winbacula-$(VERSION).exe
41 BACULA_BINARIES=$(BACULABINARIES)
44 BACULA_BINARIES=$(BACULABINARIES) bat.exe #bacula-tray-monitor.exe
88 ##########################################################################
92 .PHONY: all clean installer distclean
94 all: $(HELP) docs $(INSTALL_EXE) $(EXTRA)
96 installer: $(HELP) docs $(INSTALL_EXE)
101 @echo "Cleaning `pwd`"
102 $(CMD_ECHO)-rm -f $(INSTALL_EXE)
103 $(CMD_ECHO)-rm -rf release32
106 rm -rf release32/help
107 mkdir -p release32/help
108 cp -f $(BINDIR)/help/* release32/help/
111 rm -rf release32/docs
112 mkdir -p release32/docs/manuals/en/console
113 mkdir -p release32/docs/manuals/en/main
114 mkdir -p release32/docs/manuals/en/misc
115 mkdir -p release32/docs/manuals/en/problems
116 mkdir -p release32/docs/manuals/en/utility
117 cp -f $(DOCDIR)/docs/manuals/en/pdf-and-html/console/console.pdf release32/docs/manuals/en/console/
118 cp -f $(DOCDIR)/docs/manuals/en/pdf-and-html/main/main.pdf release32/docs/manuals/en/main/
119 cp -f $(DOCDIR)/docs/manuals/en/pdf-and-html/misc/misc.pdf release32/docs/manuals/en/misc/
120 cp -f $(DOCDIR)/docs/manuals/en/pdf-and-html/problems/problems.pdf release32/docs/manuals/en/problems/
121 cp -f $(DOCDIR)/docs/manuals/en/pdf-and-html/utility/utility.pdf release32/docs/manuals/en/utility/
127 define Convert_Binary
128 release32/$$(notdir $(1)): $(1)
129 $$(call checkdir,$$@)
130 $(ECHO_CMD)cp -f $$^ $$@ ; \
135 release32/$$(notdir $(1)): $(1)
136 $$(call checkdir,$$@)
137 $(ECHO_CMD)cp -f $$^ $$@
141 release32/$(1): $(DOCDIR)/$(1)
142 $$(call checkdir,$$@)
143 cp -f $$^ $$(dir $$@)
144 $(ECHO_CMD)cp -f $$^ $$(dir $$@)
148 release32/$$(notdir $(1)): $(1)
149 $$(call checkdir,$$@)
150 $(ECHO_CMD)cp -f $$^ $$(dir $$@)
153 $(foreach file,$(addprefix $(DEPKGS)/bin/, $(DEPKGS_BINARIES)),$(eval $(call Convert_Binary,$(file))))
155 $(foreach file,$(addprefix $(DEPKGS)/bin/, $(NONGCC_BINARIES)),$(eval $(call Copy_Binary,$(file))))
157 $(foreach file,$(addprefix $(DEPKGS)/lib/, $(NONGCC_LIBRARIES)),$(eval $(call Copy_Binary,$(file))))
159 $(foreach file,$(addprefix $(BINDIR)/, $(BACULA_BINARIES)),$(eval $(call Convert_Binary,$(file))))
161 $(foreach file,$(addprefix $(DEPKGS)/ssl/, $(SSL_FILES)),$(eval $(call Copy_Binary,$(file))))
163 $(foreach file,$(addprefix ../scripts/, $(SCRIPT_FILES)),$(eval $(call Copy_Binary,$(file))))
165 $(foreach file,$(addprefix ../cats/, $(CAT_FILES)),$(eval $(call Copy_Binary,$(file))))
167 $(foreach file,$(addprefix ../../dird/, $(DIRD_FILES)),$(eval $(call Copy_Binary,$(file))))
169 $(foreach file,$(addprefix $(MAINDIR)/, $(LICENSE_FILES)),$(eval $(call Copy_Licenses,$(file))))
171 #$(foreach file,$(DOC_FILES),$(eval $(call Copy_Docs,$(file))))
174 $(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) )
175 echo "makensis -V3 $(DEFINES) winbacula.nsi"
176 makensis -V3 $(DEFINES) winbacula.nsi
178 include $(BUILDDIR)/Makefile.rules