PATH_BUILD                   = $(CURDIR)/..

ENV_MAKE                     = $(PATH_BUILD)/Make

ENV_MAKE_GEN                 = $(ENV_MAKE)/Gen
ENV_MAKE_HAL                 = $(ENV_MAKE)/Hal/$(TYP_ECU)
ENV_MAKE_CDD                 = $(ENV_MAKE)/Cdd
ENV_MAKE_SWC                 = $(ENV_MAKE)/Swc
ENV_MAKE_MCAL                = $(ENV_MAKE)/Mcal
ENV_MAKE_CUST                = $(ENV_MAKE)/Cust/$(TYP_OEM)/$(TYP_PRJ)

ENV_MAKE_MCAL_FAMILY_DERIV   = $(ENV_MAKE_MCAL)/$(TYP_FAMILY)_$(TYP_DERIV)

ENV_MAKE_CUST_VAR            = $(ENV_MAKE_CUST)/$(TYP_VAR)
ENV_MAKE_CUST_VAR_BUILD      = $(ENV_MAKE_CUST)/$(TYP_VAR)/$(TYP_BUILD)

ENV_MAKE_TEST_FRAMEWORK_BASE = $(ENV_MAKE)/Test/Framework

ENV_MAKE_TOOL_CHAIN_BASE     = $(ENV_MAKE)/ToolChain

PATH_SRC_BASE                = $(PATH_BUILD)/../Src

PATH_SRC_AL                  = $(PATH_SRC_BASE)/Src_AL
PATH_SRC_THIRD_PARTY         = $(PATH_SRC_BASE)/Src_ThirdParty
PATH_SRC_AL_COMPONENT        = $(PATH_SRC_THIRD_PARTY)/Src_ALComponent
PATH_SRC_TEST_FRAMEWORK_BASE = $(PATH_SRC_AL_COMPONENT)/ALTestFramework/Framework


PATH_SRC_CDD_BASE            = $(PATH_SRC_AL)/Cdd
PATH_SRC_GEN_BASE            = $(PATH_SRC_AL)/Gen
PATH_SRC_HAL_BASE            = $(PATH_SRC_AL)/Hal
PATH_SRC_MCAL_BASE           = $(PATH_SRC_AL)/Mcal
PATH_SRC_OS_BASE             = $(PATH_SRC_AL)/Os
PATH_SRC_CUST_BASE           = $(PATH_SRC_AL)/Cust/$(TYP_OEM)/$(TYP_PRJ)
PATH_SRC_CUST_EXE_BASE       = $(PATH_SRC_AL)/Cust/$(TYP_OEM)/$(TYP_PRJ)/Exe
PATH_SRC_CUST_SWC_BASE       = $(PATH_SRC_AL)/Cust/$(TYP_OEM)/$(TYP_PRJ)/$(TYP_VAR)/Swc

PATH_SRC_CDD                 = $(PATH_SRC_CDD_BASE)
PATH_SRC_CDD_FAMILY          = $(PATH_SRC_CDD_BASE)/$(TYP_FAMILY)/$(TYP_FAMILY)
PATH_SRC_CDD_FAMILY_DERIV    = $(PATH_SRC_CDD_BASE)/$(TYP_FAMILY)/$(TYP_FAMILY)_$(TYP_DERIV)

PATH_SRC_CUST_SWC            = $(PATH_SRC_CUST_SWC_BASE)

PATH_SRC_GEN                 = $(PATH_SRC_GEN_BASE)

PATH_SRC_HAL                 = $(PATH_SRC_HAL_BASE)/$(TYP_ECU)

PATH_SRC_MCAL                = $(PATH_SRC_MCAL_BASE)
PATH_SRC_MCAL_FAMILY         = $(PATH_SRC_MCAL_BASE)/$(TYP_FAMILY)/$(TYP_FAMILY)
PATH_SRC_MCAL_FAMILY_DERIV   = $(PATH_SRC_MCAL_BASE)/$(TYP_FAMILY)/$(TYP_FAMILY)_$(TYP_DERIV)

PATH_SRC_OS                  = $(PATH_SRC_OS_BASE)

PATH_SRC_CUST                = $(PATH_SRC_CUST_BASE)
PATH_SRC_CUST_VAR            = $(PATH_SRC_CUST)/$(TYP_VAR)
PATH_SRC_CUST_VAR_BUILD      = $(PATH_SRC_CUST)/$(TYP_VAR)/$(TYP_BUILD)

PATH_TOOLS_BASE              = $(subst \,/,$(PATH_TOOLSGENERIC))
PATH_TOOLS_COMPILER          = $(PATH_TOOLS_BASE)/Compilation
PATH_TOOLS_COVERAGE          = $(PATH_TOOLS_BASE)/DynamicCodeAnalysis/Coverage
PATH_TOOLS_STATIC_ANALYSIS   = $(PATH_TOOLS_BASE)/StaticCodeAnalysis
PATH_TOOLS_AL                = $(PATH_TOOLS_BASE)/Utilities/AL
PATH_TOOLS_UTIL              = $(PATH_TOOLS_BASE)/Utilities/CommonDomain
PATH_TOOLS_SPECIFIC          = $(PATH_BUILD)/ToolsSpecific/Cust/$(TYP_OEM)/$(TYP_PRJ)

PATH_TMP_BASE                = $(PATH_BUILD)/Tmp
PATH_TMP_NAME                = $(PATH_TMP_BASE)/$(TYP_NAME)

PATH_BIN_BASE                = $(PATH_BUILD)/Bin
PATH_BIN_NAME                = $(PATH_BIN_BASE)/$(TYP_NAME)

PATH_TMP_NAME_ERR            = $(PATH_TMP_NAME)/err
PATH_TMP_NAME_OBJ            = $(PATH_TMP_NAME)/obj
PATH_TMP_NAME_LST            = $(PATH_TMP_NAME)/lst
PATH_TMP_NAME_QAC            = $(PATH_TMP_NAME)/qac

include $(ENV_MAKE_HAL)/Hal_010_Paths.gmk
include $(ENV_MAKE_CUST)/Cust_010_Paths.gmk
