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