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) ]==19 133 VCVER=VC2019 134 !elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==18 135 VCVER=VC2018 136 !elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==17 137 VCVER=VC2017 138 !elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==16 139 VCVER=VC100 140 !elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==15 141 VCVER=VC90 142 !elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==14 143 VCVER=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 154 all:: $(SDKREDISTDIR)\heimdal-version.mak 155 156 !if "$(BUILD)"=="rel" 157 CRTNAME=CRT 158 !else 159 CRTNAME=DebugCRT 160 !endif 161 162 !if "$(MMDIR)"=="" 163 MMDIR=$(ProgramFiles)\Common Files\Merge Modules 164 !if !exist($(MMDIR)) 165 MMDIR=$(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" 174 RUNTIMEMODULE32="" 175 RUNTIMEMODULE64="" 176 !else 177 ! if exist("$(MMDIR)") 178 RUNTIMEMODULE32="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x86.msm" 179 ! if "$(VCVER)"=="VC90" || "$(VCVER)"=="VC80" 180 RUNTIMEMODULE64="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x86_x64.msm" 181 ! else 182 RUNTIMEMODULE64="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x64.msm" 183 ! endif 184 ! else 185 RUNTIMEMODULE32="$(MSSDK)\Redist\VC\microsoft.vcxx.crt.x86_msm.msm" 186 RUNTIMEMODULE64="$(MSSDK)\Redist\VC\microsoft.vcxx.crt.x64_msm.msm" 187 ! endif 188 !endif 189 190 ###################################################################### 191 # Heimdal installer 192 193 CANDLEOPTS= \ 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 204 INSTDIR32=$(INSTDIR:AMD64=i386) 205 206 CANDLEOPTS=$(CANDLEOPTS) -dTarget64 \ 207 -dInstDir32=$(INSTDIR32) \ 208 -dInstDir64=$(INSTDIR) \ 209 -dRuntimeModule32=$(RUNTIMEMODULE32) \ 210 -dRuntimeModule64=$(RUNTIMEMODULE64) 211 212 !ifdef MULTIPLATFORM_INSTALLER 213 CANDLEOPTS_MULTI= -dTarget32 214 TYPEOPT=-full 215 216 INSTDEPS= \ 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 223 TYPEOPT= 224 225 INSTDEPS= \ 226 $(ASSEMBLYMODULE) $(GSSMODULE) $(POLICYMODULE) 227 !endif 228 229 230 !else 231 232 CANDLEOPTS=$(CANDLEOPTS) -dTarget32 \ 233 -dInstDir32=$(INSTDIR) \ 234 -dRuntimeModule32=$(RUNTIMEMODULE32) \ 235 236 INSTDEPS= \ 237 $(ASSEMBLYMODULE) $(GSSMODULE) $(POLICYMODULE) 238 !endif 239 240 !if exist($(SRC)\thirdparty\MKShim) 241 THIRDPARTYOBJS=$(THIRDPARTYOBJS) $(INSTDIR)\MKShim.wixlib 242 THIRDPARTYOPTS=$(THIRDPARTYOPTS) -dMKShim=1 243 244 !if "$(CPU)"=="AMD64" 245 THIRDPARTYOBJS=$(THIRDPARTYOBJS) $(INSTDIR32)\MKShim.wixlib 246 !endif 247 !endif 248 249 INSTALLER=$(INSTDIR)\Heimdal-$(CPU)$(DEBUGOPT)$(TYPEOPT)-$(VERSIOND).msi 250 WIXOBJ=$(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) 264 CMD_WXS=thirdparty\installer\heimdal-command.wxs 265 !else 266 CMD_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) 274 GSS_WXS=thirdparty\installer\heimdal-gss.wxs 275 !else 276 GSS_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 283 all:: $(INSTALLER) 284 285 clean:: 286 -$(RM) $(INSTALLER) 287 288 !endif # BUILD_INSTALLERS 289