Changeset 1407 for trunk/kBuild/footer.kmk
- Timestamp:
- Mar 17, 2008, 9:24:04 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kBuild/footer.kmk
r1399 r1407 160 160 # @param $(src) Source (parent) object. 161 161 # @param $(trg) Target (child) object. 162 # @remark Not all properties has all the variations, but making the correct163 # exceptions will only complicate matters and probably not gain much speed.164 162 define def_inherit_one 165 163 ifdef $(src)_$(prop) 166 164 ifndef $(trg)_$(prop) 167 165 $(trg)_$(prop) = $($(src)_$(prop)) 168 #$ (warning d bg-inherit: $(trg)_$(prop) = $($(src)_$(prop)) )166 #$ (warning def_inherit_one: $(trg)_$(prop) = $($(src)_$(prop)) ) 169 167 endif 170 168 endif 171 169 endef # def_inherit_one 170 171 172 # EXPAND_BY = overriding 172 173 173 174 ## Inherit one template property in a non-accumulative manner. … … 175 176 # @param $(src) Source (parent) object. 176 177 # @param $(trg) Target (child) object. 177 # @remark Not all properties has all the variations, but making the correct 178 # exceptions will only complicate matters and probably not gain much speed. 179 # @todo Check how/if this differs from def_inherit_one. 180 define def_inherit_one_now 178 define def_inherit_one_overriding_now_l 181 179 ifdef $(src)_$(prop) 182 180 ifndef $(trg)_$(prop) 183 181 $(trg)_$(prop) := $($(src)_$(prop)) 184 #$ (warning d bg-inherit-now: $(trg)_$(prop) = $($(src)_$(prop)) )182 #$ (warning def_inherit_one_overriding_now_l: $(trg)_$(prop) = $($(src)_$(prop)) ) 185 183 endif 186 184 endif 187 endef # def_inherit_one_now 185 endef # def_inherit_one_overriding_now_l 186 187 ## @copydoc def_inherit_one_overriding_now_l 188 define def_inherit_one_overriding_now_r 189 ifdef $(src)_$(prop) 190 ifndef $(trg)_$(prop) 191 $(trg)_$(prop) := $($(src)_$(prop)) 192 #$ (warning def_inherit_one_overriding_now_r: $(trg)_$(prop) = $($(src)_$(prop)) ) 193 endif 194 endif 195 endef # def_inherit_one_overriding_now_r 188 196 189 197 ## Inherit one template property in a non-accumulative manner, deferred expansion. … … 192 200 # @param $(trg) Target 193 201 # @remark This define relies on double evaluation 194 define def_inherit_one_ deferred202 define def_inherit_one_overriding_deferred 195 203 ifdef $(src)_$(prop) 196 204 ifndef $(trg)_$(prop) 197 205 $(trg)_$(prop) = $$($(src)_$(prop)) 198 #$ (warning d bg-inherit-def: $(trg)_$(prop) = $($(src)_$(prop)) )206 #$ (warning def_inherit_one_overriding_deferred: $(trg)_$(prop) = $($(src)_$(prop)) ) 199 207 endif 200 208 endif 201 endef # def_inherit_one_deferred 209 endef # def_inherit_one_overriding_deferred 210 211 ## @copydoc def_inherit_one_overriding_deferred 212 define def_inherit_one_overriding_deferred_l 213 ifdef $(src)_$(prop) 214 ifndef $(trg)_$(prop) 215 $(trg)_$(prop) = $$($(src)_$(prop)) 216 #$ (warning def_inherit_one_overriding_deferred_l: $(trg)_$(prop) = $($(src)_$(prop)) ) 217 endif 218 endif 219 endef # def_inherit_one_overriding_deferred_l 220 221 ## @copydoc def_inherit_one_overriding_deferred 222 define def_inherit_one_overriding_deferred_r 223 ifdef $(src)_$(prop) 224 ifndef $(trg)_$(prop) 225 $(trg)_$(prop) = $$($(src)_$(prop)) 226 #$ (warning def_inherit_one_overriding_deferred_r: $(trg)_$(prop) = $($(src)_$(prop)) ) 227 endif 228 endif 229 endef # def_inherit_one_overriding_deferred_r 230 231 232 # EXPAND_BY = prepending 233 234 ## Inherit one template property in a prepending manner. 235 # @param $(prop) Property name 236 # @param $(src) Source (parent) object. 237 # @param $(trg) Target (child) object. 238 define def_inherit_one_prepending_now_l 239 ifdef $(src)_$(prop) 240 $(trg)_$(prop) := $(trg)_$(prop) $($(src)_$(prop)) 241 #$ (warning def_inherit_one_prepending_now_l: $(trg)_$(prop) = $($(trg)_$(prop)) ) 242 endif 243 endef # def_inherit_one_prepending_now_l 244 245 ## @copydoc def_inherit_one_prepending_now_l 246 define def_inherit_one_prepending_now_r 247 ifdef $(src)_$(prop) 248 $(trg)_$(prop) := $($(src)_$(prop)) $(trg)_$(prop) 249 #$ (warning def_inherit_one_prepending_now_r: $(trg)_$(prop) = $($(trg)_$(prop)) ) 250 endif 251 endef # def_inherit_one_prepending_now_r 252 253 ## Inherit one template property in a non-accumulative manner, deferred expansion. 254 # @param $(prop) Property name 255 # @param $(src) Source 256 # @param $(trg) Target 257 # @remark This define relies on double evaluation 258 define def_inherit_one_prepending_deferred 259 ifdef $(src)_$(prop) 260 ifndef $(trg)_$(prop) 261 $(trg)_$(prop) = $$($(src)_$(prop)) 262 #$ (warning def_inherit_one_prepending_deferred: $(trg)_$(prop) = $($(src)_$(prop)) ) 263 endif 264 endif 265 endef # def_inherit_one_prepending_deferred 266 267 ## Inherit one template property in a prepending manner, deferred expansion. 268 # @param $(prop) Property name 269 # @param $(src) Source (parent) object. 270 # @param $(trg) Target (child) object. 271 define def_inherit_one_prepending_deferred_l 272 ifdef $(src)_$(prop) 273 $(trg)_$(prop) <= $$($(src)_$(prop)) 274 #$ (warning def_inherit_one_prepending_deferred_l: $(trg)_$(prop) = $($(trg)_$(prop)) ) 275 endif 276 endef # def_inherit_one_prepending_deferred_l 277 278 ## @copydoc def_inherit_one_prepending_deferred_l 279 define def_inherit_one_prepending_deferred_r 280 ifdef $(src)_$(prop) 281 $(trg)_$(prop) += $$($(src)_$(prop)) 282 #$ (warning def_inherit_one_prepending_deferred_r: $(trg)_$(prop) = $($(trg)_$(prop)) ) 283 endif 284 endef # def_inherit_one_prepending_deferred_r 285 286 287 # EXPAND_BY = appending 288 289 ## Inherit one template property in a appending manner. 290 # @param $(prop) Property name 291 # @param $(src) Source (parent) object. 292 # @param $(trg) Target (child) object. 293 define def_inherit_one_appending_now_l 294 ifdef $(src)_$(prop) 295 $(trg)_$(prop) := $($(src)_$(prop)) $(trg)_$(prop) 296 #$ (warning def_inherit_one_appending_now_l: $(trg)_$(prop) = $($(trg)_$(prop)) ) 297 endif 298 endef # def_inherit_one_appending_now_l 299 300 ## @copydoc def_inherit_one_appending_now_l 301 define def_inherit_one_appending_now_r 302 ifdef $(src)_$(prop) 303 $(trg)_$(prop) := $(trg)_$(prop) $($(src)_$(prop)) 304 #$ (warning def_inherit_one_appending_now_r: $(trg)_$(prop) = $($(trg)_$(prop)) ) 305 endif 306 endef # def_inherit_one_appending_now_r 307 308 ## Inherit one template property in a non-accumulative manner, deferred expansion. 309 # @param $(prop) Property name 310 # @param $(src) Source 311 # @param $(trg) Target 312 # @remark This define relies on double evaluation 313 define def_inherit_one_appending_deferred 314 ifdef $(src)_$(prop) 315 ifndef $(trg)_$(prop) 316 $(trg)_$(prop) = $$($(src)_$(prop)) 317 #$ (warning def_inherit_one_appending_deferred: $(trg)_$(prop) = $($(src)_$(prop)) ) 318 endif 319 endif 320 endef # def_inherit_one_appending_deferred 321 322 ## Inherit one template property in a appending manner, deferred expansion. 323 # @param $(prop) Property name 324 # @param $(src) Source (parent) object. 325 # @param $(trg) Target (child) object. 326 define def_inherit_one_appending_deferred_l 327 ifdef $(src)_$(prop) 328 $(trg)_$(prop) += $$($(src)_$(prop)) 329 #$ (warning def_inherit_one_appending_deferred_l: $(trg)_$(prop) = $($(trg)_$(prop)) ) 330 endif 331 endef # def_inherit_one_appending_deferred_l 332 333 ## @copydoc def_inherit_one_appending_deferred_l 334 define def_inherit_one_appending_deferred_r 335 ifdef $(src)_$(prop) 336 $(trg)_$(prop) <= $$($(src)_$(prop)) 337 #$ (warning def_inherit_one_appending_deferred_r: $(trg)_$(prop) = $($(trg)_$(prop)) ) 338 endif 339 endef # def_inherit_one_appending_deferred_r 340 341 202 342 203 343 ## Generic inheritance for use with targets templates and tools. 204 # @param trg Object to consider for inheriting. 205 # @param src_prefix What to prefix the value found in EXTENDS with to get the object. 206 # @param properties List of the properties with straight expansion. 207 # @param properties_now List of the properties with immediate expansion. 208 # @param properties_deferred List of the properties with deferred expansion (e.g. function). 344 # @param trg Object to consider for inheriting. 345 # @param src_prefix What to prefix the value found in EXTENDS with to get the object. 346 # @param properties List of the properties with straight expansion. 347 # @param properties_now_l List of the properties with immediate expansion, accumulating on the left side. 348 # @param properties_now_r List of the properties with immediate expansion, accumulating on the right side. 349 # @param properties_deferred List of the properties with deferred expansion (e.g. function), non-accumulative . 350 # @param properties_deferred_l List of the properties with deferred expansion (e.g. function), accumulating on the left side. 351 # @param properties_deferred_r List of the properties with deferred expansion (e.g. function), accumulating on the right side. 209 352 define def_inherit 210 353 src := $(strip $($(trg)_EXTENDS)) … … 225 368 endif 226 369 227 # Inherit the properties and mark the trg done. 370 # Get & check EXTENDS_BY. 371 by = $(strip $($(trg)_EXTENDS_BY)) 372 ifeq ($(by),) 373 by = overriding 374 else ifn1of ($(by), overriding appending prepending) 375 $(error kBuild: Invalid EXTENDS_BY value '$(by)' on '$(trg)'!) 376 endif 377 378 # Inherit the properties. 228 379 #$ (warning def_inherit: trg=$(trg) src=$(src)) 229 $(foreach prop, $(properties), $(eval $(def_inherit_one))) 230 $(foreach prop, $(properties_now), $(eval $(def_inherit_one_now))) 231 $(foreach prop, $(properties_deferred), $(eval $(def_inherit_one_deferred))) 380 $(foreach prop, $(properties), $(eval $(def_inherit_one))) 381 $(foreach prop, $(properties_now_l), $(eval $(def_inherit_one_$(by)_now_l))) 382 $(foreach prop, $(properties_now_r), $(eval $(def_inherit_one_$(by)_now_r))) 383 $(foreach prop, $(properties_deferred), $(eval $(def_inherit_one_$(by)_deferred))) 384 $(foreach prop, $(properties_deferred_l), $(eval $(def_inherit_one_$(by)_deferred_l))) 385 $(foreach prop, $(properties_deferred_r), $(eval $(def_inherit_one_$(by)_deferred_r))) 386 387 # Mark the target as done. 232 388 $(trg)_EXTENDS_STATUS_ := 42 233 389 else … … 241 397 242 398 243 ## 399 ## 244 400 # Function for $(call)'ing. 245 # @param 1 trgs List of object to consider for inheriting. 246 # @param 2 src_prefix What to prefix the value found in EXTENDS with to get the object. 247 # @param 3 properties List of the properties with straight expansion. 248 # @param 4 properties_now List of the properties with immediate expansion. 249 # @param 5 properties_deferred List of the properties with deferred expansion (e.g. function). 401 # @param 1 trg Object to consider for inheriting. 402 # @param 2 src_prefix What to prefix the value found in EXTENDS with to get the object. 403 # @param 3 properties List of the properties with straight expansion. 404 # @param 4 properties_now_l List of the properties with immediate expansion, accumulating on the left side. 405 # @param 5 properties_now_r List of the properties with immediate expansion, accumulating on the right side. 406 # @param 6 properties_deferred List of the properties with deferred expansion (e.g. function), non-accumulative . 407 # @param 7 properties_deferred_l List of the properties with deferred expansion (e.g. function), accumulating on the left side. 408 # @param 8 properties_deferred_r List of the properties with deferred expansion (e.g. function), accumulating on the right side. 250 409 define fn_inherit 251 src_prefix := $(2) 252 properties := $(3) 253 properties_now := $(4) 254 properties_deferred := $(5) 410 src_prefix := $(2) 411 properties := $(3) 412 properties_now_l := $(4) 413 properties_now_r := $(5) 414 properties_deferred := $(6) 415 properties_deferred_l := $(7) 416 properties_deferred_r := $(8) 255 417 $(foreach trg, $(1),$(eval $(value def_inherit))) 256 418 endef … … 347 509 348 510 src_prefix := 511 properties_deferred_l := 512 properties_deferred_r := 513 349 514 ## combines the specified properties $(1) with the $(_KEYWORDS). 350 515 _COMB_KEY_PROP = $(1) $(foreach keyword,$(_KEYWORDS), $(addsuffix .$(keyword), $(1))) … … 352 517 # Fetches. 353 518 properties := $(call _COMB_KEY_PROP,$(PROPS_FETCHES_SINGLE)) 354 properties_now := $(call _COMB_KEY_PROP,$(PROPS_FETCHES_ACCUMULATE_R) $(PROPS_FETCHES_ACCUMULATE_L)) 519 properties_now_l := $(call _COMB_KEY_PROP,$(PROPS_FETCHES_ACCUMULATE_L)) 520 properties_now_r := $(call _COMB_KEY_PROP,$(PROPS_FETCHES_ACCUMULATE_R)) 355 521 properties_deferred := $(call _COMB_KEY_PROP,$(PROPS_FETCHES_DEFERRED)) 356 522 $(foreach trg, $(_ALL_FETCHES),$(eval $(value def_inherit))) … … 358 524 ## Patches. - not implemented yet. 359 525 #properties := $(call _COMB_KEY_PROP,$(PROPS_PATCHES_SINGLE)) 360 #properties_now := $(call _COMB_KEY_PROP,$(PROPS_PATCHES_ACCUMULATE_R) $(PROPS_PATCHES_ACCUMULATE_L)) 526 #properties_now_l := $(call _COMB_KEY_PROP,$(PROPS_PATCHES_ACCUMULATE_L)) 527 #properties_now_r := $(call _COMB_KEY_PROP,$(PROPS_PATCHES_ACCUMULATE_R)) 361 528 #properties_deferred := $(call _COMB_KEY_PROP,$(PROPS_PATCHES_DEFERRED)) 362 529 #$(foreach trg, $(_ALL_PATCHES),$(eval $(value def_inherit))) … … 364 531 # Programs and build programs. 365 532 properties := $(call _COMB_KEY_PROP,$(PROPS_PROGRAMS_SINGLE)) 366 properties_now := $(call _COMB_KEY_PROP,$(PROPS_PROGRAMS_ACCUMULATE_R) $(PROPS_PROGRAMS_ACCUMULATE_L)) 533 properties_now_l := $(call _COMB_KEY_PROP,$(PROPS_PROGRAMS_ACCUMULATE_L)) 534 properties_now_r := $(call _COMB_KEY_PROP,$(PROPS_PROGRAMS_ACCUMULATE_R)) 367 535 properties_deferred := $(call _COMB_KEY_PROP,$(PROPS_PROGRAMS_DEFERRED)) 368 536 $(foreach trg, $(_ALL_BLDPROGS) $(_ALL_PROGRAMS),$(eval $(value def_inherit))) … … 370 538 # Libraries and import libraries. 371 539 properties := $(call _COMB_KEY_PROP,$(PROPS_LIBRARIES_SINGLE)) 372 properties_now := $(call _COMB_KEY_PROP,$(PROPS_LIBRARIES_ACCUMULATE_R) $(PROPS_LIBRARIES_ACCUMULATE_L)) 540 properties_now_l := $(call _COMB_KEY_PROP,$(PROPS_LIBRARIES_ACCUMULATE_L)) 541 properties_now_r := $(call _COMB_KEY_PROP,$(PROPS_LIBRARIES_ACCUMULATE_R)) 373 542 properties_deferred := $(call _COMB_KEY_PROP,$(PROPS_LIBRARIES_DEFERRED)) 374 if eq ($(filter-out nt os2 win win64 win32,$(BUILD_TARGET)),)543 if1of ($(BUILD_TARGET), nt os2 win) 375 544 $(foreach trg, $(_ALL_LIBRARIES) $(_ALL_IMPORT_LIBS),$(eval $(value def_inherit))) 376 545 else … … 380 549 # DLLs. 381 550 properties := $(call _COMB_KEY_PROP,$(PROPS_DLLS_SINGLE)) 382 properties_now := $(call _COMB_KEY_PROP,$(PROPS_DLLS_ACCUMULATE_R) $(PROPS_DLLS_ACCUMULATE_L)) 551 properties_now_l := $(call _COMB_KEY_PROP,$(PROPS_DLLS_ACCUMULATE_L)) 552 properties_now_r := $(call _COMB_KEY_PROP,$(PROPS_DLLS_ACCUMULATE_R)) 383 553 properties_deferred := $(call _COMB_KEY_PROP,$(PROPS_DLLS_DEFERRED)) 384 if eq ($(filter-out nt os2 win win64 win32,$(BUILD_TARGET)),)554 if1of ($(BUILD_TARGET), nt os2 win) 385 555 $(foreach trg, $(_ALL_DLLS),$(eval $(value def_inherit))) 386 556 else … … 390 560 # System modules. 391 561 properties := $(call _COMB_KEY_PROP,$(PROPS_SYSMODS_SINGLE)) 392 properties_now := $(call _COMB_KEY_PROP,$(PROPS_SYSMODS_ACCUMULATE_R) $(PROPS_SYSMODS_ACCUMULATE_L)) 562 properties_now_l := $(call _COMB_KEY_PROP,$(PROPS_SYSMODS_ACCUMULATE_L)) 563 properties_now_r := $(call _COMB_KEY_PROP,$(PROPS_SYSMODS_ACCUMULATE_R)) 393 564 properties_deferred := $(call _COMB_KEY_PROP,$(PROPS_SYSMODS_DEFERRED)) 394 565 $(foreach trg, $(_ALL_SYSMODS),$(eval $(value def_inherit))) … … 396 567 # Installs. 397 568 properties := $(call _COMB_KEY_PROP,$(PROPS_INSTALLS_SINGLE)) 398 properties_now := $(call _COMB_KEY_PROP,$(PROPS_INSTALLS_ACCUMULATE_R) $(PROPS_INSTALLS_ACCUMULATE_L)) 569 properties_now_l := $(call _COMB_KEY_PROP,$(PROPS_INSTALLS_ACCUMULATE_L)) 570 properties_now_r := $(call _COMB_KEY_PROP,$(PROPS_INSTALLS_ACCUMULATE_R)) 399 571 properties_deferred := $(call _COMB_KEY_PROP,$(PROPS_INSTALLS_DEFERRED)) 400 572 $(foreach trg, $(_ALL_INSTALLS),$(eval $(value def_inherit))) … … 420 592 src_prefix := TEMPLATE_ 421 593 properties := 422 properties_now := 423 properties_deferred := $(call _COMB_KEY_PROP,$(PROPS_ALL)) 594 properties_now_l := 595 properties_now_r := 596 properties_deferred := $(call _COMB_KEY_PROP,$(PROPS_SINGLE) $(PROPS_DEFERRED)) 597 properties_deferred_l := $(call _COMB_KEY_PROP,$(PROPS_ACCUMULATE_L)) 598 properties_deferred_r := $(call _COMB_KEY_PROP,$(PROPS_ACCUMULATE_R)) 424 599 $(foreach trg, $(addprefix TEMPLATE_,$(_TEMPLATES)),$(eval $(value def_inherit))) 425 426 # done.427 src_prefix :=428 properties :=429 properties_now :=430 properties_deferred :=431 600 432 601 ifdef KBUILD_PROFILE_SELF … … 435 604 _KBUILD_TS_PREV := $(_KBUILD_TS_NOW) 436 605 endif 606 607 608 # done inheriting. 609 src_prefix := 610 properties := 611 properties_now_l := 612 properties_now_r := 613 properties_deferred := 614 properties_deferred_l := 615 properties_deferred_r := 437 616 438 617
Note:
See TracChangeset
for help on using the changeset viewer.