2 # Makefile for win32 bacula executables
3 # Using MinGW cross-compiler on GNU/Linux
5 # Written by Eric Bollengier, March 2009
6 # based on work by Robert Nelson
9 include ../Makefile.inc
11 VERSION := $(shell sed -ne 's/^.define[ \t]VERSION[ \t][ \t]*"\(.*\)"/\1/p' < ../../version.h)
12 RELEASE ?= $(shell awk '/define RELEASE [0-9]+/ { print $$3 }' ../../version.h)
15 -DVERSION=$(VERSION) \
16 -DOUT_DIR=$(BUILDDIR)/release64 \
18 -DSRC64_DIR=$(BUILDDIR)/win64_installer/release64 \
19 -DSRC32_DIR=$(BUILDDIR)/win32_installer/release32 \
21 -DBUILD_TOOLS=MinGW64 \
22 -DBUILD_BAT=$(BUILD_BAT)
24 INSTALL_EXE := $(BUILDDIR)/release64/winbacula-$(VERSION).exe
70 create_mysql_database.cmd \
71 drop_mysql_database.cmd \
72 make_mysql_tables.cmd \
73 make_mysql_tables.sql \
74 drop_mysql_tables.cmd \
75 drop_mysql_tables.sql \
76 grant_mysql_privileges.cmd \
77 grant_mysql_privileges.sql \
78 make_mysql_catalog_backup.cmd \
79 create_postgresql_database.cmd \
80 create_postgresql_database.sql \
81 drop_postgresql_database.cmd \
82 make_postgresql_tables.cmd \
83 make_postgresql_tables.sql \
84 drop_postgresql_tables.cmd \
85 drop_postgresql_tables.sql \
86 grant_postgresql_privileges.cmd \
87 grant_postgresql_privileges.sql \
88 make_postgresql_catalog_backup.cmd \
89 create_sqlite3_database.cmd \
90 drop_sqlite3_database.cmd \
91 make_sqlite3_tables.cmd \
92 make_sqlite3_tables.sql \
93 drop_sqlite3_tables.cmd \
94 grant_sqlite3_privileges.cmd \
95 make_sqlite3_catalog_backup.cmd \
96 delete_catalog_backup.cmd
108 BACULA_BINARIES=$(BACULABINARIES)
111 BACULA_BINARIES=$(BACULABINARIES) bat.exe #bacula-tray-monitor.exe
118 ##########################################################################
122 .PHONY: all clean installer distclean
124 all: $(HELP) docs $(INSTALL_EXE) $(EXTRA)
126 installer: $(HELP) docs $(INSTALL_EXE)
131 @echo "Cleaning `pwd`"
132 $(CMD_ECHO)-rm -f $(INSTALL_EXE)
133 $(CMD_ECHO)-rm -rf release64
136 rm -rf release64/help
137 mkdir -p release64/help
138 cp -f $(BINDIR)/help/* release64/help/
141 rm -rf release64/docs
142 mkdir -p release64/docs/manuals/en/console
143 mkdir -p release64/docs/manuals/en/main
144 mkdir -p release64/docs/manuals/en/misc
145 mkdir -p release64/docs/manuals/en/problems
146 mkdir -p release64/docs/manuals/en/utility
147 cp -f $(DOCDIR)/docs/manuals/en/pdf-and-html/console/console.pdf release64/docs/manuals/en/console/
148 cp -f $(DOCDIR)/docs/manuals/en/pdf-and-html/main/main.pdf release64/docs/manuals/en/main/
149 cp -f $(DOCDIR)/docs/manuals/en/pdf-and-html/misc/misc.pdf release64/docs/manuals/en/misc/
150 cp -f $(DOCDIR)/docs/manuals/en/pdf-and-html/problems/problems.pdf release64/docs/manuals/en/problems/
151 cp -f $(DOCDIR)/docs/manuals/en/pdf-and-html/utility/utility.pdf release64/docs/manuals/en/utility/
157 define Convert_Binary
158 release64/$$(notdir $(1)): $(1)
159 $$(call checkdir,$$@)
160 $(ECHO_CMD)cp -f $$^ $$@
164 release64/$$(notdir $(1)): $(1)
165 $$(call checkdir,$$@)
166 $(ECHO_CMD)cp -f $$^ $$@
170 release64/$(1): $(DOCDIR)/$(1)
171 $$(call checkdir,$$@)
172 $(ECHO_CMD)cp -f $$^ $$(dir $$@)
176 release64/$$(notdir $(1)): $(1)
177 $$(call checkdir,$$@)
178 $(ECHO_CMD)cp -f $$^ $$(dir $$@)
181 $(foreach file,$(addprefix $(DEPKGS)/bin/, $(DEPKGS_BINARIES)),$(eval $(call Convert_Binary,$(file))))
183 $(foreach file,$(addprefix $(DEPKGS)/bin/, $(NONGCC_BINARIES)),$(eval $(call Copy_Binary,$(file))))
185 $(foreach file,$(addprefix $(DEPKGS)/lib/, $(NONGCC_LIBRARIES)),$(eval $(call Copy_Binary,$(file))))
187 $(foreach file,$(addprefix $(BINDIR)/, $(BACULA_BINARIES)),$(eval $(call Convert_Binary,$(file))))
189 $(foreach file,$(addprefix $(MINGW_DLLDIR)/, $(MINGW_BINARIES)),$(eval $(call Copy_Binary,$(file))))
191 $(foreach file,$(addprefix $(DEPKGS)/ssl/, $(SSL_FILES)),$(eval $(call Copy_Binary,$(file))))
193 $(foreach file,$(addprefix ../scripts/, $(SCRIPT_FILES)),$(eval $(call Copy_Binary,$(file))))
195 $(foreach file,$(addprefix ../cats/, $(CAT_FILES)),$(eval $(call Copy_Binary,$(file))))
197 $(foreach file,$(addprefix ../../dird/, $(DIRD_FILES)),$(eval $(call Copy_Binary,$(file))))
199 $(foreach file,$(addprefix $(MAINDIR)/, $(LICENSE_FILES)),$(eval $(call Copy_Licenses,$(file))))
201 #$(foreach file,$(DOC_FILES),$(eval $(call Copy_Docs,$(file))))
203 $(INSTALL_EXE): winbacula.nsi $(addprefix release64/,$(BACULA_BINARIES) $(DEPKGS_BINARIES) $(SSL_FILES) $(LICENSE_FILES))
204 makensis -V3 $(DEFINES) winbacula.nsi
207 include $(BUILDDIR)/Makefile.rules