blob: 70d97d9e7efa86827fcb67ad18b00649063cd6f3 [file] [log] [blame]
###############################################################################
# Defines $(ASR_GLOBAL_DEFINES) (among other things) that specify a build.
#
# !!! NOTE: This file must be kept synchronized with builddef.h
# !!! Also the values of $(ASR_OPTIMIZE), $(ASR_PROFILE), & $(ASR_TRACE) must
# !!! be compatible with the corresponding values in buildddef.h
#
# Required macros set in macros.mak:
# $(ASR_OS) The name of the operating system.
# $(ASR_CPU) The name of the CPU architecture.
# $(ASR_COMPILER) The name of the compiler.
# $(ASR_BUILD) A string that defines what type of build to perform.
# $(ASR_UI) The name of the type of user interface.
#
# The important macros defined herein are:
# * $(ASR_GLOBAL_DEFINES)The compiler defines based on the values of:
# $(ASR_OS), $(ASR_CPU), $(ASR_COMPILER), $(ASR_BUILD), & $(ASR_UI).
# * $(ASR_SUB_DIR) The object, library, & binary sub-directory name.
# * $(ASR_OPTIMIZE) Used by $(ASR_COMPILER_CHAR)flags.mak to enable optimization.
# * $(ASR_PROFILE) Used by $(ASR_COMPILER_CHAR)flags.mak to enable profiling.
# * $(ASR_TRACE) Used by $(ASR_COMPILER_CHAR)flags.mak to enable tracing.
#
# Other macros incidentally valid on exit:
# * $(ASR_OS_TYPE) Value corresponding to the type of operating system.
# $(ASR_CPU_TYPE) Value corresponding to the type of CPU architecture.
# $(ASR_COMPILER_TYPE)Value corresponding to the type of compiler.
# * $(ASR_BUILD_TYPE) Value corresponding to the type of build to perform.
# $(ASR_UI_TYPE) Value corresponding to the type of user interface.
# $(ASR_OS_CHAR) Character corresponding to the type of operating system.
# $(ASR_CPU_CHARS) Characters corresponding to the type of CPU architecture.
# * $(ASR_COMPILER_CHAR)Character corresponding to the type of compiler.
# $(ASR_BUILD_CHAR) Character corresponding to the type of build to perform.
# $(ASR_OS_MSDOS) Value associated with $(ASR_OS_CHAR) = D.
# $(ASR_OS_WIN32) Value associated with $(ASR_OS_CHAR) = W.
# $(ASR_OS_MAC) Value associated with $(ASR_OS_CHAR) = M.
# $(ASR_OS_UNIX) Value associated with $(ASR_OS_CHAR) = U.
# $(ASR_OS_EMBEDDED) Value associated with $(ASR_OS_CHAR) = E.
# $(ASR_OS_VXWORKS) Value associated with $(ASR_OS_CHAR) = V.
# $(ASR_OS_QNX) Value associated with $(ASR_OS_CHAR) = Q.
# $(ASR_OS_PSOS) Value associated with $(ASR_OS_CHAR) = S.
# $(ASR_OS_WINCE) Value associated with $(ASR_OS_CHAR) = C.
# $(ASR_OS_PALM) Value associated with $(ASR_OS_CHAR) = P.
# $(ASR_OS_JAVA) Value associated with $(ASR_OS_CHAR) = J.
# $(ASR_CPU_I86) Value associated with $(ASR_CPU_CHARS) = IN.
# $(ASR_CPU_68K) Value associated with $(ASR_CPU_CHARS) = MO.
# $(ASR_CPU_MIPS) Value associated with $(ASR_CPU_CHARS) = MI.
# $(ASR_CPU_ALPHA) Value associated with $(ASR_CPU_CHARS) = AL.
# $(ASR_CPU_PPC) Value associated with $(ASR_CPU_CHARS) = PP.
# $(ASR_CPU_SPARC) Value associated with $(ASR_CPU_CHARS) = SP.
# $(ASR_CPU_ARM) Value associated with $(ASR_CPU_CHARS) = AR.
# $(ASR_CPU_STRONGARM)Value associated with $(ASR_CPU_CHARS) = SA.
# $(ASR_CPU_AARCH64) Value associated with $(ASR_CPU_CHARS) = AA.
# $(ASR_CPU_TMS320X) Value associated with $(ASR_CPU_CHARS) = TI.
# $(ASR_CPU_SH3) Value associated with $(ASR_CPU_CHARS) = HI.
# $(ASR_CPU_SH4) Value associated with $(ASR_CPU_CHARS) = HI.
# $(ASR_CPU_FAMILY_TMS320C30)Value associated with $(ASR_CPU_FAMILY) = 3.
# $(ASR_CPU_FAMILY_TMS320C40)Value associated with $(ASR_CPU_FAMILY) = 4.
# $(ASR_CPU_FAMILY_TMS320C2XX)Value associated with $(ASR_CPU_FAMILY) = 2.
# $(ASR_CPU_FAMILY_TMS320C54X)Value associated with $(ASR_CPU_FAMILY) = 5.
# $(ASR_C_BORLAND) Value associated with $(ASR_COMPILER_CHAR) = B.
# $(ASR_C_MICROSOFT) Value associated with $(ASR_COMPILER_CHAR) = M.
# $(ASR_C_HIGH) Value associated with $(ASR_COMPILER_CHAR) = H.
# $(ASR_C_INTEL) Value associated with $(ASR_COMPILER_CHAR) = I.
# $(ASR_C_ZORTECH) Value associated with $(ASR_COMPILER_CHAR) = Z.
# $(ASR_C_WATCOM) Value associated with $(ASR_COMPILER_CHAR) = W.
# $(ASR_C_GNU) Value associated with $(ASR_COMPILER_CHAR) = G.
# $(ASR_C_SUNPRO) Value associated with $(ASR_COMPILER_CHAR) = S.
# $(ASR_C_DECCXX) Value associated with $(ASR_COMPILER_CHAR) = D.
# $(ASR_C_METROWERKS) Value associated with $(ASR_COMPILER_CHAR) = C.
# $(ASR_C_GHS) Value associated with $(ASR_COMPILER_CHAR) = X.
# $(ASR_C_TICXC) Value associated with $(ASR_COMPILER_CHAR) = T.
# $(ASR_C_ARM) Value associated with $(ASR_COMPILER_CHAR) = A.
# $(ASR_BUILD_SHIP) Value associated with $(ASR_BUILD_CHAR) = S.
# $(ASR_BUILD_INHOUSE)Value associated with $(ASR_BUILD_CHAR) = I.
# $(ASR_BUILD_DEBUGO) Value associated with $(ASR_BUILD_CHAR) = G.
# $(ASR_BUILD_DEBUG) Value associated with $(ASR_BUILD_CHAR) = X.
# $(ASR_BUILD_PROFILE)Value associated with $(ASR_BUILD_CHAR) = P.
# $(ASR_BUILD_TRACE) Value associated with $(ASR_BUILD_CHAR) = L.
#
# !!! NOTE: Should these UI macros be used?
#
# $(ASR_UI_NONE)
# $(ASR_UI_TTY)
# $(ASR_UI_GUI)
#
# Optional (for certain values of $(ASR_CPU)) macros used herein:
# $(ASR_CPU_FAMILY) OPTIONAL single-character name of the $(ASR_CPU) family.
#
# Optional (for certain values of $(ASR_CPU)) macros defined herein:
# * $(ASR_CPU_FAMILY_TYPE)For OPTIONAL CPU-specifics in $(ASR_COMPILER_CHAR)flags.mak.
#
# * Used outside of this makefile. All macros with the suffix ``_TYPE''
# used outside of this makefile can be &ed with macros with the
# corresponding prefix. Threfore it is implied that those macros are
# also available outside of this makefile.
###############################################################################
# Makefile.config configures the ASR build. Include this first!
include $(ASR_MAKE_DIR)/Makefile.config
# Makefile.common contains settings available to all ASR modules
include $(ASR_MAKE_DIR)/Makefile.common
# Define $(ASR_OS_*), $(ASR_CPU_*), $(ASR_COMPILER_*), $(ASR_BUILD_*) & $(ASR_UI_*) values.
# OS
ASR_OS_MSDOS = 1
ASR_OS_WIN32 = 2
ASR_OS_MAC = 4
ASR_OS_UNIX = 8
ASR_OS_EMBEDDED = 16
ASR_OS_VXWORKS = 32
ASR_OS_PSOS = 64
ASR_OS_WINCE = 128
ASR_OS_PALM = 256
ASR_OS_JAVA = 512
ASR_OS_QNX = 1024
# CPU
ASR_CPU_I86 = 1
ASR_CPU_68K = 2
ASR_CPU_MIPS = 4
ASR_CPU_ALPHA = 8
ASR_CPU_PPC = 16
ASR_CPU_SPARC = 32
ASR_CPU_ARM = 64
ASR_CPU_STRONGARM = 128
ASR_CPU_TMS320X = 256
ASR_CPU_SH3 = 512
ASR_CPU_SH4 = 1024
ASR_CPU_AARCH64 = 2048
# Used only by TFLAGS.MAK.
ASR_CPU_FAMILY_TMS320C30 = 1
ASR_CPU_FAMILY_TMS320C40 = 2
ASR_CPU_FAMILY_TMS320C2XX = 4
ASR_CPU_FAMILY_TMS320C54X = 8
# COMPILER
ASR_C_BORLAND = 1
ASR_C_MICROSOFT = 2
ASR_C_INTEL = 4
ASR_C_HIGH = 8
ASR_C_ZORTECH = 16
ASR_C_WATCOM = 32
ASR_C_GNU = 64
ASR_C_SUNPRO = 128
ASR_C_DECCXX = 256
ASR_C_METROWERKS = 512
ASR_C_GHS = 1024
ASR_C_TICXC = 2048
ASR_C_ARM = 4096
ASR_C_DIABDATA = 8192
# BUILD (must be synchronized with vcc_helper.h included by buildopt.h)
ASR_BUILD_SHIP = 1
ASR_BUILD_INHOUSE = 2
ASR_BUILD_DEBUGO = 4
ASR_BUILD_DEBUG = 8
ASR_BUILD_PROFILE = 16
ASR_BUILD_TRACE = 32
ASR_OFF = 0
# UI
ASR_UI_NONE = 1
ASR_UI_TTY = 2
ASR_UI_GUI = 4
########################################################################
#
# Define $(ASR_*_TYPE) and $(ASR_*_CHAR[S]) to be used to define $(ASR_GLOBAL_DEFINES)
# and $(ASR_SUB_DIR).
################################## OS ##################################
ifeq ("$(ASR_OS)","MSDOS")
ASR_OS_TYPE = $(ASR_OS_MSDOS)
else # same as OS = "Windows_NT"
ifeq ("$(ASR_OS)","WIN32")
ASR_OS_TYPE = $(ASR_OS_WIN32)
else # same as OS = "WIN32"
ifeq ("$(ASR_OS)","Windows_NT")
ASR_OS_TYPE = $(ASR_OS_WIN32)
else
ifeq ("$(ASR_OS)","MAC")
ASR_OS_TYPE = $(ASR_OS_MAC)
else
ifeq ("$(ASR_OS)","UNIX")
ASR_OS_TYPE = $(ASR_OS_UNIX)
else
ifeq ("$(ASR_OS)","EMBEDDED")
ASR_OS_TYPE = $(ASR_OS_EMBEDDED)
else
ifeq ("$(ASR_OS)","VXWORKS")
ASR_OS_TYPE = $(ASR_OS_VXWORKS)
else
ifeq ("$(ASR_OS)","PSOS")
ASR_OS_TYPE = $(ASR_OS_PSOS)
else
ifeq ("$(ASR_OS)","Wince")
ASR_OS_TYPE = $(ASR_OS_WINCE)
else
ifeq ("$(ASR_OS)","PALM")
ASR_OS_TYPE = $(ASR_OS_PALM)
else
ifeq ("$(ASR_OS)","JAVA")
ASR_OS_TYPE = $(ASR_OS_JAVA)
else
ifeq ("$(ASR_OS)","QNX")
ASR_OS_TYPE = $(ASR_OS_QNX)
else
ERROR += \
$(subst $(space),|,'Failed to select operating system with $$(ASR_OS) == "$(ASR_$(ASR_OS))"')
ASR_OS_TYPE = ASR_BAD_OS
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
################################## HOST_OS ##################################
ifeq ("$(ASR_HOST_OS)","MSDOS")
ASR_HOST_OS_TYPE = $(ASR_OS_MSDOS)
else # same as OS = "Windows_NT"
ifeq ("$(ASR_HOST_OS)","WIN32")
ASR_HOST_OS_TYPE = $(ASR_OS_WIN32)
else # same as OS = "WIN32"
ifeq ("$(ASR_HOST_OS)","Windows_NT")
ASR_HOST_OS_TYPE = $(ASR_OS_WIN32)
else
ifeq ("$(ASR_HOST_OS)","MAC")
ASR_HOST_OS_TYPE = $(ASR_OS_MAC)
else
ifeq ("$(ASR_HOST_OS)","UNIX")
ASR_HOST_OS_TYPE = $(ASR_OS_UNIX)
else
ifeq ("$(ASR_HOST_OS)","EMBEDDED")
ASR_HOST_OS_TYPE = $(ASR_OS_EMBEDDED)
else
ifeq ("$(ASR_HOST_OS)","VXWORKS")
ASR_HOST_OS_TYPE = $(ASR_OS_VXWORKS)
else
ifeq ("$(ASR_HOST_OS)","PSOS")
ASR_HOST_OS_TYPE = $(ASR_OS_PSOS)
else
ifeq ("$(ASR_HOST_OS)","Wince")
ASR_HOST_OS_TYPE = $(ASR_OS_WINCE)
else
ifeq ("$(ASR_HOST_OS)","PALM")
ASR_HOST_OS_TYPE = $(ASR_OS_PALM)
else
ifeq ("$(ASR_HOST_OS)","JAVA")
ASR_HOST_OS_TYPE = $(ASR_OS_JAVA)
else
ifeq ("$(ASR_HOST_OS)","QNX")
ASR_HOST_OS_TYPE = $(ASR_OS_QNX)
else
ERROR += \
$(subst $(space),|,'Failed to select operating system with $$(ASR_HOST_OS) == "$(ASR_HOST_OS)"')
ASR_HOST_OS_TYPE = ASR_BAD_OS
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
################################## TARGET_OS ##################################
ifeq ("$(ASR_TARGET_OS)","MSDOS")
ASR_TARGET_OS_TYPE = $(ASR_OS_MSDOS)
else # same as OS = "Windows_NT"
ifeq ("$(ASR_TARGET_OS)","WIN32")
ASR_TARGET_OS_TYPE = $(ASR_OS_WIN32)
else # same as OS = "WIN32"
ifeq ("$(ASR_TARGET_OS)","Windows_NT")
ASR_TARGET_OS_TYPE = $(ASR_OS_WIN32)
else
ifeq ("$(ASR_TARGET_OS)","MAC")
ASR_TARGET_OS_TYPE = $(ASR_OS_MAC)
else
ifeq ("$(ASR_TARGET_OS)","UNIX")
ASR_TARGET_OS_TYPE = $(ASR_OS_UNIX)
else
ifeq ("$(ASR_TARGET_OS)","EMBEDDED")
ASR_TARGET_OS_TYPE = $(ASR_OS_EMBEDDED)
else
ifeq ("$(ASR_TARGET_OS)","VXWORKS")
ASR_TARGET_OS_TYPE = $(ASR_OS_VXWORKS)
else
ifeq ("$(ASR_TARGET_OS)","PSOS")
ASR_TARGET_OS_TYPE = $(ASR_OS_PSOS)
else
ifeq ("$(ASR_TARGET_OS)","Wince")
ASR_TARGET_OS_TYPE = $(ASR_OS_WINCE)
else
ifeq ("$(ASR_TARGET_OS)","PALM")
ASR_TARGET_OS_TYPE = $(ASR_OS_PALM)
else
ifeq ("$(ASR_TARGET_OS)","JAVA")
ASR_TARGET_OS_TYPE = $(ASR_OS_JAVA)
else
ifeq ("$(ASR_TARGET_OS)","QNX")
ASR_TARGET_OS_TYPE = $(ASR_OS_QNX)
else
ERROR += \
$(subst $(space),|,'Failed to select operating system with $$(ASR_TARGET_OS) == "$(ASR_TARGET_OS)"')
ASR_TARGET_OS_TYPE = ASR_BAD_OS
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
################################## CPU #################################
ifeq ("$(ASR_CPU)","I86")
ASR_CPU_TYPE = $(ASR_CPU_I86)
ASR_CPU_CHARS = in
else
ifeq ("$(ASR_CPU)", "SIMNT")
ASR_CPU_TYPE = $(ASR_CPU_I86)
ASR_CPU_CHARS = in
else
ifeq ("$(ASR_CPU)","68K")
ASR_CPU_TYPE = $(ASR_CPU_68K)
ASR_CPU_CHARS = mo
else
ifeq ("$(ASR_CPU)","MIPS")
ASR_CPU_TYPE = $(ASR_CPU_MIPS)
ASR_CPU_CHARS = mi
else
ifeq ("$(ASR_CPU)","ALPHA")
ASR_CPU_TYPE = $(ASR_CPU_ALPHA)
ASR_CPU_CHARS = al
else
ifeq ("$(ASR_CPU)","PPC")
ASR_CPU_TYPE = $(ASR_CPU_PPC)
ASR_CPU_CHARS = pp
else
ifeq ("$(ASR_CPU)","SPARC")
ASR_CPU_TYPE = $(ASR_CPU_SPARC)
ASR_CPU_CHARS = pp
else
ifeq ("$(ASR_CPU)","ARM")
ASR_CPU_TYPE = $(ASR_CPU_ARM)
ASR_CPU_CHARS = ar
else
ifeq ("$(ASR_CPU)","STRONGARM")
ASR_CPU_TYPE = $(ASR_CPU_STRONGARM)
ASR_CPU_CHARS = sa
else
ifeq ("$(ASR_CPU)","AARCH64")
ASR_CPU_TYPE = $(ASR_CPU_AARCH64)
ASR_CPU_CHARS = aa
else
ifeq ("$(ASR_CPU)","TMS320X")
ASR_CPU_TYPE = $(ASR_CPU_TMS320X)
ASR_CPU_CHARS = ti
ifndef CPU_FAMILY
CPU_FAMILY_TYPE = 0
MESSAGE += \
$(subst $(space),|,'$$(ASR_CPU_FAMILY_TYPE) defaulted to "$(ASR_CPU_FAMILY_TYPE)"')
else
ASR_CPU_CHARS = T$(ASR_CPU_FAMILY)
ifeq ("$(ASR_CPU_FAMILY)","3")
ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C30)
else
ifeq ("$(ASR_CPU_FAMILY)","4")
ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C40)
else
ifeq ("$(ASR_CPU_FAMILY)","2")
ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C2XX)
else
ifeq ("$(ASR_CPU_FAMILY)","5")
ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C54X)
else
ERROR += \
$(subst $(space),|,\
'Failed to select CPU family with $$(ASR_CPU_FAMILY) == "$(ASR_CPU_FAMILY)"')
ASR_CPU_FAMILY_TYPE=ASR_BAD_CPU_FAMILY
endif
endif
endif
endif
endif
else
ifeq ("$(ASR_CPU)","SH3")
ASR_CPU_TYPE = $(ASR_CPU_SH3)
ASR_CPU_CHARS = hi
else
ifeq ("$(ASR_CPU)","SH4")
ASR_CPU_TYPE = $(ASR_CPU_SH4)
ASR_CPU_CHARS = hi
else
ERROR += \
$(subst $(space),|,\
'Failed to select CPU architecture with $$(ASR_CPU) == "$(ASR_$(ASR_CPU))"')
ASR_CPU_TYPE = ASR_BAD_CPU
ASR_CPU_CHARS = ASR_BAD_CPU
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
################################## HOST_CPU #################################
ifeq ("$(ASR_HOST_CPU)","I86")
ASR_HOST_CPU_TYPE = $(ASR_CPU_I86)
else
ifeq ("$(ASR_HOST_CPU)","68K")
ASR_HOST_CPU_TYPE = $(ASR_CPU_68K)
else
ifeq ("$(ASR_HOST_CPU)","MIPS")
ASR_HOST_CPU_TYPE = $(ASR_CPU_MIPS)
else
ifeq ("$(ASR_HOST_CPU)","ALPHA")
ASR_HOST_CPU_TYPE = $(ASR_CPU_ALPHA)
else
ifeq ("$(ASR_HOST_CPU)","PPC")
ASR_HOST_CPU_TYPE = $(ASR_CPU_PPC)
else
ifeq ("$(ASR_HOST_CPU)","SPARC")
ASR_HOST_CPU_TYPE = $(ASR_CPU_SPARC)
else
ifeq ("$(ASR_HOST_CPU)","ARM")
ASR_HOST_CPU_TYPE = $(ASR_CPU_ARM)
else
ifeq ("$(ASR_HOST_CPU)","STRONGARM")
ASR_HOST_CPU_TYPE = $(ASR_CPU_STRONGARM)
else
ifeq ("$(ASR_HOST_CPU)","AARCH64")
ASR_HOST_CPU_TYPE = $(ASR_CPU_AARCH64)
else
ifeq ("$(ASR_HOST_CPU)","TMS320X")
ASR_HOST_CPU_TYPE = $(ASR_CPU_TMS320X)
ifndef CPU_FAMILY
ASR_CPU_FAMILY_TYPE = 0
MESSAGE += \
$(subst $(space),|,'$$(ASR_CPU_FAMILY_TYPE) defaulted to "$(ASR_CPU_FAMILY_TYPE)"')
else
ifeq ("$(ASR_CPU_FAMILY)","3")
ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C30)
else
ifeq ("$(ASR_CPU_FAMILY)","4")
ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C40)
else
ifeq ("$(ASR_CPU_FAMILY)","2")
ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C2XX)
else
ifeq ("$(ASR_CPU_FAMILY)","5")
ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C54X)
else
ERROR += \
$(subst $(space),|,\
'Failed to select CPU family with $$(ASR_CPU_FAMILY) == "$(ASR_CPU_FAMILY)"')
ASR_CPU_FAMILY_TYPE=ASR_BAD_CPU_FAMILY
endif
endif
endif
endif
endif
else
ifeq ("$(ASR_HOST_CPU)","SH3")
ASR_HOST_CPU_TYPE = $(ASR_CPU_SH3)
else
ifeq ("$(ASR_HOST_CPU)","SH4")
ASR_HOST_CPU_TYPE = $(ASR_CPU_SH4)
else
ERROR += \
$(subst $(space),|,\
'Failed to select CPU architecture with $$(ASR_HOST_CPU) == "$(ASR_HOST_CPU)"')
ASR_HOST_CPU_TYPE = ASR_BAD_CPU
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
################################## TARGET_CPU #################################
ifeq ("$(ASR_TARGET_CPU)","I86")
ASR_TARGET_CPU_TYPE = $(ASR_CPU_I86)
else
ifeq ("$(ASR_TARGET_CPU)","68K")
ASR_TARGET_CPU_TYPE = $(ASR_CPU_68K)
else
ifeq ("$(ASR_TARGET_CPU)","MIPS")
ASR_TARGET_CPU_TYPE = $(ASR_CPU_MIPS)
else
ifeq ("$(ASR_TARGET_CPU)","ALPHA")
ASR_TARGET_CPU_TYPE = $(ASR_CPU_ALPHA)
else
ifeq ("$(ASR_TARGET_CPU)","PPC")
ASR_TARGET_CPU_TYPE = $(ASR_CPU_PPC)
else
ifeq ("$(ASR_TARGET_CPU)","SPARC")
ASR_TARGET_CPU_TYPE = $(ASR_CPU_SPARC)
else
ifeq ("$(ASR_TARGET_CPU)","ARM")
ASR_TARGET_CPU_TYPE = $(ASR_CPU_ARM)
else
ifeq ("$(ASR_TARGET_CPU)","STRONGARM")
ASR_TARGET_CPU_TYPE = $(ASR_CPU_STRONGARM)
else
ifeq ("$(ASR_TARGET_CPU)","AARCH64")
ASR_TARGET_CPU_TYPE = $(ASR_CPU_AARCH64)
else
ifeq ("$(ASR_TARGET_CPU)","TMS320X")
ASR_TARGET_CPU_TYPE = $(ASR_CPU_TMS320X)
ifndef CPU_FAMILY
ASR_CPU_FAMILY_TYPE = 0
MESSAGE += \
$(subst $(space),|,'$$(ASR_CPU_FAMILY_TYPE) defaulted to "$(ASR_CPU_FAMILY_TYPE)"')
else
ifeq ("$(ASR_CPU_FAMILY)","3")
ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C30)
else
ifeq ("$(ASR_CPU_FAMILY)","4")
ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C40)
else
ifeq ("$(ASR_CPU_FAMILY)","2")
ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C2XX)
else
ifeq ("$(ASR_CPU_FAMILY)","5")
ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C54X)
else
ERROR += \
$(subst $(space),|,\
'Failed to select CPU family with $$(ASR_CPU_FAMILY) == "$(ASR_CPU_FAMILY)"')
ASR_CPU_FAMILY_TYPE=ASR_BAD_CPU_FAMILY
endif
endif
endif
endif
endif
else
ifeq ("$(ASR_TARGET_CPU)","SH3")
ASR_TARGET_CPU_TYPE = $(ASR_CPU_SH3)
else
ifeq ("$(ASR_TARGET_CPU)","SH4")
ASR_TARGET_CPU_TYPE = $(ASR_CPU_SH4)
else
ERROR += \
$(subst $(space),|,\
'Failed to select CPU architecture with $$(ASR_TARGET_CPU) == "$(ASR_TARGET_CPU)"')
ASR_TARGET_CPU_TYPE = ASR_BAD_CPU
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
############################### COMPILER ###############################
#
# $(ASR_COMPILER_CHAR) is also used to select which flags makefile to include.
ifeq ("$(ASR_COMPILER)","BORLAND") # !!! NOT SURE WHAT STRING TO USE !!!
ASR_COMPILER_TYPE = $(ASR_C_BORLAND)
else # same as COMPILER = "M$$"
ifeq ("$(ASR_COMPILER)","MS")
ASR_COMPILER_TYPE = $(ASR_C_MICROSOFT)
else
ifeq ("$(ASR_COMPILER)","INTEL") # !!! NOT SURE WHAT STRING TO USE !!!
ASR_COMPILER_TYPE = $(ASR_C_INTEL)
else
ifeq ("$(ASR_COMPILER)","HIGH") # !!! NOT SURE WHAT STRING TO USE !!!
ASR_COMPILER_TYPE = $(ASR_C_HIGH)
else
ifeq ("$(ASR_COMPILER)","ZORTECH") # !!! NOT SURE WHAT STRING TO USE !!!
ASR_COMPILER_TYPE = $(ASR_C_ZORTECH)
else
ifeq ("$(ASR_COMPILER)","WATCOM") # !!! NOT SURE WHAT STRING TO USE !!!
ASR_COMPILER_TYPE = $(ASR_C_WATCOM)
else
ifeq ("$(ASR_COMPILER)","GNU") # !!! NOT SURE WHAT STRING TO USE !!!
ASR_COMPILER_TYPE = $(ASR_C_GNU)
else
ifeq ("$(ASR_COMPILER)","SUNPRO") # !!! NOT SURE WHAT STRING TO USE !!!
ASR_COMPILER_TYPE = $(ASR_C_SUNPRO)
else
ifeq ("$(ASR_COMPILER)","DECCXX") # !!! NOT SURE WHAT STRING TO USE !!!
ASR_COMPILER_TYPE = $(ASR_C_DECCXX)
else
ifeq ("$(ASR_COMPILER)","METROWERKS") # !!! NOT SURE WHAT STRING TO USE !!!
ASR_COMPILER_TYPE = $(ASR_C_METROWERKS)
else
ifeq ("$(ASR_COMPILER)","GHS") # !!! NOT SURE WHAT STRING TO USE !!!
ASR_COMPILER_TYPE = $(ASR_C_GHS)
else
ifeq ("$(ASR_COMPILER)","TICXC") # !!! NOT SURE WHAT STRING TO USE !!!
ASR_COMPILER_TYPE = $(ASR_C_TICXC)
else
ifeq ("$(ASR_COMPILER)","ARM") # !!! NOT ANY PARTICULAR COMPILER !!!
ASR_COMPILER_TYPE = $(ASR_C_ARM)
else
ifeq ("$(ASR_COMPILER)","DIABDATA") # !!! NOT ANY PARTICULAR COMPILER !!!
ASR_COMPILER_TYPE = $(ASR_C_DIABDATA)
else
ERROR += \
$(subst $(space),|,\
'Failed to select compiler with $$(ASR_COMPILER) == "$(ASR_COMPILER)"')
ASR_COMPILER_TYPE = ASR_BAD_COMPILER
ASR_COMPILER_CHAR = ASR_BAD_COMPILER
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
################################# BUILD ################################
#
# Define OPTIMIZE, PROFILE, and TRACE for use in $(ASR_COMPILER_CHAR)flags.mak.
# These values must be compatible with the corresponding ones in builddef.h.
ASR_OPTIMIZE = $(ASR_OFF)
ASR_PROFILE = $(ASR_OFF)
ASR_TRACE = $(ASR_OFF)
# # BUILD CHAR OPTIMIZE PROFILE TRACE
# ---- ---- -------- ------- -----
ifeq ("$(ASR_BUILD)","SHIP") # SHIP `S' OPTIMIZE
ASR_BUILD_TYPE = $(ASR_BUILD_SHIP)
ASR_BUILD_CHAR = s
ASR_OPTIMIZE = $(ASR_BUILD_TYPE)
else
ifeq ("$(ASR_BUILD)","NDEBUG") # SHIP `S' OPTIMIZE
ASR_BUILD_TYPE = $(ASR_BUILD_SHIP)
ASR_BUILD_CHAR = s
ASR_OPTIMIZE = $(ASR_BUILD_TYPE)
else
ifeq ("$(ASR_BUILD)","INHOUSE") # INHOUSE `I' OPTIMIZE
ASR_BUILD_TYPE = $(ASR_BUILD_INHOUSE)
ASR_BUILD_CHAR = i
ASR_OPTIMIZE = $(ASR_BUILD_TYPE)
else
ifeq ("$(ASR_BUILD)","DEBUGO") # DEBUG `G' OPTIMIZE
ASR_BUILD_TYPE = $(ASR_BUILD_DEBUGO)
ASR_BUILD_CHAR = g
ASR_OPTIMIZE = $(ASR_BUILD_TYPE)
else
ifeq ("$(ASR_BUILD)","DEBUG") # DEBUG `X'
ASR_BUILD_TYPE = $(ASR_BUILD_DEBUG)
ASR_BUILD_CHAR = x
else
ifeq ("$(ASR_BUILD)","PROFILE") # INHOUSE `P' OPTIMIZE PROFILE
ASR_BUILD_TYPE = $(ASR_BUILD_PROFILE)
ASR_BUILD_CHAR = p
ASR_OPTIMIZE = $(ASR_BUILD_TYPE)
ASR_PROFILE = $(ASR_BUILD_TYPE)
else
ifeq ("$(ASR_BUILD)","TRACE") # INHOUSE `L' OPTIMIZE TRACE
ASR_BUILD_TYPE = $(ASR_BUILD_TRACE)
ASR_BUILD_CHAR = l
ASR_OPTIMIZE = $(ASR_BUILD_TYPE)
ASR_TRACE = $(ASR_BUILD_TYPE)
else
ERROR += \
$(subst $(space),|,'Failed to select build type with $$(ASR_BUILD) == "$(ASR_BUILD)"')
ASR_BUILD_TYPE = ASR_BAD_BUILD
ASR_BUILD_CHAR = ASR_BAD_BUILD
endif
endif
endif
endif
endif
endif
endif
################################# UI #################################
#
# !!! NOT USED !!!
######################################################################
#
# Finally define the macros of interest.
ASR_GLOBAL_DEFINES = \
-DOS_UNIX=$(ASR_OS_UNIX) \
-DOS_EMBEDDED=$(ASR_OS_EMBEDDED) \
-DOS_VXWORKS=$(ASR_OS_VXWORKS) \
-DOS_PSOS=$(ASR_OS_PSOS) \
-DOS_QNX=$(ASR_OS_QNX) \
-DOS=$(ASR_OS_TYPE) \
-DHOST_OS=$(ASR_HOST_OS_TYPE) \
-DTARGET_OS=$(ASR_TARGET_OS_TYPE) \
-DCPU_PPC=$(ASR_CPU_PPC) \
-DCPU_SPARC=$(ASR_CPU_SPARC) \
-DCPU_ARM=$(ASR_CPU_ARM) \
-DCPU_STRONGARM=$(ASR_CPU_STRONGARM) \
-DCPU_AARCH64=$(ASR_CPU_AARCH64) \
-DCPU_TMS320X=$(ASR_CPU_TMS320X) \
-DCPU_SH3=$(ASR_CPU_SH3) \
-DCPU_SH4=$(ASR_CPU_SH4) \
-DCPU=$(ASR_CPU_TYPE) \
-DHOST_CPU=$(ASR_HOST_CPU_TYPE) \
-DTARGET_CPU=$(ASR_TARGET_CPU_TYPE) \
-DC_GNU=$(ASR_C_GNU) \
-DC_SUNPRO=$(ASR_C_SUNPRO) \
-DC_METROWERKS=$(ASR_C_METROWERKS) \
-DC_TICXC=$(ASR_C_TICXC) \
-DC_ARM=$(ASR_C_ARM) \
-DCOMPILER=$(ASR_COMPILER_TYPE) \
-DBUILD_SHIP=$(ASR_BUILD_SHIP) \
-DBUILD_DEBUG=$(ASR_BUILD_DEBUG) \
-DBUILD=$(ASR_BUILD_TYPE) \
# Include these from Makefile.common
ASR_GLOBAL_DEFINES += $(ASR_COMMON_DEFINES) $(ASR_WORKAROUND_DEFINES)
# OS specific defines
ifeq ($(ASR_TARGET_OS),UNIX)
ASR_GLOBAL_DEFINES += -DPOSIX -D__linux
endif
# BUILD specific defines and flags
ASR_GLOBAL_CPPFLAGS =
ifeq ($(ASR_BUILD),SHIP)
ASR_GLOBAL_DEFINES += -DNDEBUG -D_SHIP -DFINAL_RELEASE
#ASR_GLOBAL_CPPFLAGS += -O3 -fno-strict-aliasing
endif
ifeq ($(ASR_BUILD),NDEBUG)
ASR_GLOBAL_DEFINES += -DNDEBUG
#ASR_GLOBAL_CPPFLAGS +=
endif
ifeq ($(ASR_BUILD),INHOUSE)
ASR_GLOBAL_DEFINES += -D_INHOUSE
#ASR_GLOBAL_CPPFLAGS += -g3
endif
ifeq ($(ASR_BUILD),DEBUGO)
ASR_GLOBAL_DEFINES += -D_DEBUG
#ASR_GLOBAL_CPPFLAGS += -g
endif
ifeq ($(ASR_BUILD),DEBUG)
ASR_GLOBAL_DEFINES += -D_DEBUG
#ASR_GLOBAL_CPPFLAGS += -g
endif
ifneq ($(ASR_OPTIMIZE),$(ASR_OFF))
ASR_GLOBAL_DEFINES += -D_OPTIMIZE
#ASR_GLOBAL_CPPFLAGS += -O3
endif
ifneq ($(ASR_PROFILE),$(ASR_OFF))
ASR_GLOBAL_DEFINES += -D_PROFILE
#ASR_GLOBAL_CPPFLAGS += -g3
endif
ifneq ($(ASR_TRACE),$(ASR_OFF))
ASR_GLOBAL_DEFINES += -D_TRACE
#ASR_GLOBAL_CPPFLAGS +=
endif