Changeset 828 in kBuild
- Timestamp:
- Feb 3, 2007 2:26:03 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kBuild/footer.kmk
r827 r828 561 561 $(foreach sdk, $(_SDKS), $(eval $(value def_sdks_include_one))) 562 562 563 564 565 # 566 # 567 # Target lists - Pass 1 568 # 569 # This pass is for defining variables that might be referenced in 570 # properties of other targets. 571 # 572 # 573 574 # Don't do anything for fetch targets (yet). 575 576 ## 577 # Link prolog for Pass 1. 578 # 579 # @param $(target) Normalized target name. 580 # @param $(EXT) EXE,DLL,SYS,LIB. 581 # @param $(EXTPRE) HOST or nothing. 582 # @param $(definst) The default _INST value. 583 # @param $(tool_prefix) LD or AR. 584 # @param $(bld_trg_base_var) TARGET or PLATFORM. 585 define def_pass1_link_common 586 587 bld_type := $(firstword $($(target)_BLD_TYPE) $(BUILD_TYPE)) 588 bld_trg := $(firstword $($(target)_BLD_TRG) $(BUILD_$(bld_trg_base_var))) 589 bld_trg_arch:= $(firstword $($(target)_BLD_TRG_ARCH) $(BUILD_$(bld_trg_base_var)_ARCH)) 590 bld_trg_cpu := $(firstword $($(target)_BLD_TRG_CPU) $(BUILD_$(bld_trg_base_var)_CPU)) 591 592 tool := $(call _TARGET_TOOL,$(target),$(tool_prefix)) 593 outbase := $(call TARGET_BASE,$(target),$(target)) 594 ifndef PATH_$(target) 595 PATH_$(target) := $(patsubst %/,%,$(dir $(outbase))) 596 else ifneq ($(PATH_$(target)),$(patsubst %/,%,$(dir $(outbase)))) 597 $(error kBuild internal error: PATH_$(target)=$(PATH_$(target)) expected $(patsubst %/,%,$(dir $(outbase)))) 598 endif 599 ifeq ($(tool_prefix),AR) ## @todo fix this mess! 600 suff := $(firstword\ 601 $($(target)_$(EXT)SUFF.$(bld_trg).$(bld_trg_arch))\ 602 $($(target)_$(EXT)SUFF.$(bld_trg))\ 603 $($(target)_$(EXT)SUFF)\ 604 $(TOOL_$(tool)_$(tool_prefix)$(EXT)SUFF.$(bld_trg).$(bld_trg_arch))\ 605 $(TOOL_$(tool)_$(tool_prefix)$(EXT)SUFF.$(bld_trg))\ 606 $(TOOL_$(tool)_$(tool_prefix)$(EXT)SUFF)\ 607 $(SUFF_LIB)) 608 else 609 suff := $(firstword \ 610 $($(target)_$(EXT)SUFF) \ 611 $($(target)_$(EXT)SUFF) \ 612 $(TOOL_$(tool)_$(tool_prefix)$(EXT)SUFF) \ 613 $($(EXTPRE)SUFF_$(EXT))) 614 endif 615 out := $(outbase)$(suff) 616 617 # TARGET_* 618 TARGET_$(target) := $(out) 619 620 # INSTARGET_* 621 ifndef $(target)_NOINST 622 INSTARGET_$(target) := $(patsubst %/,%/$(notdir $(out)), \ 623 $(if $($(target)_INST), $(addprefix $(PATH_INS)/,$($(target)_INST)), $(definst)/)) 624 625 else # NOINST 626 INSTARGET_$(target) := 627 endif # NOINST 628 629 endef 630 631 632 # 633 # BLDPROGS (Pass 1) 634 # 635 define def_pass1_bldprog 636 # set NOINST if not forced installation before doing the usual stuff. 637 ifndef $(target)_INST 638 $(target)_NOINST := 1 639 endif 640 $(eval $(value def_pass1_link_common)) 641 endef 642 643 EXT := EXE 644 EXTPRE := HOST 645 definst := $(PATH_BIN) 646 tool_prefix := LD 647 bld_trg_base_var := PLATFORM 648 $(foreach target, $(BLDPROGS) $(BLDPROGS.$(BUILD_PLATFORM)) $(BLDPROGS.$(BUILD_PLATFORM).$(BUILD_PLATFORM_ARCH)), \ 649 $(eval $(value def_pass1_bldprog))) 650 651 652 # 653 # LIBRARIES (Pass 1) 654 # 655 EXT := LIB 656 EXTPRE := 657 definst := $(PATH_LIB) 658 tool_prefix := AR 659 bld_trg_base_var := TARGET 660 $(foreach target, $(LIBRARIES) $(LIBRARIES.$(BUILD_TARGET)) $(LIBRARIES.$(BUILD_TARGET).$(BUILD_TARGET_ARCH)), \ 661 $(eval $(value def_pass1_link_common))) 662 663 664 # 665 # DLLS (Pass 1) 666 # 667 EXT := DLL 668 EXTPRE := 669 definst := $(PATH_DLL) 670 tool_prefix := LD 671 bld_trg_base_var := TARGET 672 $(foreach target, $(DLLS) $(DLLS.$(BUILD_TARGET)) $(DLLS.$(BUILD_TARGET).$(BUILD_TARGET_ARCH)), \ 673 $(eval $(value def_pass1_link_common))) 674 675 676 # 677 # IMPORT LIBRARIES (Pass 1) 678 # 679 # - On OS/2 and windows these are libraries. 680 # - On other platforms they are fake DLLs. 681 # 682 ifeq ($(filter-out nt os2 win win64 win32,$(BUILD_TARGET)),) 683 EXT := LIB 684 EXTPRE := 685 definst := $(PATH_LIB) 686 tool_prefix := AR 687 bld_trg_base_var := TARGET 688 $(foreach target, $(IMPORT_LIBS) $(IMPORT_LIBS.$(BUILD_TARGET)) $(IMPORT_LIBS.$(BUILD_TARGET).$(BUILD_TARGET_ARCH)), \ 689 $(eval $(value def_pass1_lib))) 690 else 691 EXT := DLL 692 EXTPRE := 693 definst := $(PATH_DLL) 694 tool_prefix := LD 695 bld_trg_base_var := TARGET 696 $(foreach target, $(IMPORT_LIBS) $(IMPORT_LIBS.$(BUILD_TARGET)) $(IMPORT_LIBS.$(BUILD_TARGET).$(BUILD_TARGET_ARCH)), \ 697 $(eval $(value def_pass1_link_common))) 698 endif 699 700 701 # 702 # PROGRAMS (Pass 1) 703 # 704 EXT := EXE 705 EXTPRE := 706 definst := $(PATH_BIN) 707 tool_prefix := LD 708 bld_trg_base_var := TARGET 709 $(foreach target, $(PROGRAMS) $(PROGRAMS.$(BUILD_TARGET)) $(PROGRAMS.$(BUILD_TARGET).$(BUILD_TARGET_ARCH)), \ 710 $(eval $(value def_pass1_link_common))) 711 712 713 # 714 # SYSMODS (Pass 1) 715 # 716 EXT := SYS 717 EXTPRE := 718 definst := $(PATH_SYS) 719 tool_prefix := LD 720 bld_trg_base_var := TARGET 721 $(foreach target, $(SYSMODS) $(SYSMODS.$(BUILD_TARGET)) $(SYSMODS.$(BUILD_TARGET).$(BUILD_TARGET_ARCH)), \ 722 $(eval $(value def_pass1_link_common))) 723 724 725 # 726 # INSTALLS (Pass 1) 727 # Note! INSTARGET_* for INSTALLS aren't available until later. 728 # 729 define def_pass1_install 730 bld_type := $(firstword $($(target)_BLD_TYPE) $(BUILD_TYPE)) 731 bld_trg := $(firstword $($(target)_BLD_TRG) $(BUILD_TARGET)) 732 bld_trg_arch:= $(firstword $($(target)_BLD_TRG_ARCH) $(BUILD_TARGET_ARCH)) 733 bld_trg_cpu := $(firstword $($(target)_BLD_TRG_CPU) $(BUILD_TARGET_CPU)) 734 # TARGET_* 735 TARGET_$(target) := $(PATH_TARGET)/$(target).ins 736 # INSTARGET_ later. 737 endef 738 $(foreach target, $(INSTALLS) $(INSTALLS.$(BUILD_TARGET)) $(INSTALLS.$(BUILD_TARGET).$(BUILD_TARGET_ARCH)), \ 739 $(eval $(value def_pass1_install))) 740 741 742 743 744 # 745 # 746 # Target lists - Pass 2 747 # 748 # 563 749 564 750
Note:
See TracChangeset
for help on using the changeset viewer.