]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/win32/win64_installer/Makefile
Implement more automatic build of Win64 client. Note, there are still
[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/.*[ \t]VERSION[ \t][ \t]*"\(.*\)"/\1/p' < ../../version.h)
12
13 DEFINES := \
14         -DVERSION=$(VERSION) \
15         -DOUT_DIR=..\\release \
16         -DSRC_DIR=release \
17         -DWINVER=64 \
18         -DBUILD_TOOLS=MinGW64 \
19
20 INSTALL_EXE := $(BUILDDIR)/release/winbacula-$(VERSION).exe
21
22 BACULA_BINARIES := \
23         bacula.dll \
24         exchange-fd.dll \
25         bsleep.exe \
26         bsmtp.exe \
27         bacula-fd.exe
28
29 DEPKGS32_BINARIES := \
30         sed.exe \
31         expr64.exe \
32         snooze.exe
33
34 DEPKGS_BINARIES := \
35         openssl.exe \
36         cryptoeay32-0.9.8.dll \
37         ssleay32-0.9.8.dll \
38         pthreadGCE.dll \
39         zlib1.dll
40
41 NONGCC_BINARIES := \
42         libmysql.dll
43
44 NONGCC_LIBRARIES := \
45         libpq.dll
46
47 MINGW_BINARIES := \
48         mingwm10.dll
49
50 SCRIPT_FILES := \
51         mtx-changer.cmd \
52         disk-changer.cmd \
53         dvd-handler.cmd
54
55 CAT_FILES := \
56         create_mysql_database.cmd \
57         drop_mysql_database.cmd \
58         make_mysql_tables.cmd \
59         make_mysql_tables.sql \
60         drop_mysql_tables.cmd \
61         drop_mysql_tables.sql \
62         grant_mysql_privileges.cmd \
63         grant_mysql_privileges.sql \
64         make_mysql_catalog_backup.cmd \
65         create_postgresql_database.cmd \
66         create_postgresql_database.sql \
67         drop_postgresql_database.cmd \
68         make_postgresql_tables.cmd \
69         make_postgresql_tables.sql \
70         drop_postgresql_tables.cmd \
71         drop_postgresql_tables.sql \
72         grant_postgresql_privileges.cmd \
73         grant_postgresql_privileges.sql \
74         make_postgresql_catalog_backup.cmd \
75         create_sqlite3_database.cmd \
76         drop_sqlite3_database.cmd \
77         make_sqlite3_tables.cmd \
78         make_sqlite3_tables.sql \
79         drop_sqlite3_tables.cmd \
80         grant_sqlite3_privileges.cmd \
81         make_sqlite3_catalog_backup.cmd \
82         delete_catalog_backup.cmd
83
84 DIRD_FILES := \
85         query.sql
86
87 SSL_FILES := \
88         openssl.cnf
89
90 DOC_FILES := \
91         manual/bacula.pdf \
92         manual/bacula/*.html \
93         manual/bacula/*.png  \
94         manual/bacula/*.css
95
96 ##########################################################################
97
98 # Targets
99
100 .PHONY: all clean installer
101
102 all:            $(INSTALL_EXE)
103
104 installer:      $(INSTALL_EXE)
105
106 clean:
107         @echo "Cleaning `pwd`"
108         $(CMD_ECHO)-rm -f $(INSTALL_EXE)
109         $(CMD_ECHO)-rm -rf release
110
111 #
112 # Rules
113 #
114
115 define Convert_Binary
116 release/$$(notdir $(1)): $(1)
117         $$(call checkdir,$$@)
118         $(ECHO_CMD)cp -f $$^ $$@ ; \
119         $(STAB2CV) $$@
120 endef
121
122 define Copy_Binary
123 release/$$(notdir $(1)): $(1)
124         $$(call checkdir,$$@)
125         $(ECHO_CMD)cp -f $$^ $$@
126 endef
127
128 define Copy_Docs
129 release/$(1): $(DOCDIR)/$(1)
130         $$(call checkdir,$$@)
131         $(ECHO_CMD)cp -f $$^ $$(dir $$@)
132 endef
133
134 $(foreach file,$(addprefix $(DEPKGS32)/bin/, $(DEPKGS32_BINARIES)),$(eval $(call Convert_Binary,$(file))))
135
136 $(foreach file,$(addprefix $(DEPKGS)/bin/, $(DEPKGS_BINARIES)),$(eval $(call Convert_Binary,$(file))))
137
138 #$(foreach file,$(addprefix $(DEPKGS)/bin/, $(NONGCC_BINARIES)),$(eval $(call Copy_Binary,$(file))))
139
140 #$(foreach file,$(addprefix $(DEPKGS)/lib/, $(NONGCC_LIBRARIES)),$(eval $(call Copy_Binary,$(file))))
141
142 $(foreach file,$(addprefix $(BINDIR)/, $(BACULA_BINARIES)),$(eval $(call Convert_Binary,$(file))))
143
144 #$(foreach file,$(addprefix $(MINGW_DLLDIR)/, $(MINGW_BINARIES)),$(eval $(call Copy_Binary,$(file))))
145
146 $(foreach file,$(addprefix $(DEPKGS32)/ssl/, $(SSL_FILES)),$(eval $(call Copy_Binary,$(file))))
147
148 #$(foreach file,$(addprefix ../scripts/, $(SCRIPT_FILES)),$(eval $(call Copy_Binary,$(file))))
149
150 #$(foreach file,$(addprefix ../cats/, $(CAT_FILES)),$(eval $(call Copy_Binary,$(file))))
151
152 #$(foreach file,$(addprefix ../../dird/, $(DIRD_FILES)),$(eval $(call Copy_Binary,$(file))))
153
154 #$(foreach file,$(DOC_FILES),$(eval $(call Copy_Docs,$(file))))
155
156 $(INSTALL_EXE): winbacula.nsi $(addprefix release/,$(BACULA_BINARIES) $(DEPKGS_BINARIES) $(DEPKGS32_BINARIES) $(SSL_FILES) )
157         NSISDIR=$(NSIS_DIR) \
158         $(NSIS_DIR)/makensis -V3 $(DEFINES) winbacula.nsi
159
160 include $(BUILDDIR)/Makefile.rules