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) ]==19 133VCVER=VC2019 134!elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==18 135VCVER=VC2018 136!elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==17 137VCVER=VC2017 138!elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==16 139VCVER=VC100 140!elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==15 141VCVER=VC90 142!elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==14 143VCVER=VC80 144!else 145! error Cant determine Visual C compiler version 146!endif 147 148$(SDKREDISTDIR)\heimdal-version.mak: 149 @echo HEIMDAL_VCVER=$(VCVER) > $@ 150!if "$(BUILD)"!="rel" 151 @echo HEIMDAL_CRT_DEBUG=yes >> $@ 152!endif 153 154all:: $(SDKREDISTDIR)\heimdal-version.mak 155 156!if "$(BUILD)"=="rel" 157CRTNAME=CRT 158!else 159CRTNAME=DebugCRT 160!endif 161 162!if "$(MMDIR)"=="" 163MMDIR=$(ProgramFiles)\Common Files\Merge Modules 164!if !exist($(MMDIR)) 165MMDIR=$(SystemDrive)\Program Files (x86)\Common Files\Merge Modules 166!endif 167!endif 168 169# 170# Don't specify a runtime module when the Universal C Runtime 171# is available. 172# 173!if "$(APPVER)"=="10.0" 174RUNTIMEMODULE32="" 175RUNTIMEMODULE64="" 176!else 177! if exist("$(MMDIR)") 178RUNTIMEMODULE32="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x86.msm" 179! if "$(VCVER)"=="VC90" || "$(VCVER)"=="VC80" 180RUNTIMEMODULE64="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x86_x64.msm" 181! else 182RUNTIMEMODULE64="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x64.msm" 183! endif 184! else 185RUNTIMEMODULE32="$(MSSDK)\Redist\VC\microsoft.vcxx.crt.x86_msm.msm" 186RUNTIMEMODULE64="$(MSSDK)\Redist\VC\microsoft.vcxx.crt.x64_msm.msm" 187! endif 188!endif 189 190###################################################################### 191# Heimdal installer 192 193CANDLEOPTS= \ 194 -dVersion=$(VERSION) \ 195 -dBinDir=$(BINDIR) \ 196 -dDocDir=$(DOCDIR) \ 197 -dSrcDir=$(SRC) \ 198 -dPlatform=$(PLATFORM) \ 199 -dAsmKrbName=$(ASMKRBNAME) \ 200 -dPolPrefix=$(POLPREFIX) 201 202!if "$(CPU)"=="AMD64" 203 204INSTDIR32=$(INSTDIR:AMD64=i386) 205 206CANDLEOPTS=$(CANDLEOPTS) -dTarget64 \ 207 -dInstDir32=$(INSTDIR32) \ 208 -dInstDir64=$(INSTDIR) \ 209 -dRuntimeModule32=$(RUNTIMEMODULE32) \ 210 -dRuntimeModule64=$(RUNTIMEMODULE64) 211 212!ifdef MULTIPLATFORM_INSTALLER 213CANDLEOPTS_MULTI= -dTarget32 214TYPEOPT=-full 215 216INSTDEPS= \ 217 $(INSTDIR32)\Heimdal.msm \ 218 $(INSTDIR32)\Heimdal.GSS.msm \ 219 $(INSTDIR32)\Heimdal.Policy.msm \ 220 $(ASSEMBLYMODULE) $(GSSMODULE) $(POLICYMODULE) 221!else 222! message Excluding 32-bit components from installer 223TYPEOPT= 224 225INSTDEPS= \ 226 $(ASSEMBLYMODULE) $(GSSMODULE) $(POLICYMODULE) 227!endif 228 229 230!else 231 232CANDLEOPTS=$(CANDLEOPTS) -dTarget32 \ 233 -dInstDir32=$(INSTDIR) \ 234 -dRuntimeModule32=$(RUNTIMEMODULE32) \ 235 236INSTDEPS= \ 237 $(ASSEMBLYMODULE) $(GSSMODULE) $(POLICYMODULE) 238!endif 239 240!if exist($(SRC)\thirdparty\MKShim) 241THIRDPARTYOBJS=$(THIRDPARTYOBJS) $(INSTDIR)\MKShim.wixlib 242THIRDPARTYOPTS=$(THIRDPARTYOPTS) -dMKShim=1 243 244!if "$(CPU)"=="AMD64" 245THIRDPARTYOBJS=$(THIRDPARTYOBJS) $(INSTDIR32)\MKShim.wixlib 246!endif 247!endif 248 249INSTALLER=$(INSTDIR)\Heimdal-$(CPU)$(DEBUGOPT)$(TYPEOPT)-$(VERSIOND).msi 250WIXOBJ=$(OBJ)\heimdal-installer$(TYPEOPT).wixobj 251 252$(INSTALLER): $(WIXOBJ) $(THIRDPARTYOBJS) $(INSTDEPS) lang\en-us.wxl 253 $(LIGHT) -out $@ $(WIXOBJ) $(THIRDPARTYOBJS) \ 254 -sval -cultures:en-us -loc lang\en-us.wxl \ 255 -dWixUILicenseRtf=lang\license-en-us.rtf \ 256 -ext WixUIExtension 257 $(_CODESIGN) 258 259$(WIXOBJ): heimdal-installer.wxs 260 $(CANDLE) -arch $(PLATFORM) -o $@ heimdal-installer.wxs \ 261 $(CANDLEOPTS) $(CANDLEOPTS_MULTI) $(THIRDPARTYOPTS) 262 263!if exist(thirdparty\installer\heimdal-command.wxs) 264CMD_WXS=thirdparty\installer\heimdal-command.wxs 265!else 266CMD_WXS=heimdal-command.wxs 267!endif 268 269$(OBJ)\heimdal-command.wixobj: $(CMD_WXS) 270 $(CANDLE) -arch $(PLATFORM) -o $@ $(CMD_WXS) \ 271 $(CANDLEOPTS) $(THIRDPARTYOPTS) 272 273!if exist(thirdparty\installer\heimdal-gss.wxs) 274GSS_WXS=thirdparty\installer\heimdal-gss.wxs 275!else 276GSS_WXS=heimdal-gss.wxs 277!endif 278 279$(OBJ)\heimdal-gss.wixobj: $(GSS_WXS) 280 $(CANDLE) -arch $(PLATFORM) -o $@ $(GSS_WXS) \ 281 $(CANDLEOPTS) $(THIRDPARTYOPTS) 282 283all:: $(INSTALLER) 284 285clean:: 286 -$(RM) $(INSTALLER) 287 288!endif # BUILD_INSTALLERS 289