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