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