Home | History | Annotate | Line # | Download | only in installer
NTMakefile revision 1.1
      1 ########################################################################
      2 #
      3 # Copyright (c) 2010, 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 ASSEMBLYMODULE=$(INSTDIR)\Heimdal.msm
     58 
     59 $(ASSEMBLYMODULE): $(OBJ)\heimdal-assemblies.wixobj
     60 	$(LIGHT) -out $@ $**
     61 
     62 $(OBJ)\heimdal-assemblies.wixobj: heimdal-assemblies.wxs
     63 	$(CANDLE) -arch $(PLATFORM) -o $@ $**	\
     64 		-dVersion=$(VERSION)		\
     65 		-dBinDir=$(BINDIR)		\
     66 		-dPlatform=$(PLATFORM)
     67 
     68 $(SDKREDISTDIR)\Heimdal.msm: $(ASSEMBLYMODULE)
     69 	$(CP) $** $@
     70 
     71 POLICYMODULE=$(INSTDIR)\Heimdal.Policy.msm
     72 
     73 $(POLICYMODULE): $(OBJ)\heimdal-policy.wixobj
     74 	$(LIGHT) -out $@ $**
     75 
     76 $(OBJ)\heimdal-policy.wixobj: heimdal-policy.wxs
     77 	$(CANDLE) -arch $(PLATFORM) -o $@ $**	\
     78 		-dVersion=$(VERSION)		\
     79 		-dBinDir=$(BINDIR)		\
     80 		-dPlatform=$(PLATFORM)		\
     81 		-dPolPrefix=$(POLPREFIX)
     82 
     83 $(SDKREDISTDIR)\Heimdal.Policy.msm: $(POLICYMODULE)
     84 	$(CP) $** $@
     85 
     86 all:: $(ASSEMBLYMODULE) $(SDKREDISTDIR)\Heimdal.msm
     87 
     88 all:: $(POLICYMODULE) $(SDKREDISTDIR)\Heimdal.Policy.msm
     89 
     90 clean::
     91 	-$(RM) $(ASSEMBLYMODULE)
     92 	-$(RM) $(POLICYMODULE)
     93 	-$(RM) $(SDKREDISTDIR)\Heimdal.msm
     94 	-$(RM) $(SDKREDISTDIR)\Heimdal.Policy.msm
     95 
     96 ######################################################################
     97 # Runtime modules
     98 
     99 !if [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==15
    100 VCVER=VC90
    101 !elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==14
    102 VCVER=VC80
    103 !else
    104 !  error Cant determine Visual C compiler version
    105 !endif
    106 
    107 !if "$(BUILD)"=="rel"
    108 CRTNAME=CRT
    109 !else
    110 CRTNAME=DebugCRT
    111 !endif
    112 
    113 MMDIR=$(ProgramFiles)\Common Files\Merge Modules
    114 !if !exist($(MMDIR))
    115 MMDIR=$(SystemDrive)\Program Files (x86)\Common Files\Merge Modules
    116 !endif
    117 
    118 !if exist("$(MMDIR)")
    119 
    120 RUNTIMEMODULE32="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x86.msm"
    121 RUNTIMEMODULE64="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x86_x64.msm"
    122 
    123 !else
    124 
    125 RUNTIMEMODULE32="$(MSSDK)\Redist\VC\microsoft.vcxx.crt.x86_msm.msm"
    126 RUNTIMEMODULE64="$(MSSDK)\Redist\VC\microsoft.vcxx.crt.x64_msm.msm"
    127 
    128 !endif
    129 
    130 
    131 ######################################################################
    132 # Heimdal installer
    133 
    134 CANDLEOPTS=	\
    135 	-dVersion=$(VERSION)			\
    136 	-dBinDir=$(BINDIR)			\
    137 	-dDocDir=$(DOCDIR)			\
    138 	-dSrcDir=$(SRC)				\
    139 	-dPlatform=$(PLATFORM)			\
    140 	-dPolPrefix=$(POLPREFIX)		\
    141 
    142 !if "$(CPU)"=="AMD64"
    143 
    144 INSTDIR32=$(INSTDIR:AMD64=i386)
    145 
    146 CANDLEOPTS=$(CANDLEOPTS) -dTarget64	\
    147 	-dInstDir32=$(INSTDIR32)	\
    148 	-dInstDir64=$(INSTDIR)			\
    149 	-dRuntimeModule32=$(RUNTIMEMODULE32)	\
    150 	-dRuntimeModule64=$(RUNTIMEMODULE64)	\
    151 
    152 !ifdef MULTIPLATFORM_INSTALLER
    153 CANDLEOPTS=$(CANDLEOPTS) -dTarget32
    154 !else
    155 !  message Excluding 32-bit components from installer
    156 !endif
    157 
    158 INSTDEPS=$(INSTDIR32)\Heimdal.msm \
    159 	$(INSTDIR32)\Heimdal.Policy.msm	\
    160 	$(ASSEMBLYMODULE) $(POLICYMODULE)
    161 
    162 !else
    163 
    164 CANDLEOPTS=$(CANDLEOPTS) -dTarget32		\
    165 	-dInstDir32=$(INSTDIR)			\
    166 	-dRuntimeModule32=$(RUNTIMEMODULE32)	\
    167 
    168 !endif
    169 
    170 !if exist($(SRC)\thirdparty)
    171 THIRDPARTYOBJS=$(INSTDIR)\apicache.wixobj $(INSTDIR)\lsacache.wixobj
    172 THIRDPARTYOPTS=-dApiCache=1 -dLsaCache=1
    173 
    174 !if "$(CPU)"=="AMD64"
    175 THIRDPARTYOBJS=$(THIRDPARTYOBJS) $(INSTDIR32)\apicache.wixobj $(INSTDIR32)\lsacache.wixobj
    176 !endif
    177 !endif
    178 
    179 !if exist($(SRC)\thirdparty\MKShim)
    180 THIRDPARTYOBJS=$(THIRDPARTYOBJS) $(INSTDIR)\MKShim.wixlib
    181 THIRDPARTYOPTS=$(THIRDPARTYOPTS) -dMKShim=1
    182 
    183 !if "$(CPU)"=="AMD64"
    184 THIRDPARTYOBJS=$(THIRDPARTYOBJS) $(INSTDIR32)\MKShim.wixlib
    185 !endif
    186 !endif
    187 
    188 INSTALLER=$(INSTDIR)\Heimdal-$(CPU)$(DEBUGOPT)-$(VERSIOND).msi
    189 
    190 $(INSTALLER): $(OBJ)\heimdal-installer.wixobj $(THIRDPARTYOBJS) $(INSTDEPS) lang\en-us.wxl
    191 	$(LIGHT) -out $@ $(OBJ)\heimdal-installer.wixobj $(THIRDPARTYOBJS)	\
    192 		-sval -cultures:en-us -loc lang\en-us.wxl	\
    193 		-dWixUILicenseRtf=lang\license-en-us.rtf	\
    194 		-ext WixUIExtension
    195 	$(_CODESIGN)
    196 
    197 $(OBJ)\heimdal-installer.wixobj: heimdal-installer.wxs
    198 	$(CANDLE) -arch $(PLATFORM) -o $@ heimdal-installer.wxs \
    199 		$(CANDLEOPTS) $(THIRDPARTYOPTS)
    200 
    201 all:: $(INSTALLER)
    202 
    203 clean::
    204 	-$(RM) $(INSTALLER)
    205 
    206 !endif				# BUILD_INSTALLERS
    207