]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/win32/win32_installer/Makefile
Fix build of Windows bat -- Qt depends on libgcc_s_dw2-1.dll
[bacula/bacula] / bacula / src / win32 / win32_installer / Makefile
1 #
2 # Makefile for win32 bacula executables
3 # Using MinGW cross-compiler on GNU/Linux
4 #
5 #  Written by Robert Nelson, June 2006
6 #
7
8 include ../Makefile.inc
9
10 VERSION := $(shell sed -ne 's/.*[ \t]VERSION[ \t][ \t]*"\(.*\)"/\1/p' < ../../version.h)
11
12 DEFINES := \
13         -DVERSION=$(VERSION) \
14         -DOUT_DIR=..\\release32 \
15         -DSRC_DIR=release32 \
16         -DBUILD_TOOLS=MinGW32 \
17         -DWINVER=32 \
18         -DBUILD_BAT=$(BUILD_BAT)
19
20 INSTALL_EXE := $(BUILDDIR)/release32/winbacula-$(VERSION).exe
21
22 BACULABINARIES := \
23         bacula.dll \
24         exchange-fd.dll \
25         bacula-fd.exe \
26         bconsole.exe \
27         bsleep.exe \
28         bsmtp.exe \
29
30 ifeq ($(bat),no)
31         BACULA_BINARIES=$(BACULABINARIES)
32         HELP=
33 else
34         BACULA_BINARIES=$(BACULABINARIES) bat.exe
35         HELP=help
36 endif
37
38 DEPKGS_BINARIES := \
39         libeay32.dll \
40         pthreadGCE.dll \
41         ssleay32.dll \
42         zlib1.dll \
43         openssl.exe \
44         sed.exe \
45         expr64.exe \
46         snooze.exe \
47         mkisofs.exe \
48         growisofs.exe \
49         QtCore4.dll \
50         QtGui4.dll \
51         libgcc_s_dw2-1.dll
52
53 NONGCC_BINARIES :=
54
55 NONGCC_LIBRARIES := 
56
57 MINGW_BINARIES := \
58         mingwm10.dll
59
60 SCRIPT_FILES := 
61
62 CAT_FILES := 
63
64 DIRD_FILES := 
65
66 SSL_FILES := \
67         openssl.cnf
68
69 DOC_FILES := \
70         docs/manuals/en/console/console.pdf \
71         docs/manuals/en/main/main.pdf \
72         docs/manuals/en/misc/misc.pdf \
73         docs/manuals/en/problems/problems.pdf \
74         docs/manuals/en/utility/utility.pdf
75
76 ##########################################################################
77
78 # Targets
79
80 .PHONY: all clean installer
81
82 all:          $(HELP) $(INSTALL_EXE)
83
84 installer:    $(HELP) $(INSTALL_EXE)
85
86 clean:
87         @echo "Cleaning `pwd`"
88         $(CMD_ECHO)-rm -f $(INSTALL_EXE)
89         $(CMD_ECHO)-rm -rf release32
90
91 help:
92         rm -rf release32/help
93         mkdir -p release32/help
94         cp -f $(BINDIR)/help/* release32/help/
95
96
97 #
98 # Rules
99 #
100
101 define Convert_Binary
102 release32/$$(notdir $(1)): $(1)
103         $$(call checkdir,$$@)
104         $(ECHO_CMD)cp -f $$^ $$@ ; \
105         $(STAB2CV) $$@
106 endef
107
108 define Copy_Binary
109 release32/$$(notdir $(1)): $(1)
110         $$(call checkdir,$$@)
111         $(ECHO_CMD)cp -f $$^ $$@
112 endef
113
114 define Copy_Docs
115 release32/$(1): $(DOCDIR)/$(1)
116         $$(call checkdir,$$@)
117         $(ECHO_CMD)cp -f $$^ $$(dir $$@)
118 endef
119
120 $(foreach file,$(addprefix $(DEPKGS)/bin/, $(DEPKGS_BINARIES)),$(eval $(call Convert_Binary,$(file))))
121
122 $(foreach file,$(addprefix $(DEPKGS)/bin/, $(NONGCC_BINARIES)),$(eval $(call Copy_Binary,$(file))))
123
124 $(foreach file,$(addprefix $(DEPKGS)/lib/, $(NONGCC_LIBRARIES)),$(eval $(call Copy_Binary,$(file))))
125
126 $(foreach file,$(addprefix $(BINDIR)/, $(BACULA_BINARIES)),$(eval $(call Convert_Binary,$(file))))
127
128 $(foreach file,$(addprefix $(MINGW_DLLDIR)/, $(MINGW_BINARIES)),$(eval $(call Copy_Binary,$(file))))
129
130 $(foreach file,$(addprefix $(DEPKGS)/ssl/, $(SSL_FILES)),$(eval $(call Copy_Binary,$(file))))
131
132 $(foreach file,$(addprefix ../scripts/, $(SCRIPT_FILES)),$(eval $(call Copy_Binary,$(file))))
133
134 $(foreach file,$(addprefix ../cats/, $(CAT_FILES)),$(eval $(call Copy_Binary,$(file))))
135
136 $(foreach file,$(addprefix ../../dird/, $(DIRD_FILES)),$(eval $(call Copy_Binary,$(file))))
137
138 $(foreach file,$(DOC_FILES),$(eval $(call Copy_Docs,$(file))))
139
140
141
142 $(INSTALL_EXE): winbacula.nsi $(addprefix release32/,$(BACULA_BINARIES) $(SCRIPT_FILES) $(CAT_FILES) $(DEPKGS_BINARIES) $(NONGCC_BINARIES) $(NONGCC_LIBRARIES) $(MINGW_BINARIES) $(SSL_FILES) $(DIRD_FILES) $(DOC_FILES))
143         NSISDIR=$(NSIS_DIR) \
144         echo "$(NSIS_DIR)/makensis -V3 $(DEFINES) winbacula.nsi"
145         $(NSIS_DIR)/makensis -V3 $(DEFINES) winbacula.nsi
146
147 include $(BUILDDIR)/Makefile.rules