]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/win32/win32_installer/Makefile
5d70841c7a732e161f3ed7b83d2ac434597a8112
[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
19 INSTALL_EXE := $(BUILDDIR)/release32/winbacula-$(VERSION).exe
20
21 BACULA_BINARIES := \
22         bacula.dll \
23         exchange-fd.dll \
24         bacula-fd.exe \
25         bconsole.exe \
26         bsleep.exe \
27         bsmtp.exe \
28         bat.exe
29
30 DEPKGS_BINARIES := \
31         libeay32.dll \
32         pthreadGCE.dll \
33         ssleay32.dll \
34         zlib1.dll \
35         openssl.exe \
36         sed.exe \
37         expr64.exe \
38         snooze.exe \
39         mkisofs.exe \
40         growisofs.exe \
41         QtCore4.dll \
42         QtGui4.dll
43
44 NONGCC_BINARIES :=
45
46 NONGCC_LIBRARIES := 
47
48 MINGW_BINARIES := \
49         mingwm10.dll
50
51 SCRIPT_FILES := 
52
53 CAT_FILES := 
54
55 DIRD_FILES := 
56
57 SSL_FILES := \
58         openssl.cnf
59
60 DOC_FILES := \
61         docs/manuals/en/console/console.pdf \
62         docs/manuals/en/main/main.pdf \
63         docs/manuals/en/misc/misc.pdf \
64         docs/manuals/en/problems/problems.pdf \
65         docs/manuals/en/utility/utility.pdf
66
67 HELP_FILES := help/*
68
69 ##########################################################################
70
71 # Targets
72
73 .PHONY: all clean installer
74
75 all:            $(INSTALL_EXE)
76
77 installer:      $(INSTALL_EXE)
78
79 clean:
80         @echo "Cleaning `pwd`"
81         $(CMD_ECHO)-rm -f $(INSTALL_EXE)
82         $(CMD_ECHO)-rm -rf release32
83
84 #
85 # Rules
86 #
87
88 define Convert_Binary
89 release32/$$(notdir $(1)): $(1)
90         $$(call checkdir,$$@)
91         $(ECHO_CMD)cp -f $$^ $$@ ; \
92         $(STAB2CV) $$@
93 endef
94
95 define Copy_Binary
96 release32/$$(notdir $(1)): $(1)
97         $$(call checkdir,$$@)
98         $(ECHO_CMD)cp -f $$^ $$@
99 endef
100
101 define Copy_Docs
102 release32/$(1): $(DOCDIR)/$(1)
103         $$(call checkdir,$$@)
104         $(ECHO_CMD)cp -f $$^ $$(dir $$@)
105 endef
106
107 $(foreach file,$(addprefix $(DEPKGS)/bin/, $(DEPKGS_BINARIES)),$(eval $(call Convert_Binary,$(file))))
108
109 $(foreach file,$(addprefix $(DEPKGS)/bin/, $(NONGCC_BINARIES)),$(eval $(call Copy_Binary,$(file))))
110
111 $(foreach file,$(addprefix $(DEPKGS)/lib/, $(NONGCC_LIBRARIES)),$(eval $(call Copy_Binary,$(file))))
112
113 $(foreach file,$(addprefix $(BINDIR)/, $(BACULA_BINARIES)),$(eval $(call Convert_Binary,$(file))))
114
115 $(foreach file,$(addprefix $(MINGW_DLLDIR)/, $(MINGW_BINARIES)),$(eval $(call Copy_Binary,$(file))))
116
117 $(foreach file,$(addprefix $(DEPKGS)/ssl/, $(SSL_FILES)),$(eval $(call Copy_Binary,$(file))))
118
119 $(foreach file,$(addprefix ../scripts/, $(SCRIPT_FILES)),$(eval $(call Copy_Binary,$(file))))
120
121 $(foreach file,$(addprefix ../cats/, $(CAT_FILES)),$(eval $(call Copy_Binary,$(file))))
122
123 $(foreach file,$(addprefix ../../dird/, $(DIRD_FILES)),$(eval $(call Copy_Binary,$(file))))
124
125 $(foreach file,$(DOC_FILES),$(eval $(call Copy_Docs,$(file))))
126
127
128
129 $(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))
130         rm -rf release32/help
131         mkdir release32/help
132         cp -f $(BINDIR)/$(HELP_FILES) release32/help/
133         NSISDIR=$(NSIS_DIR) \
134         $(NSIS_DIR)/makensis -V3 $(DEFINES) winbacula.nsi
135
136 include $(BUILDDIR)/Makefile.rules