]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/win32/win32_installer/Makefile
Restore win32 dir from Branch-5.2 and update it
[bacula/bacula] / bacula / src / win32 / win32_installer / Makefile
1 #
2 # Copyright (C) 2000-2018 Kern Sibbald
3 # License: BSD 2-Clause; see file LICENSE-FOSS
4 #
5 #
6 # Makefile for win32 bacula executables
7 # Using MinGW cross-compiler on GNU/Linux
8 #
9 #  Written by Robert Nelson, June 2006
10 #
11
12 include ../Makefile.inc
13
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)
16
17 DEFINES := \
18         -DVERSION=$(VERSION) \
19         -DOUT_DIR=$(BUILDDIR)/release32 \
20         -DSRC_DIR=release32 \
21         -DBUILD_TOOLS=MinGW32 \
22         -DWINVER=32 \
23         -DBUILD_BAT=$(BUILD_BAT)
24
25 INSTALL_EXE := $(BUILDDIR)/release32/winbacula-$(VERSION).exe
26
27 BACULABINARIES := \
28         bacula.dll \
29         alldrives-fd.dll \
30         exchange-fd.dll \
31         bacula-fd.exe \
32         bconsole.exe \
33         bsleep.exe \
34         bsmtp.exe \
35         bacula-sd.exe \
36         bextract.exe \
37         bls.exe \
38         bcopy.exe
39
40 ifeq ($(bat),no)
41         BACULA_BINARIES=$(BACULABINARIES)
42         HELP=
43 else
44         BACULA_BINARIES=$(BACULABINARIES) bat.exe #bacula-tray-monitor.exe
45         HELP=help
46 endif
47
48 EXTRA=
49
50 #       bacula-sd.exe \
51
52
53 DEPKGS_BINARIES := \
54         libeay32.dll \
55         pthreadGCE2.dll \
56         zlib1.dll \
57         ssleay32.dll \
58         openssl.exe \
59         sed.exe \
60         expr64.exe \
61         snooze.exe \
62         QtCore4.dll \
63         QtGui4.dll  \
64         libwinpthread-1.dll \
65         libgcc_s_sjlj-1.dll \
66         libstdc++-6.dll
67 #       libgcc_s_dw2-1.dll
68
69
70 NONGCC_BINARIES := 
71
72 NONGCC_LIBRARIES := 
73
74 MINGW_BINARIES := 
75
76 SCRIPT_FILES := 
77
78 CAT_FILES := 
79
80 DIRD_FILES := 
81
82 SSL_FILES := \
83         openssl.cnf
84
85 LICENSE_FILES := \
86         LICENSE
87
88 ##########################################################################
89
90 # Targets
91
92 .PHONY: all clean installer distclean
93
94 all:          $(HELP) docs $(INSTALL_EXE) $(EXTRA)
95
96 installer:    $(HELP) docs $(INSTALL_EXE)
97
98 distclean: clean
99
100 clean:
101         @echo "Cleaning `pwd`"
102         $(CMD_ECHO)-rm -f $(INSTALL_EXE)
103         $(CMD_ECHO)-rm -rf release32
104
105 help:
106         rm -rf release32/help
107         mkdir -p release32/help
108         cp -f $(BINDIR)/help/* release32/help/
109
110 docs:
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/
122
123 #
124 # Rules
125 #
126
127 define Convert_Binary
128 release32/$$(notdir $(1)): $(1)
129         $$(call checkdir,$$@)
130         $(ECHO_CMD)cp -f $$^ $$@ ; \
131         $(STAB2CV) $$@
132 endef
133
134 define Copy_Binary
135 release32/$$(notdir $(1)): $(1)
136         $$(call checkdir,$$@)
137         $(ECHO_CMD)cp -f $$^ $$@
138 endef
139
140 define Copy_Docs
141 release32/$(1): $(DOCDIR)/$(1)
142         $$(call checkdir,$$@)
143         cp -f $$^ $$(dir $$@)
144         $(ECHO_CMD)cp -f $$^ $$(dir $$@)
145 endef
146
147 define Copy_Licenses
148 release32/$$(notdir $(1)): $(1)
149         $$(call checkdir,$$@)
150         $(ECHO_CMD)cp -f $$^ $$(dir $$@)
151 endef
152
153 $(foreach file,$(addprefix $(DEPKGS)/bin/, $(DEPKGS_BINARIES)),$(eval $(call Convert_Binary,$(file))))
154
155 $(foreach file,$(addprefix $(DEPKGS)/bin/, $(NONGCC_BINARIES)),$(eval $(call Copy_Binary,$(file))))
156
157 $(foreach file,$(addprefix $(DEPKGS)/lib/, $(NONGCC_LIBRARIES)),$(eval $(call Copy_Binary,$(file))))
158
159 $(foreach file,$(addprefix $(BINDIR)/, $(BACULA_BINARIES)),$(eval $(call Convert_Binary,$(file))))
160
161 $(foreach file,$(addprefix $(DEPKGS)/ssl/, $(SSL_FILES)),$(eval $(call Copy_Binary,$(file))))
162
163 $(foreach file,$(addprefix ../scripts/, $(SCRIPT_FILES)),$(eval $(call Copy_Binary,$(file))))
164
165 $(foreach file,$(addprefix ../cats/, $(CAT_FILES)),$(eval $(call Copy_Binary,$(file))))
166
167 $(foreach file,$(addprefix ../../dird/, $(DIRD_FILES)),$(eval $(call Copy_Binary,$(file))))
168
169 $(foreach file,$(addprefix $(MAINDIR)/, $(LICENSE_FILES)),$(eval $(call Copy_Licenses,$(file))))
170
171 #$(foreach file,$(DOC_FILES),$(eval $(call Copy_Docs,$(file))))
172
173
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
177
178 include $(BUILDDIR)/Makefile.rules