]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/win32/win64_installer/Makefile
Restore win32 dir from Branch-5.2 and update it
[bacula/bacula] / bacula / src / win32 / win64_installer / Makefile
1 #
2 # Makefile for win32 bacula executables
3 # Using MinGW cross-compiler on GNU/Linux
4 #
5 #  Written by Eric Bollengier, March 2009 
6 #    based on work by Robert Nelson
7 #
8
9 include ../Makefile.inc
10
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)
13
14 DEFINES := \
15         -DVERSION=$(VERSION) \
16         -DOUT_DIR=$(BUILDDIR)/release64 \
17         -DSRC_DIR=release64 \
18         -DSRC64_DIR=$(BUILDDIR)/win64_installer/release64 \
19         -DSRC32_DIR=$(BUILDDIR)/win32_installer/release32 \
20         -DWINVER=64 \
21         -DBUILD_TOOLS=MinGW64 \
22         -DBUILD_BAT=$(BUILD_BAT)
23
24 INSTALL_EXE := $(BUILDDIR)/release64/winbacula-$(VERSION).exe
25
26 BACULABINARIES := \
27         bacula.dll \
28         alldrives-fd.dll \
29         exchange-fd.dll \
30         bsleep.exe \
31         bsmtp.exe \
32         bconsole.exe \
33         bacula-fd.exe \
34         bacula-sd.exe \
35         bextract.exe \
36         bls.exe \
37         bcopy.exe
38
39 DEPKGS_BINARIES := \
40         openssl.exe \
41         sed.exe \
42         expr64.exe \
43         snooze.exe \
44         QtCore4.dll \
45         QtGui4.dll  \
46         pthreadGCE2.dll \
47         libwinpthread-1.dll \
48         libgcc_s_seh-1.dll \
49         libstdc++-6.dll \
50         libeay32.dll \
51         ssleay32.dll \
52         zlib1.dll
53
54 #       libgcc_s_dw2-1.dll
55
56 NONGCC_BINARIES := \
57         libmysql.dll
58
59 NONGCC_LIBRARIES := \
60         libpq.dll
61
62 MINGW_BINARIES := 
63
64 SCRIPT_FILES := \
65         mtx-changer.cmd \
66         disk-changer.cmd \
67         dvd-handler.cmd
68
69 CAT_FILES := \
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
97
98 DIRD_FILES := \
99         query.sql
100
101 SSL_FILES := \
102         openssl.cnf
103
104 LICENSE_FILES := \
105         LICENSE
106
107 ifeq ($(bat),no)
108         BACULA_BINARIES=$(BACULABINARIES)
109         HELP=
110 else
111         BACULA_BINARIES=$(BACULABINARIES) bat.exe #bacula-tray-monitor.exe
112         HELP=help
113 endif
114
115
116 EXTRA=
117
118 ##########################################################################
119
120 # Targets
121
122 .PHONY: all clean installer distclean
123
124 all:            $(HELP) docs $(INSTALL_EXE) $(EXTRA)
125
126 installer:      $(HELP) docs $(INSTALL_EXE)
127
128 distclean: clean
129
130 clean:
131         @echo "Cleaning `pwd`"
132         $(CMD_ECHO)-rm -f $(INSTALL_EXE)
133         $(CMD_ECHO)-rm -rf release64
134
135 help:
136         rm -rf release64/help
137         mkdir -p release64/help
138         cp -f $(BINDIR)/help/* release64/help/
139
140 docs:
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/
152
153 #
154 # Rules
155 #
156
157 define Convert_Binary
158 release64/$$(notdir $(1)): $(1)
159         $$(call checkdir,$$@)
160         $(ECHO_CMD)cp -f $$^ $$@
161 endef
162
163 define Copy_Binary
164 release64/$$(notdir $(1)): $(1)
165         $$(call checkdir,$$@)
166         $(ECHO_CMD)cp -f $$^ $$@
167 endef
168
169 define Copy_Docs
170 release64/$(1): $(DOCDIR)/$(1)
171         $$(call checkdir,$$@)
172         $(ECHO_CMD)cp -f $$^ $$(dir $$@)
173 endef
174
175 define Copy_Licenses
176 release64/$$(notdir $(1)): $(1)
177         $$(call checkdir,$$@)
178         $(ECHO_CMD)cp -f $$^ $$(dir $$@)
179 endef
180
181 $(foreach file,$(addprefix $(DEPKGS)/bin/, $(DEPKGS_BINARIES)),$(eval $(call Convert_Binary,$(file))))
182
183 $(foreach file,$(addprefix $(DEPKGS)/bin/, $(NONGCC_BINARIES)),$(eval $(call Copy_Binary,$(file))))
184
185 $(foreach file,$(addprefix $(DEPKGS)/lib/, $(NONGCC_LIBRARIES)),$(eval $(call Copy_Binary,$(file))))
186
187 $(foreach file,$(addprefix $(BINDIR)/, $(BACULA_BINARIES)),$(eval $(call Convert_Binary,$(file))))
188
189 $(foreach file,$(addprefix $(MINGW_DLLDIR)/, $(MINGW_BINARIES)),$(eval $(call Copy_Binary,$(file))))
190
191 $(foreach file,$(addprefix $(DEPKGS)/ssl/, $(SSL_FILES)),$(eval $(call Copy_Binary,$(file))))
192
193 $(foreach file,$(addprefix ../scripts/, $(SCRIPT_FILES)),$(eval $(call Copy_Binary,$(file))))
194
195 $(foreach file,$(addprefix ../cats/, $(CAT_FILES)),$(eval $(call Copy_Binary,$(file))))
196
197 $(foreach file,$(addprefix ../../dird/, $(DIRD_FILES)),$(eval $(call Copy_Binary,$(file))))
198
199 $(foreach file,$(addprefix $(MAINDIR)/, $(LICENSE_FILES)),$(eval $(call Copy_Licenses,$(file))))
200
201 #$(foreach file,$(DOC_FILES),$(eval $(call Copy_Docs,$(file))))
202
203 $(INSTALL_EXE): winbacula.nsi $(addprefix release64/,$(BACULA_BINARIES) $(DEPKGS_BINARIES) $(SSL_FILES) $(LICENSE_FILES))
204         makensis -V3 $(DEFINES) winbacula.nsi
205         echo " "
206
207 include $(BUILDDIR)/Makefile.rules