s4:torture: Adapt KDC canon test to Heimdal upstream changes
[samba.git] / source4 / heimdal / packages / windows / installer / NTMakefile
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         $(_CODESIGN)
68
69 $(OBJ)\heimdal-assemblies.wixobj: $(ASM_WXS)
70         $(CANDLE) -arch $(PLATFORM) -o $@ $**   \
71                 -dVersion=$(VERSION)            \
72                 -dBinDir=$(BINDIR)              \
73                 -dAsmKrbName=$(ASMKRBNAME)              \
74                 -dPlatform=$(PLATFORM)
75
76 $(SDKREDISTDIR)\Heimdal.msm: $(ASSEMBLYMODULE)
77         $(CP) $** $@
78
79 !if exist(..\..\..\thirdparty\installer\heimdal-policy.wxs)
80 POLICY_WXS=..\..\..\thirdparty\installer\heimdal-policy.wxs
81 !else
82 POLICY_WXS=heimdal-policy.wxs
83 !endif
84
85 POLICYMODULE=$(INSTDIR)\Heimdal.Policy.msm
86
87 $(POLICYMODULE): $(OBJ)\heimdal-policy.wixobj
88         $(LIGHT) -out $@ $**
89         $(_CODESIGN)
90
91 $(OBJ)\heimdal-policy.wixobj: $(POLICY_WXS)
92         $(CANDLE) -arch $(PLATFORM) -o $@ $**   \
93                 -dVersion=$(VERSION)            \
94                 -dBinDir=$(BINDIR)              \
95                 -dAsmKrbName=$(ASMKRBNAME)              \
96                 -dPlatform=$(PLATFORM)          \
97                 -dPolPrefix=$(POLPREFIX)
98
99 COMMANDMODULE=$(INSTDIR)\Heimdal.Command.msm
100
101 $(COMMANDMODULE): $(OBJ)\heimdal-command.wixobj
102         $(LIGHT) -out $@ $**
103         $(_CODESIGN)
104
105 # OBJECT COMPILED BELOW
106
107 $(SDKREDISTDIR)\Heimdal.Command.msm: $(COMMANDMODULE)
108         $(CP) $** $@
109
110 GSSMODULE=$(INSTDIR)\Heimdal.GSS.msm
111
112 $(GSSMODULE): $(OBJ)\heimdal-gss.wixobj
113         $(LIGHT) -out $@ $**
114         $(_CODESIGN)
115
116 # OBJECT COMPILED BELOW
117
118 all:: $(ASSEMBLYMODULE) $(SDKREDISTDIR)\Heimdal.msm
119
120 all:: $(POLICYMODULE)
121
122 all:: $(COMMANDMODULE) $(SDKREDISTDIR)\Heimdal.Command.msm
123
124 all:: $(GSSMODULE)
125
126 clean::
127         -$(RM) $(ASSEMBLYMODULE)
128         -$(RM) $(POLICYMODULE)
129         -$(RM) $(COMMANDMODULE)
130         -$(RM) $(GSSMODULE)
131         -$(RM) $(SDKREDISTDIR)\*.*
132
133 ######################################################################
134 # Runtime modules
135
136 !if [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==16
137 VCVER=VC100
138 !elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==15
139 VCVER=VC90
140 !elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==14
141 VCVER=VC80
142 !else
143 !  error Cant determine Visual C compiler version
144 !endif
145
146 $(SDKREDISTDIR)\heimdal-version.mak:
147    @echo HEIMDAL_VCVER=$(VCVER)  > $@
148 !if "$(BUILD)"!="rel"
149    @echo HEIMDAL_CRT_DEBUG=yes   >> $@
150 !endif
151
152 all:: $(SDKREDISTDIR)\heimdal-version.mak
153
154 !if "$(BUILD)"=="rel"
155 CRTNAME=CRT
156 !else
157 CRTNAME=DebugCRT
158 !endif
159
160 !if "$(MMDIR)"==""
161 MMDIR=$(ProgramFiles)\Common Files\Merge Modules
162 !if !exist($(MMDIR))
163 MMDIR=$(SystemDrive)\Program Files (x86)\Common Files\Merge Modules
164 !endif
165 !endif
166
167 !if exist("$(MMDIR)")
168
169 RUNTIMEMODULE32="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x86.msm"
170 !if "$(VCVER)"=="VC100"
171 RUNTIMEMODULE64="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x64.msm"
172 !else
173 RUNTIMEMODULE64="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x86_x64.msm"
174 !endif
175
176 !else
177 RUNTIMEMODULE32="$(MSSDK)\Redist\VC\microsoft.vcxx.crt.x86_msm.msm"
178 RUNTIMEMODULE64="$(MSSDK)\Redist\VC\microsoft.vcxx.crt.x64_msm.msm"
179
180 !endif
181
182
183 ######################################################################
184 # Heimdal installer
185
186 CANDLEOPTS=     \
187         -dVersion=$(VERSION)                    \
188         -dBinDir=$(BINDIR)                      \
189         -dDocDir=$(DOCDIR)                      \
190         -dSrcDir=$(SRC)                         \
191         -dPlatform=$(PLATFORM)                  \
192         -dAsmKrbName=$(ASMKRBNAME)              \
193         -dPolPrefix=$(POLPREFIX)
194
195 !if "$(CPU)"=="AMD64"
196
197 INSTDIR32=$(INSTDIR:AMD64=i386)
198
199 CANDLEOPTS=$(CANDLEOPTS) -dTarget64     \
200         -dInstDir32=$(INSTDIR32)        \
201         -dInstDir64=$(INSTDIR)                  \
202         -dRuntimeModule32=$(RUNTIMEMODULE32)    \
203         -dRuntimeModule64=$(RUNTIMEMODULE64)
204
205 !ifdef MULTIPLATFORM_INSTALLER
206 CANDLEOPTS_MULTI= -dTarget32
207 TYPEOPT=-full
208
209 INSTDEPS= \
210         $(INSTDIR32)\Heimdal.msm \
211         $(INSTDIR32)\Heimdal.GSS.msm    \
212         $(INSTDIR32)\Heimdal.Policy.msm \
213         $(ASSEMBLYMODULE) $(GSSMODULE) $(POLICYMODULE)
214 !else
215 !  message Excluding 32-bit components from installer
216 TYPEOPT=
217
218 INSTDEPS= \
219         $(ASSEMBLYMODULE) $(GSSMODULE) $(POLICYMODULE)
220 !endif
221
222
223 !else
224
225 CANDLEOPTS=$(CANDLEOPTS) -dTarget32             \
226         -dInstDir32=$(INSTDIR)                  \
227         -dRuntimeModule32=$(RUNTIMEMODULE32)    \
228
229 INSTDEPS= \
230         $(ASSEMBLYMODULE) $(GSSMODULE) $(POLICYMODULE)
231 !endif
232
233 !if exist($(SRC)\thirdparty\MKShim)
234 THIRDPARTYOBJS=$(THIRDPARTYOBJS) $(INSTDIR)\MKShim.wixlib
235 THIRDPARTYOPTS=$(THIRDPARTYOPTS) -dMKShim=1
236
237 !if "$(CPU)"=="AMD64"
238 THIRDPARTYOBJS=$(THIRDPARTYOBJS) $(INSTDIR32)\MKShim.wixlib
239 !endif
240 !endif
241
242 INSTALLER=$(INSTDIR)\Heimdal-$(CPU)$(DEBUGOPT)$(TYPEOPT)-$(VERSIOND).msi
243 WIXOBJ=$(OBJ)\heimdal-installer$(TYPEOPT).wixobj
244
245 $(INSTALLER): $(WIXOBJ) $(THIRDPARTYOBJS) $(INSTDEPS) lang\en-us.wxl
246         $(LIGHT) -out $@ $(WIXOBJ) $(THIRDPARTYOBJS)    \
247                 -sval -cultures:en-us -loc lang\en-us.wxl       \
248                 -dWixUILicenseRtf=lang\license-en-us.rtf        \
249                 -ext WixUIExtension
250         $(_CODESIGN)
251
252 $(WIXOBJ): heimdal-installer.wxs
253         $(CANDLE) -arch $(PLATFORM) -o $@ heimdal-installer.wxs \
254                 $(CANDLEOPTS) $(CANDLEOPTS_MULTI) $(THIRDPARTYOPTS)
255
256 !if exist(thirdparty\installer\heimdal-command.wxs)
257 CMD_WXS=thirdparty\installer\heimdal-command.wxs
258 !else
259 CMD_WXS=heimdal-command.wxs
260 !endif
261
262 $(OBJ)\heimdal-command.wixobj: $(CMD_WXS)
263         $(CANDLE) -arch $(PLATFORM) -o $@ $(CMD_WXS) \
264                 $(CANDLEOPTS) $(THIRDPARTYOPTS)
265
266 !if exist(thirdparty\installer\heimdal-gss.wxs)
267 GSS_WXS=thirdparty\installer\heimdal-gss.wxs
268 !else
269 GSS_WXS=heimdal-gss.wxs
270 !endif
271
272 $(OBJ)\heimdal-gss.wixobj: $(GSS_WXS)
273         $(CANDLE) -arch $(PLATFORM) -o $@ $(GSS_WXS) \
274                 $(CANDLEOPTS) $(THIRDPARTYOPTS)
275
276 all:: $(INSTALLER)
277
278 clean::
279         -$(RM) $(INSTALLER)
280
281 !endif                          # BUILD_INSTALLERS