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