Home | History | Annotate | Line # | Download | only in installer
      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