xref: /netbsd-src/crypto/external/bsd/heimdal/dist/packages/windows/installer/NTMakefile (revision bdc22b2e01993381dcefeff2bc9b56ca75a4235c)
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
32RELDIR=packages\windows\installer
33
34!include ..\..\..\windows/NTMakefile.w32
35
36!ifdef BUILD_INSTALLERS
37
38VERSIOND=$(VER_PRODUCT_MAJOR)-$(VER_PRODUCT_MINOR)-$(VER_PRODUCT_AUX)-$(VER_PRODUCT_PATCH)
39VERSION=$(VER_PRODUCT_MAJOR).$(VER_PRODUCT_MINOR).$(VER_PRODUCT_AUX).$(VER_PRODUCT_PATCH)
40POLPREFIX=policy.$(VER_PRODUCT_MAJOR).$(VER_PRODUCT_MINOR)
41
42!if "$(CPU)"=="AMD64"
43PLATFORM=x64
44!else
45PLATFORM=x86
46!endif
47
48!if "$(BUILD)"=="rel"
49DEBUGOPT=
50!else
51DEBUGOPT=-$(BUILD)
52!endif
53
54######################################################################
55# Heimdal Merge Modules
56
57!if exist(..\..\..\thirdparty\installer\heimdal-assemblies.wxs)
58ASM_WXS=..\..\..\thirdparty\installer\heimdal-assemblies.wxs
59!else
60ASM_WXS=heimdal-assemblies.wxs
61!endif
62
63ASSEMBLYMODULE=$(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)
79POLICY_WXS=..\..\..\thirdparty\installer\heimdal-policy.wxs
80!else
81POLICY_WXS=heimdal-policy.wxs
82!endif
83
84POLICYMODULE=$(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
97COMMANDMODULE=$(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
107GSSMODULE=$(INSTDIR)\Heimdal.GSS.msm
108
109$(GSSMODULE): $(OBJ)\heimdal-gss.wixobj
110	$(LIGHT) -out $@ $**
111
112# OBJECT COMPILED BELOW
113
114all:: $(ASSEMBLYMODULE) $(SDKREDISTDIR)\Heimdal.msm
115
116all:: $(POLICYMODULE)
117
118all:: $(COMMANDMODULE) $(SDKREDISTDIR)\Heimdal.Command.msm
119
120all:: $(GSSMODULE)
121
122clean::
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) ]==16
133VCVER=VC100
134!elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==15
135VCVER=VC90
136!elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==14
137VCVER=VC80
138!else
139!  error Cant determine Visual C compiler version
140!endif
141
142$(SDKREDISTDIR)\heimdal-version.mak:
143   @echo HEIMDAL_VCVER=$(VCVER)  > $@
144!if "$(BUILD)"!="rel"
145   @echo HEIMDAL_CRT_DEBUG=yes   >> $@
146!endif
147
148all:: $(SDKREDISTDIR)\heimdal-version.mak
149
150!if "$(BUILD)"=="rel"
151CRTNAME=CRT
152!else
153CRTNAME=DebugCRT
154!endif
155
156!if "$(MMDIR)"==""
157MMDIR=$(ProgramFiles)\Common Files\Merge Modules
158!if !exist($(MMDIR))
159MMDIR=$(SystemDrive)\Program Files (x86)\Common Files\Merge Modules
160!endif
161!endif
162
163!if exist("$(MMDIR)")
164
165RUNTIMEMODULE32="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x86.msm"
166!if "$(VCVER)"=="VC100"
167RUNTIMEMODULE64="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x64.msm"
168!else
169RUNTIMEMODULE64="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x86_x64.msm"
170!endif
171
172!else
173RUNTIMEMODULE32="$(MSSDK)\Redist\VC\microsoft.vcxx.crt.x86_msm.msm"
174RUNTIMEMODULE64="$(MSSDK)\Redist\VC\microsoft.vcxx.crt.x64_msm.msm"
175
176!endif
177
178
179######################################################################
180# Heimdal installer
181
182CANDLEOPTS=	\
183	-dVersion=$(VERSION)			\
184	-dBinDir=$(BINDIR)			\
185	-dDocDir=$(DOCDIR)			\
186	-dSrcDir=$(SRC)				\
187	-dPlatform=$(PLATFORM)			\
188	-dAsmKrbName=$(ASMKRBNAME)		\
189	-dPolPrefix=$(POLPREFIX)
190
191!if "$(CPU)"=="AMD64"
192
193INSTDIR32=$(INSTDIR:AMD64=i386)
194
195CANDLEOPTS=$(CANDLEOPTS) -dTarget64	\
196	-dInstDir32=$(INSTDIR32)	\
197	-dInstDir64=$(INSTDIR)			\
198	-dRuntimeModule32=$(RUNTIMEMODULE32)	\
199	-dRuntimeModule64=$(RUNTIMEMODULE64)
200
201!ifdef MULTIPLATFORM_INSTALLER
202CANDLEOPTS_MULTI= -dTarget32
203TYPEOPT=-full
204
205INSTDEPS= \
206	$(INSTDIR32)\Heimdal.msm \
207	$(INSTDIR32)\Heimdal.GSS.msm	\
208	$(INSTDIR32)\Heimdal.Policy.msm	\
209	$(ASSEMBLYMODULE) $(GSSMODULE) $(POLICYMODULE)
210!else
211!  message Excluding 32-bit components from installer
212TYPEOPT=
213
214INSTDEPS= \
215	$(ASSEMBLYMODULE) $(GSSMODULE) $(POLICYMODULE)
216!endif
217
218
219!else
220
221CANDLEOPTS=$(CANDLEOPTS) -dTarget32		\
222	-dInstDir32=$(INSTDIR)			\
223	-dRuntimeModule32=$(RUNTIMEMODULE32)	\
224
225INSTDEPS= \
226	$(ASSEMBLYMODULE) $(GSSMODULE) $(POLICYMODULE)
227!endif
228
229!if exist($(SRC)\thirdparty\MKShim)
230THIRDPARTYOBJS=$(THIRDPARTYOBJS) $(INSTDIR)\MKShim.wixlib
231THIRDPARTYOPTS=$(THIRDPARTYOPTS) -dMKShim=1
232
233!if "$(CPU)"=="AMD64"
234THIRDPARTYOBJS=$(THIRDPARTYOBJS) $(INSTDIR32)\MKShim.wixlib
235!endif
236!endif
237
238INSTALLER=$(INSTDIR)\Heimdal-$(CPU)$(DEBUGOPT)$(TYPEOPT)-$(VERSIOND).msi
239WIXOBJ=$(OBJ)\heimdal-installer$(TYPEOPT).wixobj
240
241$(INSTALLER): $(WIXOBJ) $(THIRDPARTYOBJS) $(INSTDEPS) lang\en-us.wxl
242	$(LIGHT) -out $@ $(WIXOBJ) $(THIRDPARTYOBJS)	\
243		-sval -cultures:en-us -loc lang\en-us.wxl	\
244		-dWixUILicenseRtf=lang\license-en-us.rtf	\
245		-ext WixUIExtension
246	$(_CODESIGN)
247
248$(WIXOBJ): heimdal-installer.wxs
249	$(CANDLE) -arch $(PLATFORM) -o $@ heimdal-installer.wxs \
250		$(CANDLEOPTS) $(CANDLEOPTS_MULTI) $(THIRDPARTYOPTS)
251
252!if exist(thirdparty\installer\heimdal-command.wxs)
253CMD_WXS=thirdparty\installer\heimdal-command.wxs
254!else
255CMD_WXS=heimdal-command.wxs
256!endif
257
258$(OBJ)\heimdal-command.wixobj: $(CMD_WXS)
259	$(CANDLE) -arch $(PLATFORM) -o $@ $(CMD_WXS) \
260		$(CANDLEOPTS) $(THIRDPARTYOPTS)
261
262!if exist(thirdparty\installer\heimdal-gss.wxs)
263GSS_WXS=thirdparty\installer\heimdal-gss.wxs
264!else
265GSS_WXS=heimdal-gss.wxs
266!endif
267
268$(OBJ)\heimdal-gss.wixobj: $(GSS_WXS)
269	$(CANDLE) -arch $(PLATFORM) -o $@ $(GSS_WXS) \
270		$(CANDLEOPTS) $(THIRDPARTYOPTS)
271
272all:: $(INSTALLER)
273
274clean::
275	-$(RM) $(INSTALLER)
276
277!endif				# BUILD_INSTALLERS
278