# ******************************************************************************
# (C) Automotive-Lighting Reutlingen GmbH  -  ALRT/EEG
#     Tuebinger Strasse 123, 72762 Reutlingen, Germany
# ******************************************************************************

# ------------------------------------------------------------------------------
# file   CustVarBuild_070_Link.gmk
#
# \brief customer variant type build type make linker step
#
# ------------------------------------------------------------------------------

# ------------------------------------------------------------------------------
# Link object files for target
# ------------------------------------------------------------------------------

FILES_LD = $(ENV_MAKE_CUST_VAR)/$(TYP_PRJ)_$(TYP_VAR)_$(TYP_CC)_LinkerScript.$(SUFFIX_LDF)

ifeq ($(TYP_CC),ARM_GCC)

LinkObjectFiles : $(FILES_TMP_OBJ) $(FILES_LD)
	@$(GNUECHO) +++ linking application: $(FILE_BIN_NAME).$(SUFFIX_ABS)
	@-$(LD) $(LDFLAGS) $(FILES_TMP_OBJ) -Wl,-T$(FILES_LD),-Map,$(FILE_BIN_NAME).map -o $(FILE_BIN_NAME).$(SUFFIX_ABS)
	@-$(GNUECHO) +++ creating hex module: $(FILE_BIN_NAME).$(SUFFIX_HEX)
	@-$(OBJCOPY) -O ihex $(FILE_BIN_NAME).$(SUFFIX_ABS) $(FILE_BIN_NAME).$(SUFFIX_HEX)
	@-$(GNUECHO) +++ generating map files: $(FILE_BIN_NAME)_MemoryOD.map and $(FILE_BIN_NAME)_MemoryNM.map
	@-$(OBJDUMP) -h $(FILE_BIN_NAME).$(SUFFIX_ABS) > $(FILE_BIN_NAME)_MemoryOD.map
	@-$(NM) -n -S $(FILE_BIN_NAME).$(SUFFIX_ABS) > $(FILE_BIN_NAME)_MemoryNM.map
	@-$(GNUECHO) +++ generating assembly list file: $(FILE_BIN_NAME).lss
	@-$(OBJDUMP) -h -S $(FILE_BIN_NAME).$(SUFFIX_ABS) > $(FILE_BIN_NAME).lss
	@$(GNUECHO) +++ end link

endif

ifeq ($(TYP_CC),ARM_GHS)

LinkObjectFiles : $(FILES_TMP_OBJ) $(FILES_LD)
	@$(GNUECHO) +++ linking application: $(FILE_BIN_NAME).$(SUFFIX_ABS)
	@-$(LD) $(LDFLAGS) $(FILES_LD) @$(LINK_OBJECTS_FILE) -o $(FILE_BIN_NAME).$(SUFFIX_ABS)
	@-$(GNUECHO) +++ creating hex module: $(FILE_BIN_NAME).$(SUFFIX_HEX)
	@-$(OBJCOPY) -h -hex386 $(FILE_BIN_NAME).$(SUFFIX_ABS) -o $(FILE_BIN_NAME).$(SUFFIX_HEX)
	@-$(GNUECHO) +++ generating map files: $(FILE_BIN_NAME)_MemoryOD.map and $(FILE_BIN_NAME)_MemoryNM.map
	@-$(OBJDUMP) -h $(FILE_BIN_NAME).$(SUFFIX_ABS) > $(FILE_BIN_NAME)_MemoryOD.map
	@-$(NM) -n -S $(FILE_BIN_NAME).$(SUFFIX_ABS) > $(FILE_BIN_NAME)_MemoryNM.map
	@-$(GNUECHO) +++ generating assembly list file: $(FILE_BIN_NAME).lss
	@-$(OBJDUMP) -h -S $(FILE_BIN_NAME).$(SUFFIX_ABS) > $(FILE_BIN_NAME).lss
	@$(GNUECHO) +++ end link

endif
