]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/win32/win32_installer/Makefile
Add bat=no make option on Win32
[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
52 NONGCC_BINARIES :=
53
54 NONGCC_LIBRARIES := 
55
56 MINGW_BINARIES := \
57         mingwm10.dll
58
59 SCRIPT_FILES := 
60
61 CAT_FILES := 
62
63 DIRD_FILES := 
64
65 SSL_FILES := \
66         openssl.cnf
67
68 DOC_FILES := \
69         docs/manuals/en/console/console.pdf \
70         docs/manuals/en/main/main.pdf \
71         docs/manuals/en/misc/misc.pdf \
72         docs/manuals/en/problems/problems.pdf \
73         docs/manuals/en/utility/utility.pdf
74
75 ##########################################################################
76
77 # Targets
78
79 .PHONY: all clean installer
80
81 all:          $(HELP) $(INSTALL_EXE)
82
83 installer:    $(HELP) $(INSTALL_EXE)
84
85 clean:
86         @echo "Cleaning `pwd`"
87         $(CMD_ECHO)-rm -f $(INSTALL_EXE)
88         $(CMD_ECHO)-rm -rf release32
89
90 help:
91         rm -rf release32/help
92         mkdir release32/help
93         cp -f $(BINDIR)/help/* release32/help/
94
95
96 #
97 # Rules
98 #
99
100 define Convert_Binary
101 release32/$$(notdir $(1)): $(1)
102         $$(call checkdir,$$@)
103         $(ECHO_CMD)cp -f $$^ $$@ ; \
104         $(STAB2CV) $$@
105 endef
106
107 define Copy_Binary
108 release32/$$(notdir $(1)): $(1)
109         $$(call checkdir,$$@)
110         $(ECHO_CMD)cp -f $$^ $$@
111 endef
112
113 define Copy_Docs
114 release32/$(1): $(DOCDIR)/$(1)
115         $$(call checkdir,$$@)
116         $(ECHO_CMD)cp -f $$^ $$(dir $$@)
117 endef
118
119 $(foreach file,$(addprefix $(DEPKGS)/bin/, $(DEPKGS_BINARIES)),$(eval $(call Convert_Binary,$(file))))
120
121 $(foreach file,$(addprefix $(DEPKGS)/bin/, $(NONGCC_BINARIES)),$(eval $(call Copy_Binary,$(file))))
122
123 $(foreach file,$(addprefix $(DEPKGS)/lib/, $(NONGCC_LIBRARIES)),$(eval $(call Copy_Binary,$(file))))
124
125 $(foreach file,$(addprefix $(BINDIR)/, $(BACULA_BINARIES)),$(eval $(call Convert_Binary,$(file))))
126
127 $(foreach file,$(addprefix $(MINGW_DLLDIR)/, $(MINGW_BINARIES)),$(eval $(call Copy_Binary,$(file))))
128
129 $(foreach file,$(addprefix $(DEPKGS)/ssl/, $(SSL_FILES)),$(eval $(call Copy_Binary,$(file))))
130
131 $(foreach file,$(addprefix ../scripts/, $(SCRIPT_FILES)),$(eval $(call Copy_Binary,$(file))))
132
133 $(foreach file,$(addprefix ../cats/, $(CAT_FILES)),$(eval $(call Copy_Binary,$(file))))
134
135 $(foreach file,$(addprefix ../../dird/, $(DIRD_FILES)),$(eval $(call Copy_Binary,$(file))))
136
137 $(foreach file,$(DOC_FILES),$(eval $(call Copy_Docs,$(file))))
138
139
140
141 $(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))
142         NSISDIR=$(NSIS_DIR) \
143         echo "$(NSIS_DIR)/makensis -V3 $(DEFINES) winbacula.nsi"
144         $(NSIS_DIR)/makensis -V3 $(DEFINES) winbacula.nsi
145
146 include $(BUILDDIR)/Makefile.rules