1#**************************************************************
2#
3#  Licensed to the Apache Software Foundation (ASF) under one
4#  or more contributor license agreements.  See the NOTICE file
5#  distributed with this work for additional information
6#  regarding copyright ownership.  The ASF licenses this file
7#  to you under the Apache License, Version 2.0 (the
8#  "License"); you may not use this file except in compliance
9#  with the License.  You may obtain a copy of the License at
10#
11#    http://www.apache.org/licenses/LICENSE-2.0
12#
13#  Unless required by applicable law or agreed to in writing,
14#  software distributed under the License is distributed on an
15#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16#  KIND, either express or implied.  See the License for the
17#  specific language governing permissions and limitations
18#  under the License.
19#
20#**************************************************************
21
22
23
24PRJ=..
25PRJNAME=instsetoo_native
26TARGET=util
27
28.INCLUDE:  settings.mk
29.INCLUDE: $(SOLARINCDIR)$/rtlbootstrap.mk
30
31# watch for the path delimiter
32.IF "$(GUI)"=="WNT"
33PYTHONPATH:=$(PWD)$/$(BIN);$(SOLARLIBDIR);$(SOLARLIBDIR)$/python;$(SOLARLIBDIR)$/python$/lib-dynload
34.ELSE			# "$(GUI)"=="WNT"
35PYTHONPATH:=$(PWD)$/$(BIN):$(SOLARLIBDIR):$(SOLARLIBDIR)$/python:$(SOLARLIBDIR)$/python$/lib-dynload
36.ENDIF			# "$(GUI)"=="WNT"
37.EXPORT: PYTHONPATH
38
39.IF "$(CWS_WORK_STAMP)"=="" || "$(UPDATER)"!=""
40ENABLE_DOWNLOADSETS*=TRUE
41.ENDIF			# "$(CWS_WORK_STAMP)"=="" || "$(UPDATER)"!=""
42.IF "$(FORCE_DOWNLOADSETS)"!=""
43ENABLE_DOWNLOADSETS=TRUE
44.ENDIF			# "$(FORCE_DOWNLOADSETS)"!=""
45
46.EXPORT: ENABLE_DOWNLOADSETS
47.EXPORT: LAST_MINOR
48.EXPORT: PRJ
49.EXPORT: PRJNAME
50
51.IF "$(OS)"=="LINUX"
52DONT_REMOVE_PACKAGE:=TRUE
53.EXPORT: DONT_REMOVE_PACKAGE
54.ENDIF          # "$(OS)"=="LINUX"
55
56.INCLUDE .IGNORE: $(SRC_ROOT)$/cwsname.mk
57
58SHARED_COM_SDK_PATH*:=.
59
60INSTALLDIR=$(OUT)
61
62.INCLUDE: target.mk
63
64# The help target belongs after the inclusion of target.mk to not become the default target.
65help .PHONY :
66	@echo "known targets:"
67	@echo "    openoffice             builds the default installation packages for the platform"
68	@echo "    aoo_srcrelease         packs the source release package"
69	@echo "    updatepack"
70	@echo "    openofficedev          devloper snapshot"
71	@echo "    openofficewithjre"
72	@echo "    ooolanguagepack"
73	@echo "    ooodevlanguagepack"
74	@echo "    sdkoo"
75	@echo "    sdkoodev"
76	@echo
77	@echo "Most targets (all except aoo_srcrelease and updatepack) accept suffixes"
78	@echo "    add _<language> to build a target for one language only"
79	@echo "        the default set of languages is alllangiso=$(alllangiso)"
80	@echo "    add .<package_format> to build a target for one package format only"
81	@echo "        the default set of package formats is archive and PKGFORMAT=$(PKGFORMAT)"
82
83
84LOCALPYFILES= \
85    $(BIN)$/uno.py \
86	$(BIN)$/unohelper.py \
87	$(BIN)$/pythonloader.py \
88	$(BIN)$/pythonscript.py \
89	$(BIN)$/officehelper.py \
90	$(BIN)$/mailmerge.py
91
92xxxx:
93    echo $(PERL) -w $(SOLARENV)$/bin$/gen_update_info.pl --buildid $(BUILD) --arch "$(RTL_ARCH)" --os "$(RTL_OS)" --lstfile $(PRJ)$/util$/openoffice.lst --product OpenOffice --languages $(subst,$(@:s/_/ /:1)_, $(@:b)) $(PRJ)$/util$/update.xml
94
95.IF "$(GUI)"!="WNT" && "$(EPM)"=="NO" && "$(USE_PACKAGER)"==""
96ALLTAR  : $(LOCALPYFILES)
97	@echo "No EPM: do no packaging at this stage"
98.ELSE			# "$(GUI)"!="WNT" && "$(EPM)"=="NO" && "$(USE_PACKAGER)"==""
99.IF "$(UPDATER)"=="" || "$(USE_PACKAGER)"==""
100.IF "$(BUILD_TYPE)"=="$(BUILD_TYPE:s/ODK//)"
101ALLTAR : openoffice
102.ELSE
103ALLTAR : openoffice sdkoo_en-US
104.ENDIF
105.ELSE			# "$(UPDATER)"=="" || "$(USE_PACKAGER)"==""
106ALLTAR : updatepack
107.ENDIF			# "$(UPDATER)"=="" || "$(USE_PACKAGER)"==""
108.ENDIF			# "$(GUI)"!="WNT" && "$(EPM)"=="NO" && "$(USE_PACKAGER)"==""
109
110.IF "$(FORCE2ARCHIVE)" == "TRUE"
111PKGFORMAT = archive
112.END
113
114.IF "$(MAKETARGETS:e)"!=""
115PKGFORMAT+=$(MAKETARGETS:e:s/.//)
116.ENDIF			# "$(MAKETARGETS:e)"!=""
117
118# Independent of PKGFORMAT, always build a default-language openoffice product
119# also in archive format, so that tests that require an OOo installation (like
120# smoketestoo_native) have one available:
121openoffice_$(defaultlangiso) : $$@.archive
122
123.IF "$(VERBOSE)"=="TRUE"
124VERBOSESWITCH=-verbose
125.ELIF "$(VERBOSE)"=="FALSE"
126VERBOSESWITCH=-quiet
127.ENDIF
128
129.IF "$(VERBOSE_INSTALLER)"=="TRUE"
130VERBOSESWITCH+=-log
131.ENDIF
132
133# New target to prepare a source release
134SRC_RELEASE_OUT_DIR=$(shell cd $(OUT) && pwd)$/AOO_SRC_Release
135
136aoo_srcrelease: $(SOLARENV)$/bin$/srcrelease.xml
137	@-$(MKDIR) $(OUT)$/AOO_SRC_Release
138	$(ANT) -f $(SOLARENV)$/bin$/srcrelease.xml -q -Dbasedir=$(SOURCE_ROOT_DIR) -Dout.dir=$(SRC_RELEASE_OUT_DIR)
139
140updatepack:
141	$(PERL) -w $(SOLARENV)$/bin$/packager.pl
142
143.IF "$(alllangiso)"!=""
144
145openoffice: $(foreach,i,$(alllangiso) openoffice_$i)
146
147openofficedev: $(foreach,i,$(alllangiso) openofficedev_$i)
148
149openofficewithjre: $(foreach,i,$(alllangiso) openofficewithjre_$i)
150
151ooolanguagepack : $(foreach,i,$(alllangiso) ooolanguagepack_$i)
152
153ooodevlanguagepack: $(foreach,i,$(alllangiso) ooodevlanguagepack_$i)
154
155sdkoo: $(foreach,i,$(alllangiso) sdkoo_$i)
156
157sdkoodev: $(foreach,i,$(alllangiso) sdkoodev_$i)
158
159MSIOFFICETEMPLATESOURCE=$(PRJ)$/inc_openoffice$/windows$/msi_templates
160MSILANGPACKTEMPLATESOURCE=$(PRJ)$/inc_ooolangpack$/windows$/msi_templates
161MSISDKOOTEMPLATESOURCE=$(PRJ)$/inc_sdkoo$/windows$/msi_templates
162
163NOLOGOSPLASH:=$(BIN)$/intro.zip
164DEVNOLOGOSPLASH:=$(BIN)$/dev$/intro.zip
165MSIOFFICETEMPLATEDIR=$(MISC)$/openoffice$/msi_templates
166MSILANGPACKTEMPLATEDIR=$(MISC)$/ooolangpack$/msi_templates
167MSISDKOOTEMPLATEDIR=$(MISC)$/sdkoo$/msi_templates
168
169ADDDEPS=$(NOLOGOSPLASH) $(DEVNOLOGOSPLASH)
170
171.IF "$(OS)" == "WNT"
172ADDDEPS+=hack_msitemplates
173.ENDIF
174
175$(foreach,i,$(alllangiso) openoffice_$i) : $(ADDDEPS)
176openoffice_$(defaultlangiso).archive : $(ADDDEPS)
177
178$(foreach,i,$(alllangiso) openofficedev_$i) : $(ADDDEPS)
179
180$(foreach,i,$(alllangiso) openofficewithjre_$i) : $(ADDDEPS)
181
182$(foreach,i,$(alllangiso) ooolanguagepack_$i) : $(ADDDEPS)
183
184$(foreach,i,$(alllangiso) ooodevlanguagepack_$i) : $(ADDDEPS)
185
186$(foreach,i,$(alllangiso) sdkoo_$i) : $(ADDDEPS)
187
188$(foreach,i,$(alllangiso) sdkoodev_$i) : $(ADDDEPS)
189
190.IF "$(MAKETARGETS)"!=""
191$(MAKETARGETS) : $(ADDDEPS)
192.ENDIF			# "$(MAKETARGETS)"!=""
193
194$(foreach,i,$(alllangiso) openoffice_$i) : $$@{$(PKGFORMAT:^".")}
195.IF "$(MAKETARGETS)"!=""
196.IF "$(MAKETARGETS:e)"=="" && "$(MAKETARGETS:s/_//)"!="$(MAKETARGETS)"
197$(MAKETARGETS) : $$@{$(PKGFORMAT:^".")}
198$(MAKETARGETS){$(PKGFORMAT:^".")} : $(ADDDEPS)
199.ENDIF			# "$(MAKETARGETS:e)"=="" && "$(MAKETARGETS:s/_//)"!="$(MAKETARGETS)"
200.ENDIF			# "$(MAKETARGETS)"!=""
201
202
203# This macro makes calling the make_installer.pl script a bit easier.
204# Just add -p and -msitemplate switches.
205MAKE_INSTALLER_COMMAND=					\
206	$(PERL) -w $(SOLARENV)$/bin$/make_installer.pl 	\
207		-f $(PRJ)$/util$/openoffice.lst 	\
208		-l $(subst,$(@:s/_/ /:1)_, $(@:b)) 	\
209		-u $(OUT) 				\
210		-buildid $(BUILD) 			\
211		-msilanguage $(MISC)$/win_ulffiles	\
212		-format $(@:e:s/.//) 			\
213		$(VERBOSESWITCH)
214
215# This macro makes calling gen_update_info.pl a bit easier
216# Just add --product switches, and xml input file and redirect output.
217GEN_UPDATE_INFO_COMMAND=					\
218	$(PERL) -w $(SOLARENV)$/bin$/gen_update_info.pl		\
219		--buildid $(BUILD)				\
220		--arch "$(RTL_ARCH)"				\
221		--os "$(RTL_OS)"				\
222		--lstfile $(PRJ)$/util$/openoffice.lst		\
223		--languages $(subst,$(@:s/_/ /:1)_, $(@:b))
224
225openoffice_%{$(PKGFORMAT:^".") .archive} :
226	$(MAKE_INSTALLER_COMMAND) 		\
227		-p Apache_OpenOffice		\
228		-msitemplate $(MSIOFFICETEMPLATEDIR)
229	$(GEN_UPDATE_INFO_COMMAND)		\
230		--product Apache_OpenOffice	\
231		$(PRJ)$/util$/update.xml	\
232		> $(MISC)/$(@:b)_$(RTL_OS)_$(RTL_ARCH)$(@:e).update.xml
233
234$(foreach,i,$(alllangiso) openofficewithjre_$i) : $$@{$(PKGFORMAT:^".")}
235openofficewithjre_%{$(PKGFORMAT:^".")} :
236	$(MAKE_INSTALLER_COMMAND) -p Apache_OpenOffice_wJRE -msitemplate $(MSIOFFICETEMPLATEDIR)
237
238$(foreach,i,$(alllangiso) openofficedev_$i) : $$@{$(PKGFORMAT:^".")}
239openofficedev_%{$(PKGFORMAT:^".")} :
240	$(MAKE_INSTALLER_COMMAND)		\
241		-p Apache_OpenOffice_Dev	\
242		-msitemplate $(MSIOFFICETEMPLATEDIR)
243	$(GEN_UPDATE_INFO_COMMAND)			\
244		--product Apache_OpenOffice_Dev 	\
245		$(PRJ)$/util$/update.xml 		\
246		> $(MISC)/$(@:b)_$(RTL_OS)_$(RTL_ARCH)$(@:e).update.xml
247
248$(foreach,i,$(alllangiso) ooolanguagepack_$i) : $$@{$(PKGFORMAT:^".")}
249ooolanguagepack_%{$(PKGFORMAT:^".")} :
250	$(MAKE_INSTALLER_COMMAND)			\
251		-p Apache_OpenOffice			\
252		-msitemplate $(MSILANGPACKTEMPLATEDIR)	\
253		-languagepack
254
255$(foreach,i,$(alllangiso) ooodevlanguagepack_$i) : $$@{$(PKGFORMAT:^".")}
256ooodevlanguagepack_%{$(PKGFORMAT:^".")} :
257	$(MAKE_INSTALLER_COMMAND) -p Apache_OpenOffice_Dev -msitemplate $(MSILANGPACKTEMPLATEDIR) -languagepack
258
259$(foreach,i,$(alllangiso) sdkoo_$i) : $$@{$(PKGFORMAT:^".")}
260sdkoo_%{$(PKGFORMAT:^".")} :
261	$(MAKE_INSTALLER_COMMAND) -p Apache_OpenOffice_SDK -msitemplate $(MSISDKOOTEMPLATEDIR) -dontstrip
262
263$(foreach,i,$(alllangiso) sdkoodev_$i) : $$@{$(PKGFORMAT:^".")}
264sdkoodev_%{$(PKGFORMAT:^".")} :
265	$(MAKE_INSTALLER_COMMAND) -p Apache_OpenOffice_Dev_SDK -msitemplate $(MSISDKOOTEMPLATEDIR) -dontstrip
266
267.IF "$(MAKETARGETS)"!=""
268.IF "$(MAKETARGETS:e)"=="" && "$(MAKETARGETS:s/_//)"!="$(MAKETARGETS)"
269$(MAKETARGETS) : $$@{$(PKGFORMAT:^".")}
270$(MAKETARGETS){$(PKGFORMAT:^".")} : $(ADDDEPS)
271.ENDIF			# "$(MAKETARGETS:e)"=="" && "$(MAKETARGETS:s/_//)"!="$(MAKETARGETS)"
272.ENDIF			# "$(MAKETARGETS)"!=""
273
274.ELSE			# "$(alllangiso)"!=""
275openoffice:
276	@echo cannot pack nothing...
277
278.ENDIF			# "$(alllangiso)"!=""
279
280.IF "$(LOCALPYFILES)"!=""
281$(foreach,i,$(alllangiso) openoffice_$i{$(PKGFORMAT:^".") .archive} openofficewithjre_$i{$(PKGFORMAT:^".")} openofficedev_$i{$(PKGFORMAT:^".")} sdkoo_$i{$(PKGFORMAT:^".")}) updatepack : $(LOCALPYFILES)
282.ENDIF			# "$(LOCALPYFILES)"!=""
283
284$(BIN)$/%.py : $(SOLARSHAREDBIN)$/pyuno$/%.py
285	@$(COPY) $< $@
286
287#$(BIN)$/intro.zip : $(SOLARCOMMONPCKDIR)$/openoffice_nologo$/intro.zip
288$(BIN)$/intro.zip : $(SOLARCOMMONPCKDIR)$/intro.zip
289	$(COPY) $< $@
290
291#$(BIN)$/dev$/intro.zip : $(SOLARCOMMONPCKDIR)$/openoffice_dev_nologo$/intro.zip
292$(BIN)$/dev$/intro.zip : $(SOLARCOMMONPCKDIR)$/openoffice_dev$/intro.zip
293	@-$(MKDIR) $(@:d)
294	$(COPY) $< $@
295
296hack_msitemplates .PHONY: msi_template_files msi_langpack_template_files msi_sdk_template_files
297
298MSI_OFFICE_TEMPLATE_FILES=		\
299	ActionTe.idt			\
300	AdminExe.idt			\
301	AdminUIS.idt			\
302	AdvtExec.idt			\
303	AppSearc.idt			\
304	Binary.idt			\
305	CheckBox.idt			\
306	Control.idt			\
307	ControlC.idt			\
308	ControlE.idt			\
309	CustomAc.idt			\
310	Dialog.idt			\
311	Error.idt			\
312	EventMap.idt			\
313	InstallE.idt			\
314	InstallU.idt			\
315	LaunchCo.idt			\
316	ListBox.idt			\
317	Property.idt			\
318	RadioBut.idt			\
319	RegLocat.idt			\
320	Signatur.idt			\
321	TextStyl.idt			\
322	UIText.idt			\
323	_Validat.idt			\
324	codes.txt			\
325	codes_broo.txt			\
326	codes_broodev.txt		\
327	codes_ooodev.txt		\
328	components.txt			\
329	upgradecode_remove_ooo.txt	\
330	Binary/Banner.bmp		\
331	Binary/Image.bmp		\
332	Binary/caution.ico		\
333	Binary/dontinstall.ico		\
334	Binary/install.ico		\
335	Binary/installfirstuse.ico	\
336	Binary/installpartial.ico	\
337	Binary/installstatemenu.ico	\
338	Binary/networkinstall.ico	\
339	Binary/newfolder.ico		\
340	Binary/openfolder.ico		\
341	Binary/setup.ico		\
342	Binary/setupcomplete.ico	\
343	Binary/setuppartial.ico		\
344	Binary/setuprepair.ico		\
345	Binary/trashcan.ico		\
346	Binary/up.ico
347
348MSI_LANGPACK_TEMPLATE_FILES=		\
349	ActionTe.idt			\
350	AdminExe.idt			\
351	AdminUIS.idt			\
352	AdvtExec.idt			\
353	Binary.idt			\
354	CheckBox.idt			\
355	Control.idt			\
356	ControlC.idt			\
357	ControlE.idt			\
358	CustomAc.idt			\
359	Dialog.idt			\
360	Error.idt			\
361	EventMap.idt			\
362	InstallE.idt			\
363	InstallU.idt			\
364	LaunchCo.idt			\
365	ListBox.idt			\
366	Property.idt			\
367	RadioBut.idt			\
368	TextStyl.idt			\
369	UIText.idt			\
370	_Validat.idt			\
371	bro_patchcodes.txt		\
372	brodev_patchcodes.txt		\
373	codes.txt			\
374	codes_broo.txt			\
375	codes_ooodev.txt		\
376	components.txt			\
377	ooo_patchcodes.txt		\
378	ooodev_patchcodes.txt		\
379	Binary/Banner.bmp
380
381MSI_SDK_TEMPLATE_FILES=			\
382	ActionTe.idt			\
383	AdminExe.idt			\
384	AdminUIS.idt			\
385	AdvtExec.idt			\
386	AppSearc.idt			\
387	Binary.idt			\
388	CheckBox.idt			\
389	Control.idt			\
390	ControlC.idt			\
391	ControlE.idt			\
392	CustomAc.idt			\
393	Dialog.idt			\
394	Error.idt			\
395	EventMap.idt			\
396	InstallE.idt			\
397	InstallU.idt			\
398	LaunchCo.idt			\
399	ListBox.idt			\
400	Property.idt			\
401	RadioBut.idt			\
402	RegLocat.idt			\
403	Signatur.idt			\
404	TextStyl.idt			\
405	UIText.idt			\
406	_Validat.idt			\
407	codes.txt			\
408	components.txt			\
409	Binary/Banner.bmp		\
410	Binary/Image.bmp		\
411	Binary/caution.ico		\
412	Binary/dontinstall.ico		\
413	Binary/install.ico		\
414	Binary/installfirstuse.ico	\
415	Binary/installpartial.ico	\
416	Binary/installstatemenu.ico	\
417	Binary/networkinstall.ico	\
418	Binary/newfolder.ico		\
419	Binary/openfolder.ico		\
420	Binary/setup.ico		\
421	Binary/setupcomplete.ico	\
422	Binary/setuppartial.ico		\
423	Binary/setuprepair.ico		\
424	Binary/trashcan.ico		\
425	Binary/up.ico
426
427msi_template_files .PHONY:					\
428	$(MSIOFFICETEMPLATEDIR)					\
429	$(MSIOFFICETEMPLATEDIR)$/Binary 			\
430	$(MSIOFFICETEMPLATEDIR)$/{$(MSI_OFFICE_TEMPLATE_FILES)}
431$(MSIOFFICETEMPLATEDIR) $(MSIOFFICETEMPLATEDIR)$/Binary :
432	-$(MKDIRHIER) $@
433$(MSIOFFICETEMPLATEDIR)$/% : $(MSIOFFICETEMPLATESOURCE)$/%
434	$(GNUCOPY) $< $@
435
436msi_langpack_template_files .PHONY :				\
437	$(MSILANGPACKTEMPLATEDIR)				\
438	$(MSILANGPACKTEMPLATEDIR)$/Binary			\
439	$(MSILANGPACKTEMPLATEDIR)$/{$(MSI_LANGPACK_TEMPLATE_FILES)}
440$(MSILANGPACKTEMPLATEDIR) $(MSILANGPACKTEMPLATEDIR)$/Binary  :
441	-$(MKDIRHIER) $@
442$(MSILANGPACKTEMPLATEDIR)$/% : $(MSILANGPACKTEMPLATESOURCE)$/%
443	$(GNUCOPY) $< $@
444
445
446msi_sdk_template_files .PHONY :					\
447	$(MSISDKOOTEMPLATEDIR)					\
448	$(MSISDKOOTEMPLATEDIR)$/Binary				\
449	$(MSISDKOOTEMPLATEDIR)$/{$(MSI_SDK_TEMPLATE_FILES)}
450$(MSISDKOOTEMPLATEDIR) $(MSISDKOOTEMPLATEDIR)$/Binary :
451	-$(MKDIRHIER) $@
452$(MSISDKOOTEMPLATEDIR)/% : $(MSISDKOOTEMPLATESOURCE)$/%
453	$(GNUCOPY) $< $@
454