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 32RELDIR=packages\windows\installer 33 34!include ..\..\..\windows/NTMakefile.w32 35 36!ifdef BUILD_INSTALLERS 37 38VERSIOND=$(VER_PRODUCT_MAJOR)-$(VER_PRODUCT_MINOR)-$(VER_PRODUCT_AUX)-$(VER_PRODUCT_PATCH) 39VERSION=$(VER_PRODUCT_MAJOR).$(VER_PRODUCT_MINOR).$(VER_PRODUCT_AUX).$(VER_PRODUCT_PATCH) 40POLPREFIX=policy.$(VER_PRODUCT_MAJOR).$(VER_PRODUCT_MINOR) 41 42!if "$(CPU)"=="AMD64" 43PLATFORM=x64 44!else 45PLATFORM=x86 46!endif 47 48!if "$(BUILD)"=="rel" 49DEBUGOPT= 50!else 51DEBUGOPT=-$(BUILD) 52!endif 53 54###################################################################### 55# Heimdal Merge Modules 56 57!if exist(..\..\..\thirdparty\installer\heimdal-assemblies.wxs) 58ASM_WXS=..\..\..\thirdparty\installer\heimdal-assemblies.wxs 59!else 60ASM_WXS=heimdal-assemblies.wxs 61!endif 62 63ASSEMBLYMODULE=$(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) 79POLICY_WXS=..\..\..\thirdparty\installer\heimdal-policy.wxs 80!else 81POLICY_WXS=heimdal-policy.wxs 82!endif 83 84POLICYMODULE=$(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 97COMMANDMODULE=$(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 107GSSMODULE=$(INSTDIR)\Heimdal.GSS.msm 108 109$(GSSMODULE): $(OBJ)\heimdal-gss.wixobj 110 $(LIGHT) -out $@ $** 111 112# OBJECT COMPILED BELOW 113 114all:: $(ASSEMBLYMODULE) $(SDKREDISTDIR)\Heimdal.msm 115 116all:: $(POLICYMODULE) 117 118all:: $(COMMANDMODULE) $(SDKREDISTDIR)\Heimdal.Command.msm 119 120all:: $(GSSMODULE) 121 122clean:: 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 133VCVER=VC100 134!elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==15 135VCVER=VC90 136!elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==14 137VCVER=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 148all:: $(SDKREDISTDIR)\heimdal-version.mak 149 150!if "$(BUILD)"=="rel" 151CRTNAME=CRT 152!else 153CRTNAME=DebugCRT 154!endif 155 156!if "$(MMDIR)"=="" 157MMDIR=$(ProgramFiles)\Common Files\Merge Modules 158!if !exist($(MMDIR)) 159MMDIR=$(SystemDrive)\Program Files (x86)\Common Files\Merge Modules 160!endif 161!endif 162 163!if exist("$(MMDIR)") 164 165RUNTIMEMODULE32="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x86.msm" 166!if "$(VCVER)"=="VC100" 167RUNTIMEMODULE64="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x64.msm" 168!else 169RUNTIMEMODULE64="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x86_x64.msm" 170!endif 171 172!else 173RUNTIMEMODULE32="$(MSSDK)\Redist\VC\microsoft.vcxx.crt.x86_msm.msm" 174RUNTIMEMODULE64="$(MSSDK)\Redist\VC\microsoft.vcxx.crt.x64_msm.msm" 175 176!endif 177 178 179###################################################################### 180# Heimdal installer 181 182CANDLEOPTS= \ 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 193INSTDIR32=$(INSTDIR:AMD64=i386) 194 195CANDLEOPTS=$(CANDLEOPTS) -dTarget64 \ 196 -dInstDir32=$(INSTDIR32) \ 197 -dInstDir64=$(INSTDIR) \ 198 -dRuntimeModule32=$(RUNTIMEMODULE32) \ 199 -dRuntimeModule64=$(RUNTIMEMODULE64) 200 201!ifdef MULTIPLATFORM_INSTALLER 202CANDLEOPTS_MULTI= -dTarget32 203TYPEOPT=-full 204 205INSTDEPS= \ 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 212TYPEOPT= 213 214INSTDEPS= \ 215 $(ASSEMBLYMODULE) $(GSSMODULE) $(POLICYMODULE) 216!endif 217 218 219!else 220 221CANDLEOPTS=$(CANDLEOPTS) -dTarget32 \ 222 -dInstDir32=$(INSTDIR) \ 223 -dRuntimeModule32=$(RUNTIMEMODULE32) \ 224 225INSTDEPS= \ 226 $(ASSEMBLYMODULE) $(GSSMODULE) $(POLICYMODULE) 227!endif 228 229!if exist($(SRC)\thirdparty\MKShim) 230THIRDPARTYOBJS=$(THIRDPARTYOBJS) $(INSTDIR)\MKShim.wixlib 231THIRDPARTYOPTS=$(THIRDPARTYOPTS) -dMKShim=1 232 233!if "$(CPU)"=="AMD64" 234THIRDPARTYOBJS=$(THIRDPARTYOBJS) $(INSTDIR32)\MKShim.wixlib 235!endif 236!endif 237 238INSTALLER=$(INSTDIR)\Heimdal-$(CPU)$(DEBUGOPT)$(TYPEOPT)-$(VERSIOND).msi 239WIXOBJ=$(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) 253CMD_WXS=thirdparty\installer\heimdal-command.wxs 254!else 255CMD_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) 263GSS_WXS=thirdparty\installer\heimdal-gss.wxs 264!else 265GSS_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 272all:: $(INSTALLER) 273 274clean:: 275 -$(RM) $(INSTALLER) 276 277!endif # BUILD_INSTALLERS 278