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: 128openoffice_$(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 165# The naming schema of targets is this: target_language.package 166# where 'target' is the target base name (as openoffice or sdkoo) 167# 'language' is the language name (like en-US or fr) 168# 'package' is the package format (like msi or deb) 169 170.IF "$(alllangiso)"!="" 171 172# Add dependencies of basic targets on language specific targets. 173openoffice: $(foreach,i,$(alllangiso) openoffice_$i) 174openofficedev: $(foreach,i,$(alllangiso) openofficedev_$i) 175openofficewithjre: $(foreach,i,$(alllangiso) openofficewithjre_$i) 176ooolanguagepack : $(foreach,i,$(alllangiso) ooolanguagepack_$i) 177ooodevlanguagepack: $(foreach,i,$(alllangiso) ooodevlanguagepack_$i) 178sdkoo: $(foreach,i,$(alllangiso) sdkoo_$i) 179sdkoodev: $(foreach,i,$(alllangiso) sdkoodev_$i) 180patch-create: $(foreach,i,$(alllangiso) patch-create_$i) 181 182MSIOFFICETEMPLATESOURCE=$(PRJ)$/inc_openoffice$/windows$/msi_templates 183MSILANGPACKTEMPLATESOURCE=$(PRJ)$/inc_ooolangpack$/windows$/msi_templates 184MSISDKOOTEMPLATESOURCE=$(PRJ)$/inc_sdkoo$/windows$/msi_templates 185 186NOLOGOSPLASH:=$(BIN)$/intro.zip 187DEVNOLOGOSPLASH:=$(BIN)$/dev$/intro.zip 188MSIOFFICETEMPLATEDIR=$(MISC)$/openoffice$/msi_templates 189MSILANGPACKTEMPLATEDIR=$(MISC)$/ooolangpack$/msi_templates 190MSISDKOOTEMPLATEDIR=$(MISC)$/sdkoo$/msi_templates 191 192ADDDEPS=adddeps 193adddeps .PHONY : $(NOLOGOSPLASH) $(DEVNOLOGOSPLASH) 194 195.IF "$(OS)" == "WNT" 196adddeps : msitemplates 197.ENDIF 198 199.IF "$(LOCALPYFILES)"!="" 200local_python_files .PHONY : $(LOCALPYFILES) 201adddeps : local_python_files 202updatepack : local_python_files 203.ENDIF # "$(LOCALPYFILES)"!="" 204 205# Add dependencies on 'adddeps' where necessary. 206$(foreach,i,$(alllangiso) openoffice_$i) : adddeps 207openoffice_$(defaultlangiso).archive : adddeps 208$(foreach,i,$(alllangiso) openofficedev_$i) : adddeps 209$(foreach,i,$(alllangiso) openofficewithjre_$i) : adddeps 210$(foreach,i,$(alllangiso) ooolanguagepack_$i) : adddeps 211$(foreach,i,$(alllangiso) ooodevlanguagepack_$i) : adddeps 212$(foreach,i,$(alllangiso) sdkoo_$i) : adddeps 213$(foreach,i,$(alllangiso) sdkoodev_$i) : adddeps 214 215# Create targets that take the package formats into account. Together with language dependency we 216# get this transformation: target -> target_$language -> target_$language.$package 217# where $language ranges over all languages in $(alllangiso) 218# and $package ranges over all package formats in $(PKGFORMAT) 219$(foreach,i,$(alllangiso) openoffice_$i) : $$@{$(PKGFORMAT:^".")} 220$(foreach,i,$(alllangiso) openofficewithjre_$i) : $$@{$(PKGFORMAT:^".")} 221$(foreach,i,$(alllangiso) openofficedev_$i) : $$@{$(PKGFORMAT:^".")} 222$(foreach,i,$(alllangiso) ooolanguagepack_$i) : $$@{$(PKGFORMAT:^".")} 223$(foreach,i,$(alllangiso) ooodevlanguagepack_$i) : $$@{$(PKGFORMAT:^".")} 224$(foreach,i,$(alllangiso) sdkoo_$i) : $$@{$(PKGFORMAT:^".")} 225$(foreach,i,$(alllangiso) sdkoodev_$i) : $$@{$(PKGFORMAT:^".")} 226$(foreach,i,$(alllangiso) patch-create_$i) : $$@{$(PKGFORMAT:^".")} 227 228 229# This macro makes calling the make_installer.pl script a bit easier. 230# Just add -p and -msitemplate switches. 231MAKE_INSTALLER_COMMAND= \ 232 @$(PERL) -w $(SOLARENV)$/bin$/make_installer.pl \ 233 -f $(PRJ)$/util$/openoffice.lst \ 234 -l $(subst,$(@:s/_/ /:1)_, $(@:b)) \ 235 -u $(OUT) \ 236 -buildid $(BUILD) \ 237 -msilanguage $(MISC)$/win_ulffiles \ 238 -format $(@:e:s/.//) \ 239 $(VERBOSESWITCH) 240 241# This macro makes calling gen_update_info.pl a bit easier 242# Just add --product switches, and xml input file and redirect output. 243GEN_UPDATE_INFO_COMMAND= \ 244 @$(PERL) -w $(SOLARENV)$/bin$/gen_update_info.pl \ 245 --buildid $(BUILD) \ 246 --arch "$(RTL_ARCH)" \ 247 --os "$(RTL_OS)" \ 248 --lstfile $(PRJ)$/util$/openoffice.lst \ 249 --languages $(subst,$(@:s/_/ /:1)_, $(@:b)) 250 251#openoffice_%{$(PKGFORMAT:^".")} : 252$(foreach,P,$(PACKAGE_FORMATS) $(foreach,L,$(alllangiso) openoffice_$L.$P)) .PHONY : 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 262#$(foreach,L,$(alllangiso) openoffice_$L.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 271#openofficewithjre_%{$(PKGFORMAT:^".")} : 272$(foreach,P,$(PACKAGE_FORMATS) $(foreach,L,$(alllangiso) openofficewithjre_$L.$P)) .PHONY : 273 $(MAKE_INSTALLER_COMMAND) -p Apache_OpenOffice_wJRE -msitemplate $(MSIOFFICETEMPLATEDIR) 274 275#openofficedev_%{$(PKGFORMAT:^".")} : 276$(foreach,P,$(PACKAGE_FORMATS) $(foreach,L,$(alllangiso) openofficedev_$L.$P)) .PHONY : 277 $(MAKE_INSTALLER_COMMAND) \ 278 -p Apache_OpenOffice_Dev \ 279 -msitemplate $(MSIOFFICETEMPLATEDIR) 280 $(GEN_UPDATE_INFO_COMMAND) \ 281 --product Apache_OpenOffice_Dev \ 282 $(PRJ)$/util$/update.xml \ 283 > $(MISC)/$(@:b)_$(RTL_OS)_$(RTL_ARCH)$(@:e).update.xml 284 285#ooolanguagepack_%{$(PKGFORMAT:^".")} : 286$(foreach,P,$(PACKAGE_FORMATS) $(foreach,L,$(alllangiso) ooolanguagepack_$L.$P)) .PHONY : 287 $(MAKE_INSTALLER_COMMAND) \ 288 -p Apache_OpenOffice \ 289 -msitemplate $(MSILANGPACKTEMPLATEDIR) \ 290 -languagepack 291 292#ooodevlanguagepack_%{$(PKGFORMAT:^".")} : 293$(foreach,P,$(PACKAGE_FORMATS) $(foreach,L,$(alllangiso) ooodevlanguagepack_$L.$P)) .PHONY : 294 $(MAKE_INSTALLER_COMMAND) -p Apache_OpenOffice_Dev -msitemplate $(MSILANGPACKTEMPLATEDIR) -languagepack 295 296#sdkoo_%{$(PKGFORMAT:^".")} : 297$(foreach,P,$(PACKAGE_FORMATS) $(foreach,L,$(alllangiso) sdkoo_$L.$P)) .PHONY : 298 $(MAKE_INSTALLER_COMMAND) -p Apache_OpenOffice_SDK -msitemplate $(MSISDKOOTEMPLATEDIR) -dontstrip 299 300#sdkoodev_%{$(PKGFORMAT:^".")} : 301$(foreach,P,$(PACKAGE_FORMATS) $(foreach,L,$(alllangiso) sdkoodev_$L.$P)) .PHONY : 302 $(MAKE_INSTALLER_COMMAND) -p Apache_OpenOffice_Dev_SDK -msitemplate $(MSISDKOOTEMPLATEDIR) -dontstrip 303 304.ELSE # "$(alllangiso)"!="" 305openoffice: 306 @echo cannot pack nothing... 307 308.ENDIF # "$(alllangiso)"!="" 309 310$(BIN)$/%.py : $(SOLARSHAREDBIN)$/pyuno$/%.py 311 $(COPY) $< $@ 312 313$(BIN)$/intro.zip : $(SOLARCOMMONPCKDIR)$/intro.zip 314 $(COPY) $< $@ 315 316$(BIN)$/dev$/intro.zip : $(SOLARCOMMONPCKDIR)$/openoffice_dev$/intro.zip 317 @-$(MKDIR) $(@:d) 318 $(COPY) $< $@ 319 320 321.IF "$(OS)" == "WNT" 322$(foreach,P,$(PACKAGE_FORMATS) $(foreach,L,$(alllangiso) patch-create_$L.$P)) .PHONY : 323 @echo building $@ 324 perl -I $(SOLARENV)$/bin/modules $(SOLARENV)$/bin$/patch_tool.pl \ 325 create \ 326 --product-name Apache_OpenOffice \ 327 --output-path $(OUT) \ 328 --data-path $(PRJ)$/data \ 329 --lst-file $(PRJ)$/util$/openoffice.lst \ 330 --language $(subst,$(@:s/_/ /:1)_, $(@:b)) \ 331 --package-format $(@:e:s/.//) 332patch-apply .PHONY : 333 perl -I $(SOLARENV)$/bin/modules $(SOLARENV)$/bin$/patch_tool.pl \ 334 apply \ 335 --product-name Apache_OpenOffice \ 336 --output-path $(OUT) \ 337 --lst-file $(PRJ)$/util$/openoffice.lst \ 338 --language en-US \ 339 --package-format msi 340patch-update-releases-xml .PHONY: 341 perl -I $(SOLARENV)$/bin/modules $(SOLARENV)$/bin$/patch_tool.pl \ 342 update-releases-xml \ 343 --product-name Apache_OpenOffice \ 344 --output-path $(OUT) \ 345 --lst-file $(PRJ)$/util$/openoffice.lst\ 346 --target-version 4.0.1 347 348$(PRJ)$/data : 349 mkdir $@ 350.ELSE 351$(foreach,P,$(PACKAGE_FORMATS) $(foreach,L,$(alllangiso) patch-create_$L.$P)) .PHONY : 352 @echo "patches can only be created on Windows at the moment" 353patch-apply .PHONY : 354 @echo "patches can only be created on Windows at the moment" 355patch-update-releases-xml .PHONY: 356 @echo "patches can only be created on Windows at the moment" 357.ENDIF 358 359 360msitemplates .PHONY: msi_template_files msi_langpack_template_files msi_sdk_template_files 361 362MSI_OFFICE_TEMPLATE_FILES= \ 363 ActionTe.idt \ 364 AdminExe.idt \ 365 AdminUIS.idt \ 366 AdvtExec.idt \ 367 AppSearc.idt \ 368 Binary.idt \ 369 CheckBox.idt \ 370 Control.idt \ 371 ControlC.idt \ 372 ControlE.idt \ 373 CustomAc.idt \ 374 Dialog.idt \ 375 Error.idt \ 376 EventMap.idt \ 377 InstallE.idt \ 378 InstallU.idt \ 379 LaunchCo.idt \ 380 ListBox.idt \ 381 Property.idt \ 382 RadioBut.idt \ 383 RegLocat.idt \ 384 Signatur.idt \ 385 TextStyl.idt \ 386 UIText.idt \ 387 _Validat.idt \ 388 codes.txt \ 389 codes_broo.txt \ 390 codes_broodev.txt \ 391 codes_ooodev.txt \ 392 components.txt \ 393 upgradecode_remove_ooo.txt \ 394 Binary/Banner.bmp \ 395 Binary/Image.bmp \ 396 Binary/caution.ico \ 397 Binary/dontinstall.ico \ 398 Binary/install.ico \ 399 Binary/installfirstuse.ico \ 400 Binary/installpartial.ico \ 401 Binary/installstatemenu.ico \ 402 Binary/networkinstall.ico \ 403 Binary/newfolder.ico \ 404 Binary/openfolder.ico \ 405 Binary/setup.ico \ 406 Binary/setupcomplete.ico \ 407 Binary/setuppartial.ico \ 408 Binary/setuprepair.ico \ 409 Binary/trashcan.ico \ 410 Binary/up.ico 411 412MSI_LANGPACK_TEMPLATE_FILES= \ 413 ActionTe.idt \ 414 AdminExe.idt \ 415 AdminUIS.idt \ 416 AdvtExec.idt \ 417 Binary.idt \ 418 CheckBox.idt \ 419 Control.idt \ 420 ControlC.idt \ 421 ControlE.idt \ 422 CustomAc.idt \ 423 Dialog.idt \ 424 Error.idt \ 425 EventMap.idt \ 426 InstallE.idt \ 427 InstallU.idt \ 428 LaunchCo.idt \ 429 ListBox.idt \ 430 Property.idt \ 431 RadioBut.idt \ 432 TextStyl.idt \ 433 UIText.idt \ 434 _Validat.idt \ 435 bro_patchcodes.txt \ 436 brodev_patchcodes.txt \ 437 codes.txt \ 438 codes_broo.txt \ 439 codes_ooodev.txt \ 440 components.txt \ 441 ooo_patchcodes.txt \ 442 ooodev_patchcodes.txt \ 443 Binary/Banner.bmp 444 445MSI_SDK_TEMPLATE_FILES= \ 446 ActionTe.idt \ 447 AdminExe.idt \ 448 AdminUIS.idt \ 449 AdvtExec.idt \ 450 AppSearc.idt \ 451 Binary.idt \ 452 CheckBox.idt \ 453 Control.idt \ 454 ControlC.idt \ 455 ControlE.idt \ 456 CustomAc.idt \ 457 Dialog.idt \ 458 Error.idt \ 459 EventMap.idt \ 460 InstallE.idt \ 461 InstallU.idt \ 462 LaunchCo.idt \ 463 ListBox.idt \ 464 Property.idt \ 465 RadioBut.idt \ 466 RegLocat.idt \ 467 Signatur.idt \ 468 TextStyl.idt \ 469 UIText.idt \ 470 _Validat.idt \ 471 codes.txt \ 472 components.txt \ 473 Binary/Banner.bmp \ 474 Binary/Image.bmp \ 475 Binary/caution.ico \ 476 Binary/dontinstall.ico \ 477 Binary/install.ico \ 478 Binary/installfirstuse.ico \ 479 Binary/installpartial.ico \ 480 Binary/installstatemenu.ico \ 481 Binary/networkinstall.ico \ 482 Binary/newfolder.ico \ 483 Binary/openfolder.ico \ 484 Binary/setup.ico \ 485 Binary/setupcomplete.ico \ 486 Binary/setuppartial.ico \ 487 Binary/setuprepair.ico \ 488 Binary/trashcan.ico \ 489 Binary/up.ico 490 491msi_template_files .PHONY: \ 492 $(MSIOFFICETEMPLATEDIR) \ 493 $(MSIOFFICETEMPLATEDIR)$/Binary \ 494 $(MSIOFFICETEMPLATEDIR)$/{$(MSI_OFFICE_TEMPLATE_FILES)} 495$(MSIOFFICETEMPLATEDIR) $(MSIOFFICETEMPLATEDIR)$/Binary : 496 -$(MKDIRHIER) $@ 497$(MSIOFFICETEMPLATEDIR)$/% : $(MSIOFFICETEMPLATESOURCE)$/% 498 $(GNUCOPY) $< $@ 499 500msi_langpack_template_files .PHONY : \ 501 $(MSILANGPACKTEMPLATEDIR) \ 502 $(MSILANGPACKTEMPLATEDIR)$/Binary \ 503 $(MSILANGPACKTEMPLATEDIR)$/{$(MSI_LANGPACK_TEMPLATE_FILES)} 504$(MSILANGPACKTEMPLATEDIR) $(MSILANGPACKTEMPLATEDIR)$/Binary : 505 -$(MKDIRHIER) $@ 506$(MSILANGPACKTEMPLATEDIR)$/% : $(MSILANGPACKTEMPLATESOURCE)$/% 507 $(GNUCOPY) $< $@ 508 509 510msi_sdk_template_files .PHONY : \ 511 $(MSISDKOOTEMPLATEDIR) \ 512 $(MSISDKOOTEMPLATEDIR)$/Binary \ 513 $(MSISDKOOTEMPLATEDIR)$/{$(MSI_SDK_TEMPLATE_FILES)} 514$(MSISDKOOTEMPLATEDIR) $(MSISDKOOTEMPLATEDIR)$/Binary : 515 -$(MKDIRHIER) $@ 516$(MSISDKOOTEMPLATEDIR)/% : $(MSISDKOOTEMPLATESOURCE)$/% 517 $(GNUCOPY) $< $@ 518 519 520# Local Variables: 521# tab-width: 8 522# End: 523