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