1 #************************************************************************* 2 # 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 # 5 # Copyright 2000, 2011 Oracle and/or its affiliates. 6 # 7 # OpenOffice.org - a multi-platform office productivity suite 8 # 9 # This file is part of OpenOffice.org. 10 # 11 # OpenOffice.org is free software: you can redistribute it and/or modify 12 # it under the terms of the GNU Lesser General Public License version 3 13 # only, as published by the Free Software Foundation. 14 # 15 # OpenOffice.org is distributed in the hope that it will be useful, 16 # but WITHOUT ANY WARRANTY; without even the implied warranty of 17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 # GNU Lesser General Public License version 3 for more details 19 # (a copy is included in the LICENSE file that accompanied this code). 20 # 21 # You should have received a copy of the GNU Lesser General Public License 22 # version 3 along with OpenOffice.org. If not, see 23 # <http://www.openoffice.org/license.html> 24 # for a copy of the LGPLv3 License. 25 # 26 #************************************************************************* 27 28 # SrsPartMergeTarget class 29 30 gb_SrsPartMergeTarget_TRANSEXTARGET := $(call gb_Executable_get_target,transex3) 31 # gb_SrsPartMergeTarget_TRANSEXPRECOMMAND is set by the platforms 32 33 gb_SrsPartMergeTarget_TRANSEXCOMMAND := $(gb_SrsPartMergeTarget_TRANSEXPRECOMMAND) $(gb_SrsPartMergeTarget_TRANSEXTARGET) 34 gb_SrsPartMergeTarget_SDFLOCATION := $(LOCDIR)/l10n/$(INPATH)/misc/sdf/ 35 gb_SrsPartMergeTarget_REPOS := $(gb_REPOS) 36 37 define gb_SrsPartMergeTarget__command 38 $(call gb_Output_announce,$(3),$(true),srs,1) 39 $(call gb_Helper_abbreviate_dirs_native,\ 40 mkdir -p $(dir $(1)) && \ 41 $(gb_SrsPartMergeTarget_TRANSEXCOMMAND) \ 42 -p $(firstword $(subst /, ,$(2))) \ 43 -i $(3) \ 44 -o $(1) \ 45 -m $(SDF) \ 46 -l all) 47 48 endef 49 50 define gb_SrsPartMergeTarget__rules 51 $$(call gb_SrsPartMergeTarget_get_target,%) : $(1)/% $$(gb_Helper_MISCDUMMY) | $$(gb_SrsPartMergeTarget_TRANSEXTARGET) 52 $$(if $$(SDF),$$(call gb_SrsPartMergeTarget__command,$$@,$$*,$$<),mkdir -p $$(dir $$@) && cp $$< $$@) 53 54 endef 55 56 $(foreach repo,$(gb_SrsPartMergeTarget_REPOS),$(eval $(call gb_SrsPartMergeTarget__rules,$(repo)))) 57 58 # SrsPartTarget class 59 60 gb_SrsPartTarget_REPOS := $(gb_REPOS) 61 # defined by platform 62 # gb_SrsPartTarget_RSCTARGET 63 # gb_SrsPartTarget_RSCCOMMAND 64 # gb_SrsPartTarget__command_dep 65 66 define gb_SrsPartTarget__command 67 $(call gb_Helper_abbreviate_dirs_native,\ 68 mkdir -p $(dir $(1)) && \ 69 RESPONSEFILE=`$(gb_MKTEMP)` && \ 70 echo "-s \ 71 $(INCLUDE) \ 72 -I$(dir $(3)) \ 73 $(DEFS) \ 74 -fp=$(1) \ 75 $(if $(MERGEDFILE),$(MERGEDFILE),$<)" > $${RESPONSEFILE} && \ 76 $(gb_SrsPartTarget_RSCCOMMAND) -presponse @$${RESPONSEFILE} && \ 77 rm -rf $${RESPONSEFILE}) 78 79 endef 80 81 define gb_SrsPartTarget__rules 82 $$(call gb_SrsPartTarget_get_target,%) : $(1)/% $$(gb_Helper_MISCDUMMY) | $$(gb_SrsPartTarget_RSCTARGET) 83 $$(call gb_SrsPartTarget__command_dep,$$*,$$<) 84 $$(call gb_SrsPartTarget__command,$$@,$$*,$$<) 85 86 ifeq ($(gb_FULLDEPS),$(true)) 87 $$(call gb_SrsPartTarget_get_dep_target,%) : $(1)/% $$(gb_Helper_MISCDUMMY) 88 $$(call gb_Helper_abbreviate_dirs,\ 89 mkdir -p $$(dir $$@) && \ 90 echo '$$(call gb_SrsPartTarget_get_target,$$*) : $$(gb_Helper_PHONY)' > $$@) 91 endif 92 93 endef 94 95 $(foreach repo,$(gb_SrsPartTarget_REPOS),$(eval $(call gb_SrsPartTarget__rules,$(repo)))) 96 97 ifeq ($(gb_FULLDEPS),$(true)) 98 $(call gb_SrsPartTarget_get_dep_target,%) : 99 $(eval $(call gb_Output_error,Unable to find resource definition file $* in repositories: $(gb_SrsPartTarget_REPOS))) 100 endif 101 102 103 define gb_SrsPartTarget_SrsPartTarget 104 ifeq ($(strip $(gb_WITH_LANG)),) 105 $(call gb_SrsPartTarget_get_target,$(1)) : MERGEDFILE := 106 else 107 $(call gb_SrsPartTarget_get_target,$(1)) : MERGEDFILE := $(call gb_SrsPartMergeTarget_get_target,$(1)) 108 $(call gb_SrsPartTarget_get_target,$(1)) : $(call gb_SrsPartMergeTarget_get_target,$(1)) 109 $(call gb_SrsPartMergeTarget_get_target,$(1)) : SDF := $(realpath $(gb_SrsPartMergeTarget_SDFLOCATION)$(dir $(1))localize.sdf) 110 $(call gb_SrsPartMergeTarget_get_target,$(1)) : $(realpath $(gb_SrsPartMergeTarget_SDFLOCATION)$(dir $(1))localize.sdf) 111 endif 112 113 endef 114 115 116 # SrsTarget class 117 118 gb_SrsTarget_DEFAULTDEFS := $(gb_GLOBALDEFS) 119 120 .PHONY : $(call gb_SrsTarget_get_clean_target,%) 121 $(call gb_SrsTarget_get_clean_target,%) : 122 $(call gb_Output_announce,$*,$(false),SRS,1) 123 -$(call gb_Helper_abbreviate_dirs,\ 124 rm -f $(call gb_SrsTarget_get_target,$*) \ 125 $(call gb_SrsTarget_get_dep_target,$*) \ 126 $(foreach part,$(PARTS),$(call gb_SrsPartTarget_get_target,$(part))) \ 127 $(foreach part,$(PARTS),$(call gb_SrsPartTarget_get_dep_target,$(part))) \ 128 $(foreach part,$(PARTS),$(call gb_SrsPartMergeTarget_get_target,$(part)))) 129 130 ifeq ($(gb_FULLDEPS),$(true)) 131 define gb_SrsTarget__command_dep 132 $(call gb_Output_announce,SRS:$(2),$(true),DEP,1) 133 $(call gb_Helper_abbreviate_dirs,\ 134 mkdir -p $(dir $(1)) && \ 135 cat $(3) > $(1)) 136 endef 137 endif 138 139 $(call gb_SrsTarget_get_target,%) : 140 $(call gb_SrsTarget__command_dep,$(call gb_SrsTarget_get_dep_target,$*),$*,$(foreach part,$(PARTS),$(call gb_SrsPartTarget_get_dep_target,$(part)))) 141 $(call gb_Output_announce,$*,$(true),SRS,1) 142 $(call gb_Helper_abbreviate_dirs,\ 143 mkdir -p $(dir $@) && \ 144 cat $^ > $@) 145 146 ifeq ($(gb_FULLDEPS),$(true)) 147 $(call gb_SrsTarget_get_dep_target,%) : 148 $(call gb_SrsTarget__command_dep,$@,$*,$^) 149 endif 150 151 define gb_SrsTarget_SrsTarget 152 $(call gb_SrsTarget_get_target,$(1)) : DEFS := $(gb_SrsTarget_DEFAULTDEFS) 153 $(call gb_SrsTarget_get_target,$(1)) : INCLUDE := $(SOLARINC) 154 $(call gb_SrsTarget_get_clean_target,$(1)) : PARTS := 155 $(call gb_SrsTarget_get_target,$(1)) : PARTS := 156 ifeq ($(gb_FULLDEPS),$(true)) 157 ifneq ($(wildcard $(call gb_SrsTarget_get_dep_target,$(1))),) 158 include $(call gb_SrsTarget_get_dep_target,$(1)) 159 else 160 $(firstword $(MAKEFILE_LIST)) : $(call gb_SrsTarget_get_dep_target,$(1)) 161 endif 162 endif 163 164 endef 165 166 define gb_SrsTarget_set_defs 167 $(call gb_SrsTarget_get_target,$(1)) : DEFS := $(2) 168 ifeq ($(gb_FULLDEPS),$(true)) 169 $(call gb_SrsTarget_get_dep_target,$(1)) : DEFS := $(2) 170 endif 171 172 endef 173 174 define gb_SrsTarget_set_include 175 $(call gb_SrsTarget_get_target,$(1)) : INCLUDE := $(2) 176 ifeq ($(gb_FULLDEPS),$(true)) 177 $(call gb_SrsTarget_get_dep_target,$(1)) : INCLUDE := $(2) 178 endif 179 180 endef 181 182 define gb_SrsTarget_add_file 183 ifeq ($(gb_FULLDEPS),$(true)) 184 $(call gb_SrsTarget_get_dep_target,$(1)) : $(call gb_SrsPartTarget_get_dep_target,$(2)) 185 endif 186 $(call gb_SrsPartTarget_SrsPartTarget,$(2)) 187 $(call gb_SrsTarget_get_target,$(1)) : $(call gb_SrsPartTarget_get_target,$(2)) 188 $(call gb_SrsTarget_get_clean_target,$(1)) : PARTS += $(2) 189 $(call gb_SrsTarget_get_target,$(1)) : PARTS += $(2) 190 191 endef 192 193 define gb_SrsTarget_add_files 194 $(foreach file,$(2),$(call gb_SrsTarget_add_file,$(1),$(file))) 195 196 endef 197 198 199 # ResTarget 200 201 gb_ResTarget_RSCTARGET := $(gb_SrsPartTarget_RSCTARGET) 202 gb_ResTarget_RSCCOMMAND := $(gb_SrsPartTarget_RSCCOMMAND) 203 gb_ResTarget_DEFIMAGESLOCATION := $(SRCDIR)/default_images/ 204 205 $(call gb_ResTarget_get_clean_target,%) : 206 $(call gb_Output_announce,$*,$(false),RES,2) 207 $(call gb_Helper_abbreviate_dirs,\ 208 rm -f $(call gb_ResTarget_get_target,$*) $(call gb_ResTarget_get_imagelist_target,$*) $(call gb_ResTarget_get_outdir_target,$*) $(call gb_ResTarget_get_outdir_imagelist_target,$*)) 209 210 $(call gb_ResTarget_get_target,%) : $(gb_Helper_MISCDUMMY) | $(gb_ResTarget_RSCTARGET) 211 $(call gb_Output_announce,$*,$(true),RES,2) 212 $(call gb_Helper_abbreviate_dirs_native,\ 213 mkdir -p $(dir $@) $(OUTDIR)/bin \ 214 $(dir $(call gb_ResTarget_get_imagelist_target,$*)) && \ 215 RESPONSEFILE=`$(gb_MKTEMP)` && \ 216 echo "-r -p \ 217 -lg$(LANGUAGE) \ 218 -fs=$@ \ 219 -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/$(LIBRARY)) \ 220 -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/imglst/$(LANGUAGE)) \ 221 -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/imglst) \ 222 -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/res/$(LANGUAGE)) \ 223 -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/res) \ 224 -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)) \ 225 -lip=$(gb_ResTarget_DEFIMAGESLOCATION)res/$(LANGUAGE) \ 226 -lip=$(gb_ResTarget_DEFIMAGESLOCATION)res \ 227 -subMODULE=$(dir $(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION))) \ 228 -subGLOBALRES=$(gb_ResTarget_DEFIMAGESLOCATION)res \ 229 -oil=$(dir $(call gb_ResTarget_get_imagelist_target,$*)) \ 230 $(filter-out $(gb_Helper_MISCDUMMY),$^)" > $${RESPONSEFILE} && \ 231 $(gb_ResTarget_RSCCOMMAND) @$${RESPONSEFILE} && \ 232 rm -f $${RESPONSEFILE}) 233 234 $(call gb_ResTarget_get_outdir_target,%) : 235 $(call gb_Helper_abbreviate_dirs,\ 236 $(call gb_Deliver_deliver,$<,$@) && \ 237 $(call gb_Deliver_deliver,$(dir $<)/$(notdir $(ILSTTARGET)),$(ILSTTARGET))) 238 239 define gb_ResTarget_ResTarget 240 $(call gb_ResTarget_get_target,$(1)) : LIBRARY = $(2) 241 $(call gb_ResTarget_get_target,$(1)) : LANGUAGE = $(3) 242 $(call gb_ResTarget_get_target,$(1)) : RESLOCATION = $(2) 243 $(call gb_AllLangResTarget_get_target,$(2)) : $(call gb_ResTarget_get_outdir_target,$(1)) 244 $(call gb_AllLangResTarget_get_clean_target,$(2)) : $(call gb_ResTarget_get_clean_target,$(1)) 245 $(call gb_ResTarget_get_imagelist_target,$(1)) : $(call gb_ResTarget_get_target,$(1)) 246 247 $(call gb_ResTarget_get_outdir_target,$(1)) : $(call gb_ResTarget_get_target,$(1)) 248 $(call gb_ResTarget_get_outdir_target,$(1)) : ILSTTARGET = $(call gb_ResTarget_get_outdir_imagelist_target,$(1)) 249 $(call gb_Deliver_add_deliverable,$(call gb_ResTarget_get_outdir_target,$(1)),$(call gb_ResTarget_get_target,$(1))) 250 $(call gb_Deliver_add_deliverable,$(call gb_ResTarget_get_outdir_imagelist_target,$(1)),$(call gb_ResTarget_get_imagelist_target,$(1))) 251 252 endef 253 254 define gb_ResTarget_add_file 255 $(call gb_ResTarget_get_target,$(1)) : $(2) 256 257 endef 258 259 define gb_ResTarget_add_one_srs 260 $(call gb_ResTarget_add_file,$(1),$(call gb_SrsTarget_get_target,$(2))) 261 $(call gb_ResTarget_get_clean_target,$(1)) : $(call gb_SrsTarget_get_clean_target,$(2)) 262 263 endef 264 265 define gb_ResTarget_add_files 266 $(foreach file,$(2),\ 267 $(call gb_ResTarget_add_file,$(1),$(file))) 268 269 endef 270 271 define gb_ResTarget_add_srs 272 $(foreach srs,$(2),\ 273 $(call gb_ResTarget_add_one_srs,$(1),$(srs))) 274 275 endef 276 277 define gb_ResTarget_set_reslocation 278 $(call gb_ResTarget_get_target,$(1)) : RESLOCATION = $(2) 279 280 endef 281 282 283 # AllLangResTarget 284 285 gb_AllLangResTarget_LANGS := en-US $(filter-out en-US,$(gb_WITH_LANG)) 286 287 define gb_AllLangResTarget_set_langs 288 gb_AllLangResTarget_LANGS := $(1) 289 endef 290 291 $(call gb_AllLangResTarget_get_clean_target,%) : 292 $(call gb_Helper_abbreviate_dirs,\ 293 rm -f $(call gb_AllLangResTarget_get_target,$*)) 294 295 $(call gb_AllLangResTarget_get_target,%) : 296 $(call gb_Helper_abbreviate_dirs,\ 297 mkdir -p $(dir $@) && touch $@) 298 299 define gb_AllLangResTarget_AllLangResTarget 300 $(foreach lang,$(gb_AllLangResTarget_LANGS),\ 301 $(call gb_ResTarget_ResTarget,$(1)$(lang),$(1),$(lang))) 302 $$(eval $$(call gb_Module_register_target,$(call gb_AllLangResTarget_get_target,$(1)),$(call gb_AllLangResTarget_get_clean_target,$(1)))) 303 304 endef 305 306 define gb_AllLangResTarget_add_one_srs 307 $(foreach lang,$(gb_AllLangResTarget_LANGS),\ 308 $(call gb_ResTarget_add_one_srs,$(1)$(lang),$(2))) 309 310 endef 311 312 define gb_AllLangResTarget_add_srs 313 $(foreach srs,$(2),\ 314 $(call gb_AllLangResTarget_add_one_srs,$(1),$(srs))) 315 316 endef 317 318 define gb_AllLangResTarget_set_reslocation 319 $(foreach lang,$(gb_AllLangResTarget_LANGS),\ 320 $(call gb_ResTarget_set_reslocation,$(1)$(lang),$(2))) 321 322 endef 323 324 # vim: set noet sw=4 ts=4: 325