512 endef |
512 endef |
513 |
513 |
514 # Determine what object files will be linked by using the source files. |
514 # Determine what object files will be linked by using the source files. |
515 CPPFILES_LINKOBJECTS:=$(call mapcpp2object,$(CPPFILES)) |
515 CPPFILES_LINKOBJECTS:=$(call mapcpp2object,$(CPPFILES)) |
516 CFILES_LINKOBJECTS:=$(call mapc2object,$(CFILES)) |
516 CFILES_LINKOBJECTS:=$(call mapc2object,$(CFILES)) |
517 ifeq ($(TRANSFORM_CIA),1) |
517 ifeq ($(TRANSFORM_CIA),1) |
518 CIAFILES_LINKOBJECTS:=$(patsubst %_.cpp,%_.o,$(CIA_CPPFILES)) |
518 CIAFILES_LINKOBJECTS:=$(patsubst %_.cpp,%_.o,$(CIA_CPPFILES)) |
519 else |
519 else |
520 CIAFILES_LINKOBJECTS:=$(call mapcia2object,$(CIAFILES)) |
520 CIAFILES_LINKOBJECTS:=$(call mapcia2object,$(CIAFILES)) |
521 endif |
521 endif |
522 ASMFILES_LINKOBJECTS:=$(call mapasm2object,$(ASMFILES)) |
522 ASMFILES_LINKOBJECTS:=$(call mapasm2object,$(ASMFILES)) |
549 # be shorter than the maximum allowed by windows. |
549 # be shorter than the maximum allowed by windows. |
550 define groupin10 |
550 define groupin10 |
551 $(if $1,@echo -e $(foreach L,$(wordlist 1,10,$1),"$(L)\\n") >>$(VIAFILE),) |
551 $(if $1,@echo -e $(foreach L,$(wordlist 1,10,$1),"$(L)\\n") >>$(VIAFILE),) |
552 $(if $1,$(call groupin10,$(wordlist 11,$(words $1),$1)),@true) |
552 $(if $1,$(call groupin10,$(wordlist 11,$(words $1),$1)),@true) |
553 endef |
553 endef |
|
554 |
|
555 ################################################ |
|
556 ## ARMFPU postlinker option |
|
557 # |
|
558 POSTLINKER_FPU:=$(patsubst $(ARMFPU)>%,%,$(filter $(ARMFPU)>%,$(POSTLINKER_FPU_MAPPING))) |
|
559 POSTLINKER_FPU:=$(if $(POSTLINKER_FPU),$(POSTLINKER_FPU),$(POSTLINKER_FPU_DEFAULT)) |
554 |
560 |
555 ################################################ |
561 ################################################ |
556 |
562 |
557 |
563 |
558 ## Link-type selection: |
564 ## Link-type selection: |
652 $(ELF2E32) \ |
658 $(ELF2E32) \ |
653 --sid=0x$(if $(SID),$(SID),$(if $(UID3),$(UID3),0)) \ |
659 --sid=0x$(if $(SID),$(SID),$(if $(UID3),$(UID3),0)) \ |
654 --version=$(VERSION) \ |
660 --version=$(VERSION) \ |
655 --capability=$(FINAL_CAPABILITIES) \ |
661 --capability=$(FINAL_CAPABILITIES) \ |
656 --linkas=$(call dblquote,$(LINKASVERSIONED)) \ |
662 --linkas=$(call dblquote,$(LINKASVERSIONED)) \ |
657 --fpu=$(if $(ARMFPU),$(ARMFPU),$(POSTLINKER_FPU_DEFAULT)) \ |
663 --fpu=$(POSTLINKER_FPU) \ |
658 --targettype=$(POSTLINKTARGETTYPE) \ |
664 --targettype=$(POSTLINKTARGETTYPE) \ |
659 --output=$$(call dblquote,$$@) \ |
665 --output=$$(call dblquote,$$@) \ |
660 --elfinput=$(call dblquote,$(LINK_TARGET)) \ |
666 --elfinput=$(call dblquote,$(LINK_TARGET)) \ |
661 $(if $(UID1),--uid1=0x$(UID1),) \ |
667 $(if $(UID1),--uid1=0x$(UID1),) \ |
662 $(if $(UID2),--uid2=0x$(UID2),) \ |
668 $(if $(UID2),--uid2=0x$(UID2),) \ |
777 |
791 |
778 $(eval DEPENDFILENAME:=$(1).d) |
792 $(eval DEPENDFILENAME:=$(1).d) |
779 $(eval DEPENDFILE:=$(wildcard $(DEPENDFILENAME))) |
793 $(eval DEPENDFILE:=$(wildcard $(DEPENDFILENAME))) |
780 |
794 |
781 # $4 is for language specific options (e.g. C++ vs C) |
795 # $4 is for language specific options (e.g. C++ vs C) |
782 $(1): $(2) $(PROJECT_META) $(if $(MULTIFILE_ENABLED),,$(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT)) $(if $(LINKERFEEDBACK_STAGE2),$(FEEDBACKFILE),) | $(if $(USE_TRACE_COMPILER),$(TRACE_MARKER),) |
796 $(1): $(2) $(PROJECT_META) $(if $(MULTIFILE_ENABLED),,$(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT)) $(if $(LINKERFEEDBACK_STAGE2),$(FEEDBACKFILE),) | $(TRACE_THISCOMPONENT_ALLRULE) |
783 $(call startrule,compile,,$(2)) \ |
797 $(call startrule,compile,,$(2)) \ |
784 $(if $(PERTURBSTARTTIME), $(RANSLEEP) $(PERTURBMSECS) ;,) \ |
798 $(if $(PERTURBSTARTTIME), $(RANSLEEP) $(PERTURBMSECS) ;,) \ |
785 $(if $(MULTIFILE_ENABLED), echo $(2) $(3) > $(MULTIFILE_VIAFILE) ;,) \ |
799 $(if $(MULTIFILE_ENABLED), echo $(2) $(3) > $(MULTIFILE_VIAFILE) ;,) \ |
786 $(CC) $(LICENSERETRY_OPTION) \ |
800 $(CC) $(LICENSERETRY_OPTION) \ |
787 $(CC_CORE_ARGS) \ |
801 $(CC_CORE_ARGS) \ |
792 $(if $(PREINCLUDE),$(PREINCLUDE_OPTION) ,)$(call concat, $(PREINCLUDE_OPTION) ,$(call dblquote,$(PREINCLUDE)))\ |
806 $(if $(PREINCLUDE),$(PREINCLUDE_OPTION) ,)$(call concat, $(PREINCLUDE_OPTION) ,$(call dblquote,$(PREINCLUDE)))\ |
793 $(if $(SET_ARMINC),$(if $(RVCTINC),$(COMPILER_SYSTEM_INCLUDE_OPTION)$(call dblquote,$(RVCTINC)),),) \ |
807 $(if $(SET_ARMINC),$(if $(RVCTINC),$(COMPILER_SYSTEM_INCLUDE_OPTION)$(call dblquote,$(RVCTINC)),),) \ |
794 $(COMPILER_SYSTEM_INCLUDE_OPTION)$$(call dblquote,$$(<D)) \ |
808 $(COMPILER_SYSTEM_INCLUDE_OPTION)$$(call dblquote,$$(<D)) \ |
795 $(if $(USERINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(USERINCLUDE))) \ |
809 $(if $(USERINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(USERINCLUDE))) \ |
796 $(if $(SYSTEMINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(SYSTEMINCLUDE))) \ |
810 $(if $(SYSTEMINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(SYSTEMINCLUDE))) \ |
797 $(if $(NOHIDEALL),--no_hide_all,) \ |
811 $(if $(NOHIDEALL),$(COMPILER_NO_HIDE_ALL_OPTION),) \ |
798 $(if $(NO_DEPEND_GENERATE),,$(DEPEND_OPTION) $(call dblquote,$(1).d)) \ |
812 $(if $(NO_DEPEND_GENERATE),,$(DEPEND_OPTION) $(call dblquote,$(1).d)) \ |
799 $(if $(LINKERFEEDBACK_STAGE2),$(FEEDBACK_OPTION)$(call dblquote,$(FEEDBACKFILE))) \ |
813 $(if $(LINKERFEEDBACK_STAGE2),$(FEEDBACK_OPTION)$(call dblquote,$(FEEDBACKFILE))) \ |
800 $(if $(MULTIFILE_ENABLED),--multifile $(OUTPUT_OPTION) $(MULTIFILEOBJECT) \ |
814 $(if $(MULTIFILE_ENABLED),--multifile $(OUTPUT_OPTION) $(MULTIFILEOBJECT) \ |
801 --via $$(call dblquote, $(MULTIFILE_VIAFILE)),$(OUTPUT_OPTION) $$@ $$(call dblquote, $$<)) $(if $(USE_RVCT22_DELETE_WORKAROUND),$(RVCT22_DELETE_WORKAROUND)) \ |
815 --via $$(call dblquote, $(MULTIFILE_VIAFILE)),$(OUTPUT_OPTION) $$@ $$(call dblquote, $$<)) $(if $(USE_RVCT22_DELETE_WORKAROUND),$(RVCT22_DELETE_WORKAROUND)) \ |
802 $(call endrule,compile) |
816 $(call endrule,compile) |
854 $(if $(PREINCLUDE),$(PREINCLUDE_OPTION) ,)$(call concat, $(PREINCLUDE_OPTION) ,$(call dblquote,$(PREINCLUDE)))\ |
868 $(if $(PREINCLUDE),$(PREINCLUDE_OPTION) ,)$(call concat, $(PREINCLUDE_OPTION) ,$(call dblquote,$(PREINCLUDE)))\ |
855 $(if $(SET_ARMINC),$(if $(RVCTINC),$(COMPILER_SYSTEM_INCLUDE_OPTION)$(call dblquote,$(RVCTINC)),),) \ |
869 $(if $(SET_ARMINC),$(if $(RVCTINC),$(COMPILER_SYSTEM_INCLUDE_OPTION)$(call dblquote,$(RVCTINC)),),) \ |
856 $(COMPILER_SYSTEM_INCLUDE_OPTION)$$(call dblquote,$$(<D)) \ |
870 $(COMPILER_SYSTEM_INCLUDE_OPTION)$$(call dblquote,$$(<D)) \ |
857 $(if $(USERINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(USERINCLUDE))) \ |
871 $(if $(USERINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(USERINCLUDE))) \ |
858 $(if $(SYSTEMINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(SYSTEMINCLUDE))) \ |
872 $(if $(SYSTEMINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(SYSTEMINCLUDE))) \ |
859 $(if $(NOHIDEALL),--no_hide_all,) \ |
873 $(if $(NOHIDEALL),$(COMPILER_NO_HIDE_ALL_OPTION),) \ |
860 $$(call dblquote, $$<) $(OUTPUT_OPTION) $$(@) $(if $(USE_RVCT22_DELETE_WORKAROUND),$(RVCT22_DELETE_WORKAROUND)) \ |
874 $$(call dblquote, $$<) $(OUTPUT_OPTION) $$(@) $(if $(USE_RVCT22_DELETE_WORKAROUND),$(RVCT22_DELETE_WORKAROUND)) \ |
861 $(call endrule,e32cpponly) |
875 $(call endrule,e32cpponly) |
862 |
876 |
863 CLEANTARGETS:=$$(CLEANTARGETS) $(CPPONLYTARGET) |
877 CLEANTARGETS:=$$(CLEANTARGETS) $(CPPONLYTARGET) |
864 endef |
878 endef |
888 $(if $(PREINCLUDE),$(PREINCLUDE_OPTION) ,)$(call concat, $(PREINCLUDE_OPTION) ,$(call dblquote,$(PREINCLUDE)))\ |
902 $(if $(PREINCLUDE),$(PREINCLUDE_OPTION) ,)$(call concat, $(PREINCLUDE_OPTION) ,$(call dblquote,$(PREINCLUDE)))\ |
889 $(if $(SET_ARMINC),$(if $(RVCTINC),$(COMPILER_SYSTEM_INCLUDE_OPTION)$(call dblquote,$(RVCTINC)),),) \ |
903 $(if $(SET_ARMINC),$(if $(RVCTINC),$(COMPILER_SYSTEM_INCLUDE_OPTION)$(call dblquote,$(RVCTINC)),),) \ |
890 $(COMPILER_SYSTEM_INCLUDE_OPTION)$$(call dblquote,$$(<D)) \ |
904 $(COMPILER_SYSTEM_INCLUDE_OPTION)$$(call dblquote,$$(<D)) \ |
891 $(if $(USERINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(USERINCLUDE))) \ |
905 $(if $(USERINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(USERINCLUDE))) \ |
892 $(if $(SYSTEMINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(SYSTEMINCLUDE))) \ |
906 $(if $(SYSTEMINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(SYSTEMINCLUDE))) \ |
893 $(if $(NOHIDEALL),--no_hide_all,) \ |
907 $(if $(NOHIDEALL),$(COMPILER_NO_HIDE_ALL_OPTION),) \ |
894 $(if $(NO_DEPEND_GENERATE),,$(DEPEND_OPTION) $(call dblquote,$(DEPENDFILENAME))) \ |
908 $(if $(NO_DEPEND_GENERATE),,$(DEPEND_OPTION) $(call dblquote,$(DEPENDFILENAME))) \ |
895 $$(call dblquote, $$<) $(OUTPUT_OPTION) $$(@) $(if $(USE_RVCT22_DELETE_WORKAROUND),$(RVCT22_DELETE_WORKAROUND)) \ |
909 $$(call dblquote, $$<) $(OUTPUT_OPTION) $$(@) $(if $(USE_RVCT22_DELETE_WORKAROUND),$(RVCT22_DELETE_WORKAROUND)) \ |
896 $(call endrule,e32listing) |
910 $(call endrule,e32listing) |
897 |
911 |
898 CLEANTARGETS:=$$(CLEANTARGETS) $(LISTINGTARGET) |
912 CLEANTARGETS:=$$(CLEANTARGETS) $(LISTINGTARGET) |
1177 $(ALLTARGET)::ROMFILE |
1191 $(ALLTARGET)::ROMFILE |
1178 ROMFILE:: |
1192 ROMFILE:: |
1179 $(call startrule,rombuild) \ |
1193 $(call startrule,rombuild) \ |
1180 $(GNUMKDIR) -p $(ROMDIR) \ |
1194 $(GNUMKDIR) -p $(ROMDIR) \ |
1181 $(if $(ROMFILE_CREATED_$(TOBLDINF)),,&& echo -e "// $(subst $(EPOC_ROOT)/,,$(ROMFILENAME))\n//\n$(DATATEXT)" > $(ROMFILENAME)) \ |
1195 $(if $(ROMFILE_CREATED_$(TOBLDINF)),,&& echo -e "// $(subst $(EPOC_ROOT)/,,$(ROMFILENAME))\n//\n$(DATATEXT)" > $(ROMFILENAME)) \ |
1182 $(if $(BUILDROMTARGET),&& echo "$(ROMFILETYPE)=/epoc32/release/##$(ABIDIR)##/##BUILD##/$(TARGET).$(REQUESTEDTARGETEXT) $(1)$(ROMDECORATIONS)" >> $(ROMFILENAME)) \ |
1196 $(if $(BUILDROMTARGET),&& echo "$(ROMFILETYPE)=/epoc32/release/##$(ABIDIR)##/##BUILD##/$(TARGET)$(if $(EXPLICITVERSION),{$(VERSIONHEX)},).$(REQUESTEDTARGETEXT) $(1)$(ROMDECORATIONS)" >> $(ROMFILENAME)) \ |
1183 $(if $(RAMTARGET),&& echo "$(ROMFILETYPE_RAM)=/epoc32/release/##$(ABIDIR)##/##BUILD##/$(TARGET).$(REQUESTEDTARGETEXT) $(ROMPATH_RAM)$(ROMFILE_RAM)$(ROMDECORATIONS_RAM)" >> $(ROMFILENAME)) \ |
1197 $(if $(RAMTARGET),&& echo "$(ROMFILETYPE_RAM)=/epoc32/release/##$(ABIDIR)##/##BUILD##/$(TARGET)$(if $(EXPLICITVERSION),{$(VERSIONHEX)},).$(REQUESTEDTARGETEXT) $(ROMPATH_RAM)$(ROMFILE_RAM)$(ROMDECORATIONS_RAM)" >> $(ROMFILENAME)) \ |
1184 $(call endrule,buildromfiletarget) |
1198 $(call endrule,buildromfiletarget) |
1185 endef |
1199 endef |
1186 |
1200 |
1187 # When VARIANTTYPE changes, romfile is finished, |
1201 # When VARIANTTYPE changes, romfile is finished, |
1188 # apart from if this is a new component...... |
1202 # apart from if this is a new component...... |