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