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