
# Include the make of the specific HAL.
include $(ENV_MAKE_HAL)/Hal_500_Rules.gmk

FILES_COMPILER_VARIANT_1 := $(FILES_NOWARN_COMPILER)
FILES_COMPILER_VARIANT_2 := $(FILES_DEBUG)
FILES_COMPILER_VARIANT_3 := $(FILES_NOMISRA)
FILES_COMPILER_VARIANT_4 := $(FILES_COVER)

# For using Different Compiler Versions
IF_FILES_COMPILER_DEFAULT       = if not X$(basename $(@F)) == X$(filter $(basename $(@F)), $(notdir  $(FILES_COMPILER_VARIANT_1) $(FILES_COMPILER_VARIANT_2) $(FILES_COMPILER_VARIANT_3) $(FILES_COMPILER_VARIANT_4)))
IF_FILES_COMPILER_VARIANT_1     = if     X$(basename $(@F)) == X$(filter $(basename $(@F)), $(notdir  $(FILES_COMPILER_VARIANT_1)))
IF_FILES_COMPILER_VARIANT_2     = if     X$(basename $(@F)) == X$(filter $(basename $(@F)), $(notdir  $(FILES_COMPILER_VARIANT_2)))
IF_FILES_COMPILER_VARIANT_3     = if     X$(basename $(@F)) == X$(filter $(basename $(@F)), $(notdir  $(FILES_COMPILER_VARIANT_3)))
IF_FILES_COMPILER_VARIANT_4     = if     X$(basename $(@F)) == X$(filter $(basename $(@F)), $(notdir  $(FILES_COMPILER_VARIANT_4)))

# Delete the default suffixes. We do not use implicit rules.
# Pattern rules with %... are used instead.
.SUFFIXES:

# C Compilation: C-Source Files
$(PATH_TMP_NAME_OBJ)/%.$(SUFFIX_OBJ) : %.c
	@$(GNUECHO) +++ compile C: $< to $@
  # Compile
	@$(RULE_COMPILE_C_TO_OBJ_CMD)
  # Create a file (called *.fname_c) containing the full source file name with DOS/Windows backslashes.
  # Files of type *.fname_c will be used for:
	@$(GNUECHO) $< > $(PATH_TMP_NAME_OBJ)/$(basename $(@F)).fname_c


# C++ Compilation: C++-Source Files
$(PATH_TMP_NAME_OBJ)/%.$(SUFFIX_OBJ) : %.cpp
	@$(GNUECHO) +++ compile C++: $< to $@

  # Compile
	@$(RULE_COMPILE_CPP_TO_OBJ_CMD)
  # Create a file (called *.fname_cpp) containing the full source file name with DOS/Windows backslashes.
  # Files of type *.fname_cpp will be used for:
	@$(GNUECHO) $< > $(PATH_TMP_NAME_OBJ)/$(basename $(@F)).fname_cpp

# Assembly: Assembler Files (for SUFFIX_ASM)
$(PATH_TMP_NAME_OBJ)/%.$(SUFFIX_OBJ) : %.$(SUFFIX_ASM)
	@$(GNUECHO) +++ assemble: $< to $@

  # Call the assembler
	@-$(RULE_ASSEMBLE_ASM_TO_OBJ_CMD)


# Assembly: Assembler Files (for SUFFIX_ASM2)
$(PATH_TMP_NAME_OBJ)/%.$(SUFFIX_OBJ) : %.$(SUFFIX_ASM2)
	@$(GNUECHO) +++ assemble: $< to $@

  # Call the assembler
	@-$(RULE_ASSEMBLE_ASM_TO_OBJ_CMD)
