NTMakefile revision 1.1.1.1.6.1 1 ########################################################################
2 #
3 # Copyright (c) 2010-2013, Secure Endpoints Inc.
4 # All rights reserved.
5 #
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions
8 # are met:
9 #
10 # - Redistributions of source code must retain the above copyright
11 # notice, this list of conditions and the following disclaimer.
12 #
13 # - Redistributions in binary form must reproduce the above copyright
14 # notice, this list of conditions and the following disclaimer in
15 # the documentation and/or other materials provided with the
16 # distribution.
17 #
18 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
22 # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
23 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
28 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 # POSSIBILITY OF SUCH DAMAGE.
30 #
31
32 RELDIR=packages\windows\installer
33
34 !include ..\..\..\windows/NTMakefile.w32
35
36 !ifdef BUILD_INSTALLERS
37
38 VERSIOND=$(VER_PRODUCT_MAJOR)-$(VER_PRODUCT_MINOR)-$(VER_PRODUCT_AUX)-$(VER_PRODUCT_PATCH)
39 VERSION=$(VER_PRODUCT_MAJOR).$(VER_PRODUCT_MINOR).$(VER_PRODUCT_AUX).$(VER_PRODUCT_PATCH)
40 POLPREFIX=policy.$(VER_PRODUCT_MAJOR).$(VER_PRODUCT_MINOR)
41
42 !if "$(CPU)"=="AMD64"
43 PLATFORM=x64
44 !else
45 PLATFORM=x86
46 !endif
47
48 !if "$(BUILD)"=="rel"
49 DEBUGOPT=
50 !else
51 DEBUGOPT=-$(BUILD)
52 !endif
53
54 ######################################################################
55 # Heimdal Merge Modules
56
57 !if exist(..\..\..\thirdparty\installer\heimdal-assemblies.wxs)
58 ASM_WXS=..\..\..\thirdparty\installer\heimdal-assemblies.wxs
59 !else
60 ASM_WXS=heimdal-assemblies.wxs
61 !endif
62
63 ASSEMBLYMODULE=$(INSTDIR)\Heimdal.msm
64
65 $(ASSEMBLYMODULE): $(OBJ)\heimdal-assemblies.wixobj
66 $(LIGHT) -out $@ $**
67
68 $(OBJ)\heimdal-assemblies.wixobj: $(ASM_WXS)
69 $(CANDLE) -arch $(PLATFORM) -o $@ $** \
70 -dVersion=$(VERSION) \
71 -dBinDir=$(BINDIR) \
72 -dAsmKrbName=$(ASMKRBNAME) \
73 -dPlatform=$(PLATFORM)
74
75 $(SDKREDISTDIR)\Heimdal.msm: $(ASSEMBLYMODULE)
76 $(CP) $** $@
77
78 !if exist(..\..\..\thirdparty\installer\heimdal-policy.wxs)
79 POLICY_WXS=..\..\..\thirdparty\installer\heimdal-policy.wxs
80 !else
81 POLICY_WXS=heimdal-policy.wxs
82 !endif
83
84 POLICYMODULE=$(INSTDIR)\Heimdal.Policy.msm
85
86 $(POLICYMODULE): $(OBJ)\heimdal-policy.wixobj
87 $(LIGHT) -out $@ $**
88
89 $(OBJ)\heimdal-policy.wixobj: $(POLICY_WXS)
90 $(CANDLE) -arch $(PLATFORM) -o $@ $** \
91 -dVersion=$(VERSION) \
92 -dBinDir=$(BINDIR) \
93 -dAsmKrbName=$(ASMKRBNAME) \
94 -dPlatform=$(PLATFORM) \
95 -dPolPrefix=$(POLPREFIX)
96
97 COMMANDMODULE=$(INSTDIR)\Heimdal.Command.msm
98
99 $(COMMANDMODULE): $(OBJ)\heimdal-command.wixobj
100 $(LIGHT) -out $@ $**
101
102 # OBJECT COMPILED BELOW
103
104 $(SDKREDISTDIR)\Heimdal.Command.msm: $(COMMANDMODULE)
105 $(CP) $** $@
106
107 GSSMODULE=$(INSTDIR)\Heimdal.GSS.msm
108
109 $(GSSMODULE): $(OBJ)\heimdal-gss.wixobj
110 $(LIGHT) -out $@ $**
111
112 # OBJECT COMPILED BELOW
113
114 all:: $(ASSEMBLYMODULE) $(SDKREDISTDIR)\Heimdal.msm
115
116 all:: $(POLICYMODULE)
117
118 all:: $(COMMANDMODULE) $(SDKREDISTDIR)\Heimdal.Command.msm
119
120 all:: $(GSSMODULE)
121
122 clean::
123 -$(RM) $(ASSEMBLYMODULE)
124 -$(RM) $(POLICYMODULE)
125 -$(RM) $(COMMANDMODULE)
126 -$(RM) $(GSSMODULE)
127 -$(RM) $(SDKREDISTDIR)\*.*
128
129 ######################################################################
130 # Runtime modules
131
132 !if [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==16
133 VCVER=VC100
134 !elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==15
135 VCVER=VC90
136 !elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==14
137 VCVER=VC80
138 !else
139 ! error Cant determine Visual C compiler version
140 !endif
141
142 $(SDKREDISTDIR)\heimdal-version.mak:
143 @echo HEIMDAL_VCVER=$(VCVER) > $@
144 !if "$(BUILD)"!="rel"
145 @echo HEIMDAL_CRT_DEBUG=yes >> $@
146 !endif
147
148 all:: $(SDKREDISTDIR)\heimdal-version.mak
149
150 !if "$(BUILD)"=="rel"
151 CRTNAME=CRT
152 !else
153 CRTNAME=DebugCRT
154 !endif
155
156 !if "$(MMDIR)"==""
157 MMDIR=$(ProgramFiles)\Common Files\Merge Modules
158 !if !exist($(MMDIR))
159 MMDIR=$(SystemDrive)\Program Files (x86)\Common Files\Merge Modules
160 !endif
161 !endif
162
163 !if exist("$(MMDIR)")
164
165 RUNTIMEMODULE32="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x86.msm"
166 !if "$(VCVER)"=="VC100"
167 RUNTIMEMODULE64="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x64.msm"
168 !else
169 RUNTIMEMODULE64="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x86_x64.msm"
170 !endif
171
172 !else
173 RUNTIMEMODULE32="$(MSSDK)\Redist\VC\microsoft.vcxx.crt.x86_msm.msm"
174 RUNTIMEMODULE64="$(MSSDK)\Redist\VC\microsoft.vcxx.crt.x64_msm.msm"
175
176 !endif
177
178
179 ######################################################################
180 # Heimdal installer
181
182 CANDLEOPTS= \
183 -dVersion=$(VERSION) \
184 -dBinDir=$(BINDIR) \
185 -dDocDir=$(DOCDIR) \
186 -dSrcDir=$(SRC) \
187 -dPlatform=$(PLATFORM) \
188 -dAsmKrbName=$(ASMKRBNAME) \
189 -dPolPrefix=$(POLPREFIX)
190
191 !if "$(CPU)"=="AMD64"
192
193 INSTDIR32=$(INSTDIR:AMD64=i386)
194
195 CANDLEOPTS=$(CANDLEOPTS) -dTarget64 \
196 -dInstDir32=$(INSTDIR32) \
197 -dInstDir64=$(INSTDIR) \
198 -dRuntimeModule32=$(RUNTIMEMODULE32) \
199 -dRuntimeModule64=$(RUNTIMEMODULE64)
200
201 !ifdef MULTIPLATFORM_INSTALLER
202 CANDLEOPTS_MULTI= -dTarget32
203 TYPEOPT=-full
204
205 INSTDEPS= \
206 $(INSTDIR32)\Heimdal.msm \
207 $(INSTDIR32)\Heimdal.GSS.msm \
208 $(INSTDIR32)\Heimdal.Policy.msm \
209 $(ASSEMBLYMODULE) $(GSSMODULE) $(POLICYMODULE)
210 !else
211 ! message Excluding 32-bit components from installer
212 TYPEOPT=
213
214 INSTDEPS= \
215 $(ASSEMBLYMODULE) $(GSSMODULE) $(POLICYMODULE)
216 !endif
217
218
219 !else
220
221 CANDLEOPTS=$(CANDLEOPTS) -dTarget32 \
222 -dInstDir32=$(INSTDIR) \
223 -dRuntimeModule32=$(RUNTIMEMODULE32) \
224
225 INSTDEPS= \
226 $(ASSEMBLYMODULE) $(GSSMODULE) $(POLICYMODULE)
227 !endif
228
229 !if exist($(SRC)\thirdparty\MKShim)
230 THIRDPARTYOBJS=$(THIRDPARTYOBJS) $(INSTDIR)\MKShim.wixlib
231 THIRDPARTYOPTS=$(THIRDPARTYOPTS) -dMKShim=1
232
233 !if "$(CPU)"=="AMD64"
234 THIRDPARTYOBJS=$(THIRDPARTYOBJS) $(INSTDIR32)\MKShim.wixlib
235 !endif
236 !endif
237
238 INSTALLER=$(INSTDIR)\Heimdal-$(CPU)$(DEBUGOPT)$(TYPEOPT)-$(VERSIOND).msi
239 WIXOBJ=$(OBJ)\heimdal-installer$(TYPEOPT).wixobj
240
241 $(INSTALLER): $(WIXOBJ) $(THIRDPARTYOBJS) $(INSTDEPS) lang\en-us.wxl
242 $(LIGHT) -out $@ $(WIXOBJ) $(THIRDPARTYOBJS) \
243 -sval -cultures:en-us -loc lang\en-us.wxl \
244 -dWixUILicenseRtf=lang\license-en-us.rtf \
245 -ext WixUIExtension
246 $(_CODESIGN)
247
248 $(WIXOBJ): heimdal-installer.wxs
249 $(CANDLE) -arch $(PLATFORM) -o $@ heimdal-installer.wxs \
250 $(CANDLEOPTS) $(CANDLEOPTS_MULTI) $(THIRDPARTYOPTS)
251
252 !if exist(thirdparty\installer\heimdal-command.wxs)
253 CMD_WXS=thirdparty\installer\heimdal-command.wxs
254 !else
255 CMD_WXS=heimdal-command.wxs
256 !endif
257
258 $(OBJ)\heimdal-command.wixobj: $(CMD_WXS)
259 $(CANDLE) -arch $(PLATFORM) -o $@ $(CMD_WXS) \
260 $(CANDLEOPTS) $(THIRDPARTYOPTS)
261
262 !if exist(thirdparty\installer\heimdal-gss.wxs)
263 GSS_WXS=thirdparty\installer\heimdal-gss.wxs
264 !else
265 GSS_WXS=heimdal-gss.wxs
266 !endif
267
268 $(OBJ)\heimdal-gss.wixobj: $(GSS_WXS)
269 $(CANDLE) -arch $(PLATFORM) -o $@ $(GSS_WXS) \
270 $(CANDLEOPTS) $(THIRDPARTYOPTS)
271
272 all:: $(INSTALLER)
273
274 clean::
275 -$(RM) $(INSTALLER)
276
277 !endif # BUILD_INSTALLERS
278