sbsv2/raptor/lib/flm/e32postlink.mk
branchwip
changeset 9 b211d87c390a
parent 3 e1eecf4d390d
child 39 164b0547f8a5
equal deleted inserted replaced
8:34d87ffcc373 9:b211d87c390a
    18 
    18 
    19 # Interface
    19 # Interface
    20 #
    20 #
    21 #  Metadata supplied (or deduced from)
    21 #  Metadata supplied (or deduced from)
    22 #
    22 #
    23 #   BYTEPAIRCOMPRESS
    23 #   ARMFPU
       
    24 #   BYTEPAIRCOMPRESSTARGET
    24 #   CAPABILITY
    25 #   CAPABILITY
    25 #   DEBUGGABLE                     Can be "udeb" or "urel" or "udeb urel" or ""
    26 #   COMPRESSTARGET                    Not directly referenced, at least with the current approach to compression keywords
       
    27 #   DEBUGGABLE                        Can be "udeb" or "urel" or "udeb urel" or ""
    26 #   E32TARGET
    28 #   E32TARGET
    27 #   EPOCALLOWDLLDATA
    29 #   EPOCALLOWDLLDATA
    28 #   EPOCFIXEDPROCESS
    30 #   EPOCFIXEDPROCESS
    29 #   EPOCHEAPSIZEMAX
    31 #   EPOCHEAPSIZEMAX
    30 #   EPOCHEAPSIZEMIN
    32 #   EPOCHEAPSIZEMIN
    31 #   EPOCPROCESSPRIORITY
    33 #   EPOCPROCESSPRIORITY
    32 #   EPOCSTACKSIZE
    34 #   EPOCSTACKSIZE
    33 #   EXPORTUNFROZEN
    35 #   EXPORTUNFROZEN
    34 #   INFLATECOMPRESS
    36 #   INFLATECOMPRESSTARGET
    35 #   POSTLINKFPU
    37 #   NOCOMPRESSTARGET
    36 #   POSTLINKTARGETTYPE
    38 #   POSTLINKTARGETTYPE
    37 #   SID
    39 #   SID
    38 #   SMPSAFE
    40 #   SMPSAFE
    39 #   UID2
    41 #   UID2
    40 #   UID3
    42 #   UID3
    42 #   VENDORID
    44 #   VENDORID
    43 #
    45 #
    44 #  Other
    46 #  Other
    45 #
    47 #
    46 #   ARMLIBS
    48 #   ARMLIBS
    47 #   AUTOEXPORTS                    Symbols that must be assumed to exist for this TARGETTYPE in the format: export,ordinal;export,ordinal;..
    49 #   AUTOEXPORTS                       Symbols that must be assumed to exist for this TARGETTYPE in the format: export,ordinal;export,ordinal;..
    48 #   CANIGNORENONCALLABLE           If the TARGETTYPE allows it, disregard non-callable exports (v-tables, type information, etc.)
    50 #   CANIGNORENONCALLABLE              If the TARGETTYPE allows it, disregard non-callable exports (v-tables, type information, etc.)
    49 #   CANHAVEEXPORTS
    51 #   CANHAVEEXPORTS
    50 #   CLEANTARGETS
    52 #   CLEANTARGETS
    51 #   ELF2E32
    53 #   ELF2E32
    52 #   EPOCDATALINKADDRESS            Redundant?
    54 #   EPOCDATALINKADDRESS               Redundant?
    53 #   EPOCROOT
    55 #   EPOCROOT
    54 #   EXPTARGET
    56 #   EXPTARGET
    55 #   GENERATED_DEFFILE
    57 #   GENERATED_DEFFILE
    56 #   GENERATED_DSO
    58 #   GENERATED_DSO
    57 #   HAVE_ORDERONLY
    59 #   HAVE_ORDERONLY
    58 #   IMPORTLIBRARYREQUIRED
    60 #   IMPORTLIBRARYREQUIRED
    59 #   INTERMEDIATEPATH
    61 #   INTERMEDIATEPATH
    60 #   LINKASVERSIONED
    62 #   LINKASVERSIONED
    61 #   LINK_TARGET                    Postlinker elf input
    63 #   LINK_TARGET                       Postlinker elf input
    62 #   NAMEDSYMLKUP
    64 #   NAMEDSYMLKUP
    63 #   PAGEDCODE_OPTION
    65 #   PAGEDCODE_OPTION
    64 #   POSTLINKDEFFILE
    66 #   POSTLINKDEFFILE
       
    67 #   POSTLINKER_COMPRESSION_DEFAULT    Default compression when either COMPRESSTARGET or no compression .mmp keyword is used
       
    68 #   POSTLINKER_FPU_DEFAULT
    65 #   POSTLINKER_SUPPORTS_WDP
    69 #   POSTLINKER_SUPPORTS_WDP
    66 #   RUNTIME_LIBS_PATH
    70 #   RUNTIME_LIBS_PATH
    67 #   SAVESPACE
    71 #   SAVESPACE
    68 #   STATIC_LIBS_PATH
    72 #   STATIC_LIBS_PATH
    69 #   UID1
    73 #   UID1
    91 	$(ELF2E32) \
    95 	$(ELF2E32) \
    92 	  --sid=0x$(if $(SID),$(SID),$(if $(UID3),$(UID3),0)) \
    96 	  --sid=0x$(if $(SID),$(SID),$(if $(UID3),$(UID3),0)) \
    93 	  --version=$(VERSION) \
    97 	  --version=$(VERSION) \
    94 	  --capability=$(FINAL_CAPABILITIES) \
    98 	  --capability=$(FINAL_CAPABILITIES) \
    95 	  --linkas=$(call dblquote,$(LINKASVERSIONED)) \
    99 	  --linkas=$(call dblquote,$(LINKASVERSIONED)) \
    96 	  --fpu=$(POSTLINKFPU) \
   100 	  --fpu=$(if $(ARMFPU),$(ARMFPU),$(POSTLINKER_FPU_DEFAULT)) \
    97 	  --targettype=$(POSTLINKTARGETTYPE) \
   101 	  --targettype=$(POSTLINKTARGETTYPE) \
    98 	  --output=$$(call dblquote,$$@) \
   102 	  --output=$$(call dblquote,$$@) \
    99 	  --elfinput=$(call dblquote,$(LINK_TARGET)) \
   103 	  --elfinput=$(call dblquote,$(LINK_TARGET)) \
   100 	  $(if $(UID1),--uid1=0x$(UID1),) \
   104 	  $(if $(UID1),--uid1=0x$(UID1),) \
   101 	  $(if $(UID2),--uid2=0x$(UID2),) \
   105 	  $(if $(UID2),--uid2=0x$(UID2),) \
   119 	  $(if $(CANHAVEEXPORTS), --defoutput=$(call dblquote,$(GENERATED_DEFFILE)) --dso=$(GENERATED_DSO)) \
   123 	  $(if $(CANHAVEEXPORTS), --defoutput=$(call dblquote,$(GENERATED_DEFFILE)) --dso=$(GENERATED_DSO)) \
   120 	  $(if $(filter $(VARIANTTYPE),$(DEBUGGABLE)),--debuggable,) \
   124 	  $(if $(filter $(VARIANTTYPE),$(DEBUGGABLE)),--debuggable,) \
   121 	  $(if $(POSTLINKER_SUPPORTS_WDP), \
   125 	  $(if $(POSTLINKER_SUPPORTS_WDP), \
   122 	    --codepaging=$(PAGEDCODE_OPTION) --datapaging=$(PAGEDDATA_OPTION), \
   126 	    --codepaging=$(PAGEDCODE_OPTION) --datapaging=$(PAGEDDATA_OPTION), \
   123 	    $(POSTLINKER_PAGEDOPTION)) \
   127 	    $(POSTLINKER_PAGEDOPTION)) \
   124 	  $(if $(NOCOMPRESSTARGET), \
   128 	  $(if $(NOCOMPRESSTARGET),--uncompressed, \
   125 	    --uncompressed, \
   129 	    $(if $(INFLATECOMPRESSTARGET),--compressionmethod=inflate, \
   126 	    $(if $(INFLATECOMPRESS),--compressionmethod inflate,$(if $(BYTEPAIRCOMPRESS),--compressionmethod bytepair,))) \
   130 	      $(if $(BYTEPAIRCOMPRESSTARGET),--compressionmethod=bytepair, \
       
   131 	        --compressionmethod=$(POSTLINKER_COMPRESSION_DEFAULT)))) \
   127 	  --libpath="$(call concat,$(PATHSEP)$(CHAR_SEMIC),$(strip $(RUNTIME_LIBS_PATH) $(STATIC_LIBS_PATH)))" \
   132 	  --libpath="$(call concat,$(PATHSEP)$(CHAR_SEMIC),$(strip $(RUNTIME_LIBS_PATH) $(STATIC_LIBS_PATH)))" \
   128 	  $(if $(SAVESPACE),$(if $(EXPORTUNFROZEN),,;$(GNURM) -rf $(INTERMEDIATEPATH); true)) \
   133 	  $(if $(SAVESPACE),$(if $(EXPORTUNFROZEN),,&& { $(GNURM) -rf $(INTERMEDIATEPATH); true; })) \
   129 	$(call endrule,postlink)
   134 	$(call endrule,postlink)
   130 endef
   135 endef
   131 $(eval $(e32postlink))
   136 $(eval $(e32postlink))
   132 
   137 
   133 CLEANTARGETS:=$(CLEANTARGETS) $(E32TARGET)
   138 CLEANTARGETS:=$(CLEANTARGETS) $(E32TARGET)