1 ########################################################################
3 # Copyright (c) 2010-2013, Secure Endpoints Inc.
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions
10 # - Redistributions of source code must retain the above copyright
11 # notice, this list of conditions and the following disclaimer.
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
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.
32 RELDIR=packages\windows\installer
34 !include ..\..\..\windows/NTMakefile.w32
36 !ifdef BUILD_INSTALLERS
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)
54 ######################################################################
55 # Heimdal Merge Modules
57 !if exist(..\..\..\thirdparty\installer\heimdal-assemblies.wxs)
58 ASM_WXS=..\..\..\thirdparty\installer\heimdal-assemblies.wxs
60 ASM_WXS=heimdal-assemblies.wxs
63 ASSEMBLYMODULE=$(INSTDIR)\Heimdal.msm
65 $(ASSEMBLYMODULE): $(OBJ)\heimdal-assemblies.wixobj
69 $(OBJ)\heimdal-assemblies.wixobj: $(ASM_WXS)
70 $(CANDLE) -arch $(PLATFORM) -o $@ $** \
71 -dVersion=$(VERSION) \
73 -dAsmKrbName=$(ASMKRBNAME) \
74 -dPlatform=$(PLATFORM)
76 $(SDKREDISTDIR)\Heimdal.msm: $(ASSEMBLYMODULE)
79 !if exist(..\..\..\thirdparty\installer\heimdal-policy.wxs)
80 POLICY_WXS=..\..\..\thirdparty\installer\heimdal-policy.wxs
82 POLICY_WXS=heimdal-policy.wxs
85 POLICYMODULE=$(INSTDIR)\Heimdal.Policy.msm
87 $(POLICYMODULE): $(OBJ)\heimdal-policy.wixobj
91 $(OBJ)\heimdal-policy.wixobj: $(POLICY_WXS)
92 $(CANDLE) -arch $(PLATFORM) -o $@ $** \
93 -dVersion=$(VERSION) \
95 -dAsmKrbName=$(ASMKRBNAME) \
96 -dPlatform=$(PLATFORM) \
97 -dPolPrefix=$(POLPREFIX)
99 COMMANDMODULE=$(INSTDIR)\Heimdal.Command.msm
101 $(COMMANDMODULE): $(OBJ)\heimdal-command.wixobj
105 # OBJECT COMPILED BELOW
107 $(SDKREDISTDIR)\Heimdal.Command.msm: $(COMMANDMODULE)
110 GSSMODULE=$(INSTDIR)\Heimdal.GSS.msm
112 $(GSSMODULE): $(OBJ)\heimdal-gss.wixobj
116 # OBJECT COMPILED BELOW
118 all:: $(ASSEMBLYMODULE) $(SDKREDISTDIR)\Heimdal.msm
120 all:: $(POLICYMODULE)
122 all:: $(COMMANDMODULE) $(SDKREDISTDIR)\Heimdal.Command.msm
127 -$(RM) $(ASSEMBLYMODULE)
128 -$(RM) $(POLICYMODULE)
129 -$(RM) $(COMMANDMODULE)
131 -$(RM) $(SDKREDISTDIR)\*.*
133 ######################################################################
136 !if [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==16
138 !elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==15
140 !elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==14
143 ! error Cant determine Visual C compiler version
146 $(SDKREDISTDIR)\heimdal-version.mak:
147 @echo HEIMDAL_VCVER=$(VCVER) > $@
148 !if "$(BUILD)"!="rel"
149 @echo HEIMDAL_CRT_DEBUG=yes >> $@
152 all:: $(SDKREDISTDIR)\heimdal-version.mak
154 !if "$(BUILD)"=="rel"
161 MMDIR=$(ProgramFiles)\Common Files\Merge Modules
163 MMDIR=$(SystemDrive)\Program Files (x86)\Common Files\Merge Modules
167 !if exist("$(MMDIR)")
169 RUNTIMEMODULE32="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x86.msm"
170 !if "$(VCVER)"=="VC100"
171 RUNTIMEMODULE64="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x64.msm"
173 RUNTIMEMODULE64="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x86_x64.msm"
177 RUNTIMEMODULE32="$(MSSDK)\Redist\VC\microsoft.vcxx.crt.x86_msm.msm"
178 RUNTIMEMODULE64="$(MSSDK)\Redist\VC\microsoft.vcxx.crt.x64_msm.msm"
183 ######################################################################
187 -dVersion=$(VERSION) \
191 -dPlatform=$(PLATFORM) \
192 -dAsmKrbName=$(ASMKRBNAME) \
193 -dPolPrefix=$(POLPREFIX)
195 !if "$(CPU)"=="AMD64"
197 INSTDIR32=$(INSTDIR:AMD64=i386)
199 CANDLEOPTS=$(CANDLEOPTS) -dTarget64 \
200 -dInstDir32=$(INSTDIR32) \
201 -dInstDir64=$(INSTDIR) \
202 -dRuntimeModule32=$(RUNTIMEMODULE32) \
203 -dRuntimeModule64=$(RUNTIMEMODULE64)
205 !ifdef MULTIPLATFORM_INSTALLER
206 CANDLEOPTS_MULTI= -dTarget32
210 $(INSTDIR32)\Heimdal.msm \
211 $(INSTDIR32)\Heimdal.GSS.msm \
212 $(INSTDIR32)\Heimdal.Policy.msm \
213 $(ASSEMBLYMODULE) $(GSSMODULE) $(POLICYMODULE)
215 ! message Excluding 32-bit components from installer
219 $(ASSEMBLYMODULE) $(GSSMODULE) $(POLICYMODULE)
225 CANDLEOPTS=$(CANDLEOPTS) -dTarget32 \
226 -dInstDir32=$(INSTDIR) \
227 -dRuntimeModule32=$(RUNTIMEMODULE32) \
230 $(ASSEMBLYMODULE) $(GSSMODULE) $(POLICYMODULE)
233 !if exist($(SRC)\thirdparty\MKShim)
234 THIRDPARTYOBJS=$(THIRDPARTYOBJS) $(INSTDIR)\MKShim.wixlib
235 THIRDPARTYOPTS=$(THIRDPARTYOPTS) -dMKShim=1
237 !if "$(CPU)"=="AMD64"
238 THIRDPARTYOBJS=$(THIRDPARTYOBJS) $(INSTDIR32)\MKShim.wixlib
242 INSTALLER=$(INSTDIR)\Heimdal-$(CPU)$(DEBUGOPT)$(TYPEOPT)-$(VERSIOND).msi
243 WIXOBJ=$(OBJ)\heimdal-installer$(TYPEOPT).wixobj
245 $(INSTALLER): $(WIXOBJ) $(THIRDPARTYOBJS) $(INSTDEPS) lang\en-us.wxl
246 $(LIGHT) -out $@ $(WIXOBJ) $(THIRDPARTYOBJS) \
247 -sval -cultures:en-us -loc lang\en-us.wxl \
248 -dWixUILicenseRtf=lang\license-en-us.rtf \
252 $(WIXOBJ): heimdal-installer.wxs
253 $(CANDLE) -arch $(PLATFORM) -o $@ heimdal-installer.wxs \
254 $(CANDLEOPTS) $(CANDLEOPTS_MULTI) $(THIRDPARTYOPTS)
256 !if exist(thirdparty\installer\heimdal-command.wxs)
257 CMD_WXS=thirdparty\installer\heimdal-command.wxs
259 CMD_WXS=heimdal-command.wxs
262 $(OBJ)\heimdal-command.wixobj: $(CMD_WXS)
263 $(CANDLE) -arch $(PLATFORM) -o $@ $(CMD_WXS) \
264 $(CANDLEOPTS) $(THIRDPARTYOPTS)
266 !if exist(thirdparty\installer\heimdal-gss.wxs)
267 GSS_WXS=thirdparty\installer\heimdal-gss.wxs
269 GSS_WXS=heimdal-gss.wxs
272 $(OBJ)\heimdal-gss.wixobj: $(GSS_WXS)
273 $(CANDLE) -arch $(PLATFORM) -o $@ $(GSS_WXS) \
274 $(CANDLEOPTS) $(THIRDPARTYOPTS)
281 !endif # BUILD_INSTALLERS