xref: /netbsd-src/crypto/external/bsd/heimdal/dist/packages/windows/installer/NTMakefile (revision dd75ac5b443e967e26b4d18cc8cd5eb98512bfbf)
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) ]==19
133VCVER=VC2019
134!elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==18
135VCVER=VC2018
136!elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==17
137VCVER=VC2017
138!elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==16
139VCVER=VC100
140!elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==15
141VCVER=VC90
142!elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==14
143VCVER=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
154all:: $(SDKREDISTDIR)\heimdal-version.mak
155
156!if "$(BUILD)"=="rel"
157CRTNAME=CRT
158!else
159CRTNAME=DebugCRT
160!endif
161
162!if "$(MMDIR)"==""
163MMDIR=$(ProgramFiles)\Common Files\Merge Modules
164!if !exist($(MMDIR))
165MMDIR=$(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"
174RUNTIMEMODULE32=""
175RUNTIMEMODULE64=""
176!else
177! if exist("$(MMDIR)")
178RUNTIMEMODULE32="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x86.msm"
179!  if "$(VCVER)"=="VC90" || "$(VCVER)"=="VC80"
180RUNTIMEMODULE64="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x86_x64.msm"
181!  else
182RUNTIMEMODULE64="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x64.msm"
183!  endif
184! else
185RUNTIMEMODULE32="$(MSSDK)\Redist\VC\microsoft.vcxx.crt.x86_msm.msm"
186RUNTIMEMODULE64="$(MSSDK)\Redist\VC\microsoft.vcxx.crt.x64_msm.msm"
187! endif
188!endif
189
190######################################################################
191# Heimdal installer
192
193CANDLEOPTS=	\
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
204INSTDIR32=$(INSTDIR:AMD64=i386)
205
206CANDLEOPTS=$(CANDLEOPTS) -dTarget64	\
207	-dInstDir32=$(INSTDIR32)	\
208	-dInstDir64=$(INSTDIR)			\
209	-dRuntimeModule32=$(RUNTIMEMODULE32)	\
210	-dRuntimeModule64=$(RUNTIMEMODULE64)
211
212!ifdef MULTIPLATFORM_INSTALLER
213CANDLEOPTS_MULTI= -dTarget32
214TYPEOPT=-full
215
216INSTDEPS= \
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
223TYPEOPT=
224
225INSTDEPS= \
226	$(ASSEMBLYMODULE) $(GSSMODULE) $(POLICYMODULE)
227!endif
228
229
230!else
231
232CANDLEOPTS=$(CANDLEOPTS) -dTarget32		\
233	-dInstDir32=$(INSTDIR)			\
234	-dRuntimeModule32=$(RUNTIMEMODULE32)	\
235
236INSTDEPS= \
237	$(ASSEMBLYMODULE) $(GSSMODULE) $(POLICYMODULE)
238!endif
239
240!if exist($(SRC)\thirdparty\MKShim)
241THIRDPARTYOBJS=$(THIRDPARTYOBJS) $(INSTDIR)\MKShim.wixlib
242THIRDPARTYOPTS=$(THIRDPARTYOPTS) -dMKShim=1
243
244!if "$(CPU)"=="AMD64"
245THIRDPARTYOBJS=$(THIRDPARTYOBJS) $(INSTDIR32)\MKShim.wixlib
246!endif
247!endif
248
249INSTALLER=$(INSTDIR)\Heimdal-$(CPU)$(DEBUGOPT)$(TYPEOPT)-$(VERSIOND).msi
250WIXOBJ=$(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)
264CMD_WXS=thirdparty\installer\heimdal-command.wxs
265!else
266CMD_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)
274GSS_WXS=thirdparty\installer\heimdal-gss.wxs
275!else
276GSS_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
283all:: $(INSTALLER)
284
285clean::
286	-$(RM) $(INSTALLER)
287
288!endif				# BUILD_INSTALLERS
289