# ******************************************************************************
# (C) Automotive-Lighting Reutlingen GmbH  -  ALRT/EEG
#     Tuebinger Strasse 123, 72762 Reutlingen, Germany
# ******************************************************************************

# ------------------------------------------------------------------------------
# file   CustVar_070_Link.gmk
#
# \brief customer variant make linker step
#
# ------------------------------------------------------------------------------

# ------------------------------------------------------------------------------
# Link object files (PC based module test)
# ------------------------------------------------------------------------------

# ------------------------------------------------------------------------------
# Define local variables
# ------------------------------------------------------------------------------
LIBPATH   := $(PATH_SRC_TEST_FRAMEWORK_BASE)/CUnit/lib
LIBLIBS   :=

# ------------------------------------------------------------------------------
# Link with WIN_VC
# ------------------------------------------------------------------------------
ifeq ($(TYP_CC),WIN_VC)

LIBLIBS       += $(subst /,\,$(LIBPATH)/ALCUnit_Lib_Debug.$(SUFFIX_LIB))

ifeq ($(CTCVERSION),8_2_2)
LIBLIBS       += $(subst /,\,$(CTCHOME)/ctcmsnt64.$(SUFFIX_LIB))
endif

ifeq ($(CTCVERSION),9_1_4)
LIBLIBS       += $(subst /,\,$(CTCHOME)/Lib/ctcwin64.$(SUFFIX_LIB))
endif

LDFLAGS       += /NODEFAULTLIB:LIBCMTD

LinkObjectFiles : $(FILES_TMP_OBJ)
	@$(GNUECHO) +++ linking application: $(FILE_BIN_NAME).$(SUFFIX_EXE)
	@$(CTC) $(CTCFLAGS) $(LD) $(LDFLAGS) @$(LINK_OBJECTS_FILE) $(LIBLIBS) /OUT:$(subst /,\,$(FILE_BIN_NAME).$(SUFFIX_EXE)) /PDB:$(subst /,\,$(FILE_BIN_NAME).$(SUFFIX_PDB))
	@$(GNUECHO) +++ end link
endif

# ------------------------------------------------------------------------------
# Link with WIN_GCC
# ------------------------------------------------------------------------------
ifeq ($(TYP_CC),WIN_GCC)

ifeq ($(TYP_COVER),CTC)

ifeq ($(CTCVERSION),8_2_2)
LIBPATH       += $(subst \,/,$(CTCHOME)/Lib)
LIBLIBS       += ctc64
endif

ifeq ($(CTCVERSION),9_1_4)
LIBPATH       += $(subst \,/,$(CTCHOME)/Lib/x86_64)
LIBLIBS       += ctc
endif

endif

LIBLIBS       += win_alcunit
LDFLAGS       += $(addprefix -L,$(LIBPATH))

LinkObjectFiles : $(FILES_TMP_OBJ)
	@$(GNUECHO) +++ linking application: $(FILE_BIN_NAME).$(SUFFIX_EXE)
ifeq ($(TYP_COVER),CTC)
	@$(CTC) $(CTCFLAGS)    $(LD) $(LDFLAGS) @$(LINK_OBJECTS_FILE) $(addprefix -l,$(LIBLIBS)) -o $(FILE_BIN_NAME).$(SUFFIX_EXE)
endif
ifeq ($(TYP_COVER),GCOV)
	@$(LD) $(CFLAGS_COVER) $(LDFLAGS) @$(LINK_OBJECTS_FILE) $(addprefix -l,$(LIBLIBS)) -o $(FILE_BIN_NAME).$(SUFFIX_EXE)
endif
	@$(GNUECHO) +++ end link
endif

# ------------------------------------------------------------------------------
# Link with UNIX_GCC
# ------------------------------------------------------------------------------
ifeq ($(TYP_CC),UNIX_GCC)

LIBLIBS       += unix_alcunit
LDFLAGS       += $(addprefix -L,$(LIBPATH))

LinkObjectFiles : $(FILES_TMP_OBJ)
	@$(GNUECHO)
	@$(GNUECHO) +++ linking application: $(FILE_BIN_NAME).$(SUFFIX_EXE)
	@$(GNUECHO) +++ linking examine objects file: $(LINK_OBJECTS_FILE)
	$(CAT) $(LINK_OBJECTS_FILE)
	@$(GNUECHO)
	@$(GNUECHO) +++ linking application: $(FILE_BIN_NAME).$(SUFFIX_EXE)
	@$(GNUECHO) +++ linking application link command: $(LD) $(CFLAGS_COVER) $(LDFLAGS) @$(LINK_OBJECTS_FILE) $(addprefix -l,$(LIBLIBS)) -o $(FILE_BIN_NAME).$(SUFFIX_EXE)
	$(LD) $(CFLAGS_COVER) $(LDFLAGS) @$(LINK_OBJECTS_FILE) $(addprefix -l,$(LIBLIBS)) -o $(FILE_BIN_NAME).$(SUFFIX_EXE)
	@$(GNUECHO)
	@$(GNUECHO) +++ end link
endif
