Home | History | Annotate | Download | only in asr
      1 ###############################################################################
      2 # Defines $(ASR_GLOBAL_DEFINES) (among other things) that specify a build.
      3 #
      4 # !!! NOTE:	This file must be kept synchronized with builddef.h
      5 # !!!		Also the values of $(ASR_OPTIMIZE), $(ASR_PROFILE), & $(ASR_TRACE) must
      6 # !!!		be compatible with the corresponding values in buildddef.h
      7 #
      8 # Required macros set in macros.mak:
      9 #	$(ASR_OS)			The name of the operating system.
     10 #	$(ASR_CPU)			The name of the CPU architecture.
     11 #	$(ASR_COMPILER)		The name of the compiler.
     12 #	$(ASR_BUILD)		A string that defines what type of build to perform.
     13 #	$(ASR_UI)			The name of the type of user interface.
     14 #
     15 # The important macros defined herein are:
     16 # *	$(ASR_GLOBAL_DEFINES)The compiler defines based on the values of:
     17 #					$(ASR_OS), $(ASR_CPU), $(ASR_COMPILER), $(ASR_BUILD), & $(ASR_UI).
     18 # *	$(ASR_SUB_DIR)		The object, library, & binary sub-directory name.
     19 # *	$(ASR_OPTIMIZE)		Used by $(ASR_COMPILER_CHAR)flags.mak to enable optimization.
     20 # *	$(ASR_PROFILE)		Used by $(ASR_COMPILER_CHAR)flags.mak to enable profiling.
     21 # *	$(ASR_TRACE)		Used by $(ASR_COMPILER_CHAR)flags.mak to enable tracing.
     22 #
     23 # Other macros incidentally valid on exit:
     24 # *	$(ASR_OS_TYPE)		Value corresponding to the type of operating system.
     25 #	$(ASR_CPU_TYPE)		Value corresponding to the type of CPU architecture.
     26 #	$(ASR_COMPILER_TYPE)Value corresponding to the type of compiler.
     27 # *	$(ASR_BUILD_TYPE)	Value corresponding to the type of build to perform.
     28 #	$(ASR_UI_TYPE)		Value corresponding to the type of user interface.
     29 #	$(ASR_OS_CHAR)		Character corresponding to the type of operating system.
     30 #	$(ASR_CPU_CHARS)	Characters corresponding to the type of CPU architecture.
     31 # *	$(ASR_COMPILER_CHAR)Character corresponding to the type of compiler.
     32 #	$(ASR_BUILD_CHAR)	Character corresponding to the type of build to perform.
     33 #	$(ASR_OS_MSDOS)		Value associated with $(ASR_OS_CHAR) = D.
     34 #	$(ASR_OS_WIN32)		Value associated with $(ASR_OS_CHAR) = W.
     35 #	$(ASR_OS_MAC)		Value associated with $(ASR_OS_CHAR) = M.
     36 #	$(ASR_OS_UNIX)		Value associated with $(ASR_OS_CHAR) = U.
     37 #	$(ASR_OS_EMBEDDED)	Value associated with $(ASR_OS_CHAR) = E.
     38 #	$(ASR_OS_VXWORKS)	Value associated with $(ASR_OS_CHAR) = V.
     39 #	$(ASR_OS_QNX)		Value associated with $(ASR_OS_CHAR) = Q.
     40 #	$(ASR_OS_PSOS)		Value associated with $(ASR_OS_CHAR) = S.
     41 #	$(ASR_OS_WINCE)		Value associated with $(ASR_OS_CHAR) = C.
     42 #	$(ASR_OS_PALM)		Value associated with $(ASR_OS_CHAR) = P.
     43 #	$(ASR_OS_JAVA)		Value associated with $(ASR_OS_CHAR) = J.
     44 #	$(ASR_CPU_I86)		Value associated with $(ASR_CPU_CHARS) = IN.
     45 #	$(ASR_CPU_68K)		Value associated with $(ASR_CPU_CHARS) = MO.
     46 #	$(ASR_CPU_MIPS)		Value associated with $(ASR_CPU_CHARS) = MI.
     47 #	$(ASR_CPU_ALPHA)	Value associated with $(ASR_CPU_CHARS) = AL.
     48 #	$(ASR_CPU_PPC)		Value associated with $(ASR_CPU_CHARS) = PP.
     49 #	$(ASR_CPU_SPARC)	Value associated with $(ASR_CPU_CHARS) = SP.
     50 #	$(ASR_CPU_ARM)		Value associated with $(ASR_CPU_CHARS) = AR.
     51 #	$(ASR_CPU_STRONGARM)Value associated with $(ASR_CPU_CHARS) = SA.
     52 #	$(ASR_CPU_AARCH64)  Value associated with $(ASR_CPU_CHARS) = AA.
     53 #	$(ASR_CPU_TMS320X)	Value associated with $(ASR_CPU_CHARS) = TI.
     54 #	$(ASR_CPU_SH3)		Value associated with $(ASR_CPU_CHARS) = HI.
     55 #	$(ASR_CPU_SH4)		Value associated with $(ASR_CPU_CHARS) = HI.
     56 #	$(ASR_CPU_FAMILY_TMS320C30)Value associated with $(ASR_CPU_FAMILY) = 3.
     57 #	$(ASR_CPU_FAMILY_TMS320C40)Value associated with $(ASR_CPU_FAMILY) = 4.
     58 #	$(ASR_CPU_FAMILY_TMS320C2XX)Value associated with $(ASR_CPU_FAMILY) = 2.
     59 #	$(ASR_CPU_FAMILY_TMS320C54X)Value associated with $(ASR_CPU_FAMILY) = 5.
     60 #	$(ASR_C_BORLAND)	Value associated with $(ASR_COMPILER_CHAR) = B.
     61 #	$(ASR_C_MICROSOFT)	Value associated with $(ASR_COMPILER_CHAR) = M.
     62 #	$(ASR_C_HIGH)		Value associated with $(ASR_COMPILER_CHAR) = H.
     63 #	$(ASR_C_INTEL)		Value associated with $(ASR_COMPILER_CHAR) = I.
     64 #	$(ASR_C_ZORTECH)	Value associated with $(ASR_COMPILER_CHAR) = Z.
     65 #	$(ASR_C_WATCOM)		Value associated with $(ASR_COMPILER_CHAR) = W.
     66 #	$(ASR_C_GNU)		Value associated with $(ASR_COMPILER_CHAR) = G.
     67 #	$(ASR_C_SUNPRO)		Value associated with $(ASR_COMPILER_CHAR) = S.
     68 #	$(ASR_C_DECCXX)		Value associated with $(ASR_COMPILER_CHAR) = D.
     69 #	$(ASR_C_METROWERKS)	Value associated with $(ASR_COMPILER_CHAR) = C.
     70 #	$(ASR_C_GHS)		Value associated with $(ASR_COMPILER_CHAR) = X.
     71 #	$(ASR_C_TICXC)		Value associated with $(ASR_COMPILER_CHAR) = T.
     72 #	$(ASR_C_ARM)		Value associated with $(ASR_COMPILER_CHAR) = A.
     73 #	$(ASR_BUILD_SHIP)	Value associated with $(ASR_BUILD_CHAR) = S.
     74 #	$(ASR_BUILD_INHOUSE)Value associated with $(ASR_BUILD_CHAR) = I.
     75 #	$(ASR_BUILD_DEBUGO)	Value associated with $(ASR_BUILD_CHAR) = G.
     76 #	$(ASR_BUILD_DEBUG)	Value associated with $(ASR_BUILD_CHAR) = X.
     77 #	$(ASR_BUILD_PROFILE)Value associated with $(ASR_BUILD_CHAR) = P.
     78 #	$(ASR_BUILD_TRACE)	Value associated with $(ASR_BUILD_CHAR) = L.
     79 #
     80 # !!! NOTE:	Should these UI macros be used?
     81 #
     82 #	$(ASR_UI_NONE)
     83 #	$(ASR_UI_TTY)
     84 #	$(ASR_UI_GUI)
     85 #
     86 # Optional (for certain values of $(ASR_CPU)) macros used herein:
     87 #	$(ASR_CPU_FAMILY)	OPTIONAL single-character name of the $(ASR_CPU) family.
     88 #
     89 # Optional (for certain values of $(ASR_CPU)) macros defined herein:
     90 # *	$(ASR_CPU_FAMILY_TYPE)For OPTIONAL CPU-specifics in $(ASR_COMPILER_CHAR)flags.mak.
     91 #
     92 # *	Used outside of this makefile. All macros with the suffix ``_TYPE''
     93 #	used outside of this makefile can be &ed with macros with the
     94 #	corresponding prefix. Threfore it is implied that those macros are
     95 #	also available outside of this makefile.
     96 ###############################################################################
     97 
     98 # Makefile.config configures the ASR build.  Include this first!
     99 include $(ASR_MAKE_DIR)/Makefile.config
    100 
    101 # Makefile.common contains settings available to all ASR modules
    102 include $(ASR_MAKE_DIR)/Makefile.common
    103 
    104 # Define $(ASR_OS_*), $(ASR_CPU_*), $(ASR_COMPILER_*), $(ASR_BUILD_*) & $(ASR_UI_*) values.
    105 
    106 # OS
    107 
    108 ASR_OS_MSDOS = 1
    109 ASR_OS_WIN32 = 2
    110 ASR_OS_MAC = 4
    111 ASR_OS_UNIX = 8
    112 ASR_OS_EMBEDDED = 16
    113 ASR_OS_VXWORKS = 32
    114 ASR_OS_PSOS = 64
    115 ASR_OS_WINCE = 128
    116 ASR_OS_PALM = 256
    117 ASR_OS_JAVA = 512
    118 ASR_OS_QNX = 1024
    119 
    120 # CPU
    121 
    122 ASR_CPU_I86 = 1
    123 ASR_CPU_68K = 2
    124 ASR_CPU_MIPS = 4
    125 ASR_CPU_ALPHA = 8
    126 ASR_CPU_PPC = 16
    127 ASR_CPU_SPARC = 32
    128 ASR_CPU_ARM = 64
    129 ASR_CPU_STRONGARM = 128
    130 ASR_CPU_TMS320X = 256
    131 ASR_CPU_SH3 = 512
    132 ASR_CPU_SH4 = 1024
    133 ASR_CPU_AARCH64 = 2048
    134 
    135 # Used only by TFLAGS.MAK.
    136 
    137 ASR_CPU_FAMILY_TMS320C30 = 1
    138 ASR_CPU_FAMILY_TMS320C40 = 2
    139 ASR_CPU_FAMILY_TMS320C2XX = 4
    140 ASR_CPU_FAMILY_TMS320C54X = 8
    141 
    142 # COMPILER
    143 
    144 ASR_C_BORLAND = 1
    145 ASR_C_MICROSOFT = 2
    146 ASR_C_INTEL = 4
    147 ASR_C_HIGH = 8
    148 ASR_C_ZORTECH = 16
    149 ASR_C_WATCOM = 32
    150 ASR_C_GNU = 64
    151 ASR_C_SUNPRO = 128
    152 ASR_C_DECCXX = 256
    153 ASR_C_METROWERKS = 512
    154 ASR_C_GHS = 1024
    155 ASR_C_TICXC = 2048
    156 ASR_C_ARM = 4096
    157 ASR_C_DIABDATA = 8192
    158 
    159 # BUILD (must be synchronized with vcc_helper.h included by buildopt.h)
    160 
    161 ASR_BUILD_SHIP = 1
    162 ASR_BUILD_INHOUSE = 2
    163 ASR_BUILD_DEBUGO = 4
    164 ASR_BUILD_DEBUG = 8
    165 ASR_BUILD_PROFILE = 16
    166 ASR_BUILD_TRACE = 32
    167 
    168 ASR_OFF = 0
    169 
    170 # UI
    171 
    172 ASR_UI_NONE = 1
    173 ASR_UI_TTY = 2
    174 ASR_UI_GUI = 4
    175 
    176 ########################################################################
    177 #
    178 # Define $(ASR_*_TYPE) and $(ASR_*_CHAR[S]) to be used to define $(ASR_GLOBAL_DEFINES)
    179 # and $(ASR_SUB_DIR).
    180 
    181 ################################## OS ##################################
    182 
    183 ifeq ("$(ASR_OS)","MSDOS")
    184 ASR_OS_TYPE = $(ASR_OS_MSDOS)
    185 
    186 else								# same as OS = "Windows_NT"
    187 ifeq ("$(ASR_OS)","WIN32")
    188 ASR_OS_TYPE = $(ASR_OS_WIN32)
    189 
    190 else								# same as OS = "WIN32"
    191 ifeq ("$(ASR_OS)","Windows_NT")
    192 ASR_OS_TYPE = $(ASR_OS_WIN32)
    193 
    194 else
    195 ifeq ("$(ASR_OS)","MAC")
    196 ASR_OS_TYPE = $(ASR_OS_MAC)
    197 
    198 else
    199 ifeq ("$(ASR_OS)","UNIX")
    200 ASR_OS_TYPE = $(ASR_OS_UNIX)
    201 
    202 else
    203 ifeq ("$(ASR_OS)","EMBEDDED")
    204 ASR_OS_TYPE = $(ASR_OS_EMBEDDED)
    205 
    206 else
    207 ifeq ("$(ASR_OS)","VXWORKS")
    208 ASR_OS_TYPE = $(ASR_OS_VXWORKS)
    209 
    210 else
    211 ifeq ("$(ASR_OS)","PSOS")
    212 ASR_OS_TYPE = $(ASR_OS_PSOS)
    213 
    214 else
    215 ifeq ("$(ASR_OS)","Wince")
    216 ASR_OS_TYPE = $(ASR_OS_WINCE)
    217 
    218 else
    219 ifeq ("$(ASR_OS)","PALM")
    220 ASR_OS_TYPE = $(ASR_OS_PALM)
    221 
    222 else
    223 ifeq ("$(ASR_OS)","JAVA")
    224 ASR_OS_TYPE = $(ASR_OS_JAVA)
    225 
    226 else
    227 ifeq ("$(ASR_OS)","QNX")
    228 ASR_OS_TYPE = $(ASR_OS_QNX)
    229 
    230 else
    231 ERROR += \
    232 $(subst $(space),|,'Failed to select operating system with $$(ASR_OS) == "$(ASR_$(ASR_OS))"')
    233 ASR_OS_TYPE = ASR_BAD_OS
    234 endif
    235 endif
    236 endif
    237 endif
    238 endif
    239 endif
    240 endif
    241 endif
    242 endif
    243 endif
    244 endif
    245 endif
    246 
    247 
    248 ################################## HOST_OS ##################################
    249 
    250 ifeq ("$(ASR_HOST_OS)","MSDOS")
    251 ASR_HOST_OS_TYPE = $(ASR_OS_MSDOS)
    252 
    253 else								# same as OS = "Windows_NT"
    254 ifeq ("$(ASR_HOST_OS)","WIN32")
    255 ASR_HOST_OS_TYPE = $(ASR_OS_WIN32)
    256 
    257 else								# same as OS = "WIN32"
    258 ifeq ("$(ASR_HOST_OS)","Windows_NT")
    259 ASR_HOST_OS_TYPE = $(ASR_OS_WIN32)
    260 
    261 else
    262 ifeq ("$(ASR_HOST_OS)","MAC")
    263 ASR_HOST_OS_TYPE = $(ASR_OS_MAC)
    264 
    265 else
    266 ifeq ("$(ASR_HOST_OS)","UNIX")
    267 ASR_HOST_OS_TYPE = $(ASR_OS_UNIX)
    268 
    269 else
    270 ifeq ("$(ASR_HOST_OS)","EMBEDDED")
    271 ASR_HOST_OS_TYPE = $(ASR_OS_EMBEDDED)
    272 
    273 else
    274 ifeq ("$(ASR_HOST_OS)","VXWORKS")
    275 ASR_HOST_OS_TYPE = $(ASR_OS_VXWORKS)
    276 
    277 else
    278 ifeq ("$(ASR_HOST_OS)","PSOS")
    279 ASR_HOST_OS_TYPE = $(ASR_OS_PSOS)
    280 
    281 else
    282 ifeq ("$(ASR_HOST_OS)","Wince")
    283 ASR_HOST_OS_TYPE = $(ASR_OS_WINCE)
    284 
    285 else
    286 ifeq ("$(ASR_HOST_OS)","PALM")
    287 ASR_HOST_OS_TYPE = $(ASR_OS_PALM)
    288 
    289 else
    290 ifeq ("$(ASR_HOST_OS)","JAVA")
    291 ASR_HOST_OS_TYPE = $(ASR_OS_JAVA)
    292 
    293 else
    294 ifeq ("$(ASR_HOST_OS)","QNX")
    295 ASR_HOST_OS_TYPE = $(ASR_OS_QNX)
    296 
    297 else
    298 ERROR += \
    299 $(subst $(space),|,'Failed to select operating system with $$(ASR_HOST_OS) == "$(ASR_HOST_OS)"')
    300 ASR_HOST_OS_TYPE = ASR_BAD_OS
    301 endif
    302 endif
    303 endif
    304 endif
    305 endif
    306 endif
    307 endif
    308 endif
    309 endif
    310 endif
    311 endif
    312 endif
    313 
    314 ################################## TARGET_OS ##################################
    315 
    316 ifeq ("$(ASR_TARGET_OS)","MSDOS")
    317 ASR_TARGET_OS_TYPE = $(ASR_OS_MSDOS)
    318 
    319 else								# same as OS = "Windows_NT"
    320 ifeq ("$(ASR_TARGET_OS)","WIN32")
    321 ASR_TARGET_OS_TYPE = $(ASR_OS_WIN32)
    322 
    323 else								# same as OS = "WIN32"
    324 ifeq ("$(ASR_TARGET_OS)","Windows_NT")
    325 ASR_TARGET_OS_TYPE = $(ASR_OS_WIN32)
    326 
    327 else
    328 ifeq ("$(ASR_TARGET_OS)","MAC")
    329 ASR_TARGET_OS_TYPE = $(ASR_OS_MAC)
    330 
    331 else
    332 ifeq ("$(ASR_TARGET_OS)","UNIX")
    333 ASR_TARGET_OS_TYPE = $(ASR_OS_UNIX)
    334 
    335 else
    336 ifeq ("$(ASR_TARGET_OS)","EMBEDDED")
    337 ASR_TARGET_OS_TYPE = $(ASR_OS_EMBEDDED)
    338 
    339 else
    340 ifeq ("$(ASR_TARGET_OS)","VXWORKS")
    341 ASR_TARGET_OS_TYPE = $(ASR_OS_VXWORKS)
    342 
    343 else
    344 ifeq ("$(ASR_TARGET_OS)","PSOS")
    345 ASR_TARGET_OS_TYPE = $(ASR_OS_PSOS)
    346 
    347 else
    348 ifeq ("$(ASR_TARGET_OS)","Wince")
    349 ASR_TARGET_OS_TYPE = $(ASR_OS_WINCE)
    350 
    351 else
    352 ifeq ("$(ASR_TARGET_OS)","PALM")
    353 ASR_TARGET_OS_TYPE = $(ASR_OS_PALM)
    354 
    355 else
    356 ifeq ("$(ASR_TARGET_OS)","JAVA")
    357 ASR_TARGET_OS_TYPE = $(ASR_OS_JAVA)
    358 
    359 else
    360 ifeq ("$(ASR_TARGET_OS)","QNX")
    361 ASR_TARGET_OS_TYPE = $(ASR_OS_QNX)
    362 
    363 else
    364 ERROR += \
    365 $(subst $(space),|,'Failed to select operating system with $$(ASR_TARGET_OS) == "$(ASR_TARGET_OS)"')
    366 ASR_TARGET_OS_TYPE = ASR_BAD_OS
    367 endif
    368 endif
    369 endif
    370 endif
    371 endif
    372 endif
    373 endif
    374 endif
    375 endif
    376 endif
    377 endif
    378 endif
    379 
    380 ################################## CPU #################################
    381 
    382 ifeq ("$(ASR_CPU)","I86")
    383 ASR_CPU_TYPE = $(ASR_CPU_I86)
    384 ASR_CPU_CHARS = in
    385 
    386 else
    387 ifeq ("$(ASR_CPU)", "SIMNT")
    388 ASR_CPU_TYPE = $(ASR_CPU_I86)
    389 ASR_CPU_CHARS = in
    390 
    391 else
    392 ifeq ("$(ASR_CPU)","68K")
    393 ASR_CPU_TYPE = $(ASR_CPU_68K)
    394 ASR_CPU_CHARS = mo
    395 
    396 else
    397 ifeq ("$(ASR_CPU)","MIPS")
    398 ASR_CPU_TYPE = $(ASR_CPU_MIPS)
    399 ASR_CPU_CHARS = mi
    400 
    401 else
    402 ifeq ("$(ASR_CPU)","ALPHA")
    403 ASR_CPU_TYPE = $(ASR_CPU_ALPHA)
    404 ASR_CPU_CHARS = al
    405 
    406 else
    407 ifeq ("$(ASR_CPU)","PPC")
    408 ASR_CPU_TYPE = $(ASR_CPU_PPC)
    409 ASR_CPU_CHARS = pp
    410 
    411 else
    412 ifeq ("$(ASR_CPU)","SPARC")
    413 ASR_CPU_TYPE = $(ASR_CPU_SPARC)
    414 ASR_CPU_CHARS = pp
    415 
    416 else
    417 ifeq ("$(ASR_CPU)","ARM")
    418 ASR_CPU_TYPE = $(ASR_CPU_ARM)
    419 ASR_CPU_CHARS = ar
    420 
    421 else
    422 ifeq ("$(ASR_CPU)","STRONGARM")
    423 ASR_CPU_TYPE = $(ASR_CPU_STRONGARM)
    424 ASR_CPU_CHARS = sa
    425 
    426 else
    427 ifeq ("$(ASR_CPU)","AARCH64")
    428 ASR_CPU_TYPE = $(ASR_CPU_AARCH64)
    429 ASR_CPU_CHARS = aa
    430 
    431 else
    432 ifeq ("$(ASR_CPU)","TMS320X")
    433 ASR_CPU_TYPE = $(ASR_CPU_TMS320X)
    434 ASR_CPU_CHARS = ti
    435 
    436 ifndef CPU_FAMILY
    437 CPU_FAMILY_TYPE = 0
    438 MESSAGE += \
    439 $(subst $(space),|,'$$(ASR_CPU_FAMILY_TYPE) defaulted to "$(ASR_CPU_FAMILY_TYPE)"')
    440 
    441 else
    442 ASR_CPU_CHARS = T$(ASR_CPU_FAMILY)
    443 
    444 ifeq ("$(ASR_CPU_FAMILY)","3")
    445 ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C30)
    446 
    447 else
    448 ifeq ("$(ASR_CPU_FAMILY)","4")
    449 ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C40)
    450 
    451 else
    452 ifeq ("$(ASR_CPU_FAMILY)","2")
    453 ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C2XX)
    454 
    455 else
    456 ifeq ("$(ASR_CPU_FAMILY)","5")
    457 ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C54X)
    458 
    459 else
    460 ERROR += \
    461 $(subst $(space),|,\
    462 'Failed to select CPU family with $$(ASR_CPU_FAMILY) == "$(ASR_CPU_FAMILY)"')
    463 ASR_CPU_FAMILY_TYPE=ASR_BAD_CPU_FAMILY
    464 endif
    465 endif
    466 endif
    467 endif
    468 endif
    469 
    470 else
    471 ifeq ("$(ASR_CPU)","SH3")
    472 ASR_CPU_TYPE = $(ASR_CPU_SH3)
    473 ASR_CPU_CHARS = hi
    474 
    475 else
    476 ifeq ("$(ASR_CPU)","SH4")
    477 ASR_CPU_TYPE = $(ASR_CPU_SH4)
    478 ASR_CPU_CHARS = hi
    479 
    480 else
    481 ERROR += \
    482 $(subst $(space),|,\
    483 'Failed to select CPU architecture with $$(ASR_CPU) == "$(ASR_$(ASR_CPU))"')
    484 ASR_CPU_TYPE = ASR_BAD_CPU
    485 ASR_CPU_CHARS = ASR_BAD_CPU
    486 endif
    487 endif
    488 endif
    489 endif
    490 endif
    491 endif
    492 endif
    493 endif
    494 endif
    495 endif
    496 endif
    497 endif
    498 endif
    499 
    500 ################################## HOST_CPU #################################
    501 
    502 ifeq ("$(ASR_HOST_CPU)","I86")
    503 ASR_HOST_CPU_TYPE = $(ASR_CPU_I86)
    504 
    505 else
    506 ifeq ("$(ASR_HOST_CPU)","68K")
    507 ASR_HOST_CPU_TYPE = $(ASR_CPU_68K)
    508 
    509 else
    510 ifeq ("$(ASR_HOST_CPU)","MIPS")
    511 ASR_HOST_CPU_TYPE = $(ASR_CPU_MIPS)
    512 
    513 else
    514 ifeq ("$(ASR_HOST_CPU)","ALPHA")
    515 ASR_HOST_CPU_TYPE = $(ASR_CPU_ALPHA)
    516 
    517 else
    518 ifeq ("$(ASR_HOST_CPU)","PPC")
    519 ASR_HOST_CPU_TYPE = $(ASR_CPU_PPC)
    520 
    521 else
    522 ifeq ("$(ASR_HOST_CPU)","SPARC")
    523 ASR_HOST_CPU_TYPE = $(ASR_CPU_SPARC)
    524 
    525 else
    526 ifeq ("$(ASR_HOST_CPU)","ARM")
    527 ASR_HOST_CPU_TYPE = $(ASR_CPU_ARM)
    528 
    529 else
    530 ifeq ("$(ASR_HOST_CPU)","STRONGARM")
    531 ASR_HOST_CPU_TYPE = $(ASR_CPU_STRONGARM)
    532 
    533 else
    534 ifeq ("$(ASR_HOST_CPU)","AARCH64")
    535 ASR_HOST_CPU_TYPE = $(ASR_CPU_AARCH64)
    536 
    537 else
    538 ifeq ("$(ASR_HOST_CPU)","TMS320X")
    539 ASR_HOST_CPU_TYPE = $(ASR_CPU_TMS320X)
    540 
    541 ifndef CPU_FAMILY
    542 ASR_CPU_FAMILY_TYPE = 0
    543 MESSAGE += \
    544 $(subst $(space),|,'$$(ASR_CPU_FAMILY_TYPE) defaulted to "$(ASR_CPU_FAMILY_TYPE)"')
    545 
    546 else
    547 
    548 ifeq ("$(ASR_CPU_FAMILY)","3")
    549 ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C30)
    550 
    551 else
    552 ifeq ("$(ASR_CPU_FAMILY)","4")
    553 ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C40)
    554 
    555 else
    556 ifeq ("$(ASR_CPU_FAMILY)","2")
    557 ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C2XX)
    558 
    559 else
    560 ifeq ("$(ASR_CPU_FAMILY)","5")
    561 ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C54X)
    562 
    563 else
    564 ERROR += \
    565 $(subst $(space),|,\
    566 'Failed to select CPU family with $$(ASR_CPU_FAMILY) == "$(ASR_CPU_FAMILY)"')
    567 ASR_CPU_FAMILY_TYPE=ASR_BAD_CPU_FAMILY
    568 endif
    569 endif
    570 endif
    571 endif
    572 endif
    573 
    574 else
    575 ifeq ("$(ASR_HOST_CPU)","SH3")
    576 ASR_HOST_CPU_TYPE = $(ASR_CPU_SH3)
    577 
    578 else
    579 ifeq ("$(ASR_HOST_CPU)","SH4")
    580 ASR_HOST_CPU_TYPE = $(ASR_CPU_SH4)
    581 
    582 
    583 else
    584 ERROR += \
    585 $(subst $(space),|,\
    586 'Failed to select CPU architecture with $$(ASR_HOST_CPU) == "$(ASR_HOST_CPU)"')
    587 ASR_HOST_CPU_TYPE = ASR_BAD_CPU
    588 endif
    589 endif
    590 endif
    591 endif
    592 endif
    593 endif
    594 endif
    595 endif
    596 endif
    597 endif
    598 endif
    599 endif
    600 
    601 ################################## TARGET_CPU #################################
    602 
    603 ifeq ("$(ASR_TARGET_CPU)","I86")
    604 ASR_TARGET_CPU_TYPE = $(ASR_CPU_I86)
    605 
    606 else
    607 ifeq ("$(ASR_TARGET_CPU)","68K")
    608 ASR_TARGET_CPU_TYPE = $(ASR_CPU_68K)
    609 
    610 else
    611 ifeq ("$(ASR_TARGET_CPU)","MIPS")
    612 ASR_TARGET_CPU_TYPE = $(ASR_CPU_MIPS)
    613 
    614 else
    615 ifeq ("$(ASR_TARGET_CPU)","ALPHA")
    616 ASR_TARGET_CPU_TYPE = $(ASR_CPU_ALPHA)
    617 
    618 else
    619 ifeq ("$(ASR_TARGET_CPU)","PPC")
    620 ASR_TARGET_CPU_TYPE = $(ASR_CPU_PPC)
    621 
    622 else
    623 ifeq ("$(ASR_TARGET_CPU)","SPARC")
    624 ASR_TARGET_CPU_TYPE = $(ASR_CPU_SPARC)
    625 
    626 else
    627 ifeq ("$(ASR_TARGET_CPU)","ARM")
    628 ASR_TARGET_CPU_TYPE = $(ASR_CPU_ARM)
    629 
    630 else
    631 ifeq ("$(ASR_TARGET_CPU)","STRONGARM")
    632 ASR_TARGET_CPU_TYPE = $(ASR_CPU_STRONGARM)
    633 
    634 else
    635 ifeq ("$(ASR_TARGET_CPU)","AARCH64")
    636 ASR_TARGET_CPU_TYPE = $(ASR_CPU_AARCH64)
    637 
    638 else
    639 ifeq ("$(ASR_TARGET_CPU)","TMS320X")
    640 ASR_TARGET_CPU_TYPE = $(ASR_CPU_TMS320X)
    641 
    642 ifndef CPU_FAMILY
    643 ASR_CPU_FAMILY_TYPE = 0
    644 MESSAGE += \
    645 $(subst $(space),|,'$$(ASR_CPU_FAMILY_TYPE) defaulted to "$(ASR_CPU_FAMILY_TYPE)"')
    646 
    647 else
    648 
    649 ifeq ("$(ASR_CPU_FAMILY)","3")
    650 ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C30)
    651 
    652 else
    653 ifeq ("$(ASR_CPU_FAMILY)","4")
    654 ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C40)
    655 
    656 else
    657 ifeq ("$(ASR_CPU_FAMILY)","2")
    658 ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C2XX)
    659 
    660 else
    661 ifeq ("$(ASR_CPU_FAMILY)","5")
    662 ASR_CPU_FAMILY_TYPE = $(ASR_CPU_FAMILY_TMS320C54X)
    663 
    664 else
    665 ERROR += \
    666 $(subst $(space),|,\
    667 'Failed to select CPU family with $$(ASR_CPU_FAMILY) == "$(ASR_CPU_FAMILY)"')
    668 ASR_CPU_FAMILY_TYPE=ASR_BAD_CPU_FAMILY
    669 endif
    670 endif
    671 endif
    672 endif
    673 endif
    674 
    675 else
    676 ifeq ("$(ASR_TARGET_CPU)","SH3")
    677 ASR_TARGET_CPU_TYPE = $(ASR_CPU_SH3)
    678 
    679 else
    680 ifeq ("$(ASR_TARGET_CPU)","SH4")
    681 ASR_TARGET_CPU_TYPE = $(ASR_CPU_SH4)
    682 
    683 else
    684 
    685 ERROR += \
    686 $(subst $(space),|,\
    687 'Failed to select CPU architecture with $$(ASR_TARGET_CPU) == "$(ASR_TARGET_CPU)"')
    688 ASR_TARGET_CPU_TYPE = ASR_BAD_CPU
    689 endif
    690 endif
    691 endif
    692 endif
    693 endif
    694 endif
    695 endif
    696 endif
    697 endif
    698 endif
    699 endif
    700 endif
    701 
    702 
    703 ############################### COMPILER ###############################
    704 #
    705 # $(ASR_COMPILER_CHAR) is also used to select which flags makefile to include.
    706 
    707 ifeq ("$(ASR_COMPILER)","BORLAND")		# !!! NOT SURE WHAT STRING TO USE !!!
    708 ASR_COMPILER_TYPE = $(ASR_C_BORLAND)
    709 
    710 else								# same as COMPILER = "M$$"
    711 ifeq ("$(ASR_COMPILER)","MS")
    712 ASR_COMPILER_TYPE = $(ASR_C_MICROSOFT)
    713 
    714 else
    715 ifeq ("$(ASR_COMPILER)","INTEL")		# !!! NOT SURE WHAT STRING TO USE !!!
    716 ASR_COMPILER_TYPE = $(ASR_C_INTEL)
    717 
    718 else
    719 ifeq ("$(ASR_COMPILER)","HIGH")			# !!! NOT SURE WHAT STRING TO USE !!!
    720 ASR_COMPILER_TYPE = $(ASR_C_HIGH)
    721 
    722 else
    723 ifeq ("$(ASR_COMPILER)","ZORTECH")		# !!! NOT SURE WHAT STRING TO USE !!!
    724 ASR_COMPILER_TYPE = $(ASR_C_ZORTECH)
    725 
    726 else
    727 ifeq ("$(ASR_COMPILER)","WATCOM")		# !!! NOT SURE WHAT STRING TO USE !!!
    728 ASR_COMPILER_TYPE = $(ASR_C_WATCOM)
    729 
    730 else
    731 ifeq ("$(ASR_COMPILER)","GNU")			# !!! NOT SURE WHAT STRING TO USE !!!
    732 ASR_COMPILER_TYPE = $(ASR_C_GNU)
    733 
    734 else
    735 ifeq ("$(ASR_COMPILER)","SUNPRO")		# !!! NOT SURE WHAT STRING TO USE !!!
    736 ASR_COMPILER_TYPE = $(ASR_C_SUNPRO)
    737 
    738 else
    739 ifeq ("$(ASR_COMPILER)","DECCXX")		# !!! NOT SURE WHAT STRING TO USE !!!
    740 ASR_COMPILER_TYPE = $(ASR_C_DECCXX)
    741 
    742 else
    743 ifeq ("$(ASR_COMPILER)","METROWERKS")	# !!! NOT SURE WHAT STRING TO USE !!!
    744 ASR_COMPILER_TYPE = $(ASR_C_METROWERKS)
    745 
    746 else
    747 ifeq ("$(ASR_COMPILER)","GHS")			# !!! NOT SURE WHAT STRING TO USE !!!
    748 ASR_COMPILER_TYPE = $(ASR_C_GHS)
    749 
    750 else
    751 ifeq ("$(ASR_COMPILER)","TICXC")		# !!! NOT SURE WHAT STRING TO USE !!!
    752 ASR_COMPILER_TYPE = $(ASR_C_TICXC)
    753 
    754 else
    755 ifeq ("$(ASR_COMPILER)","ARM")			# !!! NOT ANY PARTICULAR COMPILER !!!
    756 ASR_COMPILER_TYPE = $(ASR_C_ARM)
    757 
    758 else
    759 ifeq ("$(ASR_COMPILER)","DIABDATA")			# !!! NOT ANY PARTICULAR COMPILER !!!
    760 ASR_COMPILER_TYPE = $(ASR_C_DIABDATA)
    761 
    762 else
    763 ERROR += \
    764 $(subst $(space),|,\
    765 'Failed to select compiler with $$(ASR_COMPILER) == "$(ASR_COMPILER)"')
    766 ASR_COMPILER_TYPE = ASR_BAD_COMPILER
    767 ASR_COMPILER_CHAR = ASR_BAD_COMPILER
    768 endif
    769 endif
    770 endif
    771 endif
    772 endif
    773 endif
    774 endif
    775 endif
    776 endif
    777 endif
    778 endif
    779 endif
    780 endif
    781 endif
    782 
    783 ################################# BUILD ################################
    784 #
    785 # Define OPTIMIZE, PROFILE, and TRACE for use in $(ASR_COMPILER_CHAR)flags.mak.
    786 # These values must be compatible with the corresponding ones in builddef.h.
    787 
    788 ASR_OPTIMIZE = $(ASR_OFF)
    789 ASR_PROFILE = $(ASR_OFF)
    790 ASR_TRACE = $(ASR_OFF)
    791 
    792 #									# BUILD  CHAR  OPTIMIZE  PROFILE  TRACE
    793 #									  ----   ----  --------  -------  -----
    794 ifeq ("$(ASR_BUILD)","SHIP")			# SHIP    `S'  OPTIMIZE
    795 ASR_BUILD_TYPE = $(ASR_BUILD_SHIP)
    796 ASR_BUILD_CHAR = s
    797 ASR_OPTIMIZE = $(ASR_BUILD_TYPE)
    798 
    799 else
    800 ifeq ("$(ASR_BUILD)","NDEBUG")			# SHIP    `S'  OPTIMIZE
    801 ASR_BUILD_TYPE = $(ASR_BUILD_SHIP)
    802 ASR_BUILD_CHAR = s
    803 ASR_OPTIMIZE = $(ASR_BUILD_TYPE)
    804 
    805 else
    806 ifeq ("$(ASR_BUILD)","INHOUSE")			# INHOUSE `I'  OPTIMIZE
    807 ASR_BUILD_TYPE = $(ASR_BUILD_INHOUSE)
    808 ASR_BUILD_CHAR = i
    809 ASR_OPTIMIZE = $(ASR_BUILD_TYPE)
    810 
    811 else
    812 ifeq ("$(ASR_BUILD)","DEBUGO")			# DEBUG   `G'  OPTIMIZE
    813 ASR_BUILD_TYPE = $(ASR_BUILD_DEBUGO)
    814 ASR_BUILD_CHAR = g
    815 ASR_OPTIMIZE = $(ASR_BUILD_TYPE)
    816 
    817 else
    818 ifeq ("$(ASR_BUILD)","DEBUG")			# DEBUG   `X'
    819 ASR_BUILD_TYPE = $(ASR_BUILD_DEBUG)
    820 ASR_BUILD_CHAR = x
    821 
    822 else
    823 ifeq ("$(ASR_BUILD)","PROFILE")			# INHOUSE `P'  OPTIMIZE  PROFILE
    824 ASR_BUILD_TYPE = $(ASR_BUILD_PROFILE)
    825 ASR_BUILD_CHAR = p
    826 ASR_OPTIMIZE = $(ASR_BUILD_TYPE)
    827 ASR_PROFILE = $(ASR_BUILD_TYPE)
    828 
    829 else
    830 ifeq ("$(ASR_BUILD)","TRACE")			# INHOUSE `L'  OPTIMIZE           TRACE
    831 ASR_BUILD_TYPE = $(ASR_BUILD_TRACE)
    832 ASR_BUILD_CHAR = l
    833 ASR_OPTIMIZE = $(ASR_BUILD_TYPE)
    834 ASR_TRACE = $(ASR_BUILD_TYPE)
    835 
    836 else
    837 ERROR += \
    838 $(subst $(space),|,'Failed to select build type with $$(ASR_BUILD) == "$(ASR_BUILD)"')
    839 ASR_BUILD_TYPE = ASR_BAD_BUILD
    840 ASR_BUILD_CHAR = ASR_BAD_BUILD
    841 endif
    842 endif
    843 endif
    844 endif
    845 endif
    846 endif
    847 endif
    848 
    849 ################################# UI #################################
    850 #
    851 # !!! NOT USED !!!
    852 
    853 ######################################################################
    854 #
    855 # Finally define the macros of interest.
    856 
    857 ASR_GLOBAL_DEFINES = \
    858 	-DOS_UNIX=$(ASR_OS_UNIX) \
    859 	-DOS_EMBEDDED=$(ASR_OS_EMBEDDED) \
    860 	-DOS_VXWORKS=$(ASR_OS_VXWORKS) \
    861 	-DOS_PSOS=$(ASR_OS_PSOS) \
    862 	-DOS_QNX=$(ASR_OS_QNX) \
    863 	-DOS=$(ASR_OS_TYPE) \
    864 	-DHOST_OS=$(ASR_HOST_OS_TYPE) \
    865 	-DTARGET_OS=$(ASR_TARGET_OS_TYPE) \
    866 	-DCPU_PPC=$(ASR_CPU_PPC) \
    867 	-DCPU_SPARC=$(ASR_CPU_SPARC) \
    868 	-DCPU_ARM=$(ASR_CPU_ARM) \
    869 	-DCPU_STRONGARM=$(ASR_CPU_STRONGARM) \
    870 	-DCPU_AARCH64=$(ASR_CPU_AARCH64) \
    871 	-DCPU_TMS320X=$(ASR_CPU_TMS320X) \
    872 	-DCPU_SH3=$(ASR_CPU_SH3) \
    873 	-DCPU_SH4=$(ASR_CPU_SH4) \
    874 	-DCPU=$(ASR_CPU_TYPE) \
    875 	-DHOST_CPU=$(ASR_HOST_CPU_TYPE) \
    876 	-DTARGET_CPU=$(ASR_TARGET_CPU_TYPE) \
    877 	-DC_GNU=$(ASR_C_GNU) \
    878 	-DC_SUNPRO=$(ASR_C_SUNPRO) \
    879 	-DC_METROWERKS=$(ASR_C_METROWERKS) \
    880 	-DC_TICXC=$(ASR_C_TICXC) \
    881 	-DC_ARM=$(ASR_C_ARM) \
    882 	-DCOMPILER=$(ASR_COMPILER_TYPE) \
    883 	-DBUILD_SHIP=$(ASR_BUILD_SHIP) \
    884 	-DBUILD_DEBUG=$(ASR_BUILD_DEBUG) \
    885 	-DBUILD=$(ASR_BUILD_TYPE) \
    886 
    887 # Include these from Makefile.common
    888 ASR_GLOBAL_DEFINES += $(ASR_COMMON_DEFINES) $(ASR_WORKAROUND_DEFINES)
    889 
    890 # OS specific defines
    891 ifeq ($(ASR_TARGET_OS),UNIX)
    892 ASR_GLOBAL_DEFINES += -DPOSIX -D__linux
    893 endif
    894 
    895 
    896 # BUILD specific defines and flags
    897 ASR_GLOBAL_CPPFLAGS =
    898 
    899 ifeq ($(ASR_BUILD),SHIP)
    900 ASR_GLOBAL_DEFINES += -DNDEBUG -D_SHIP -DFINAL_RELEASE
    901 #ASR_GLOBAL_CPPFLAGS += -O3 -fno-strict-aliasing
    902 endif
    903 
    904 ifeq ($(ASR_BUILD),NDEBUG)
    905 ASR_GLOBAL_DEFINES += -DNDEBUG
    906 #ASR_GLOBAL_CPPFLAGS +=
    907 endif
    908 
    909 ifeq ($(ASR_BUILD),INHOUSE)
    910 ASR_GLOBAL_DEFINES += -D_INHOUSE
    911 #ASR_GLOBAL_CPPFLAGS += -g3
    912 endif
    913 
    914 ifeq ($(ASR_BUILD),DEBUGO)
    915 ASR_GLOBAL_DEFINES += -D_DEBUG
    916 #ASR_GLOBAL_CPPFLAGS += -g
    917 endif
    918 
    919 ifeq ($(ASR_BUILD),DEBUG)
    920 ASR_GLOBAL_DEFINES += -D_DEBUG
    921 #ASR_GLOBAL_CPPFLAGS += -g
    922 endif
    923 
    924 ifneq ($(ASR_OPTIMIZE),$(ASR_OFF))
    925 ASR_GLOBAL_DEFINES += -D_OPTIMIZE
    926 #ASR_GLOBAL_CPPFLAGS += -O3
    927 endif
    928 
    929 ifneq ($(ASR_PROFILE),$(ASR_OFF))
    930 ASR_GLOBAL_DEFINES += -D_PROFILE
    931 #ASR_GLOBAL_CPPFLAGS += -g3
    932 endif
    933 
    934 ifneq ($(ASR_TRACE),$(ASR_OFF))
    935 ASR_GLOBAL_DEFINES += -D_TRACE
    936 #ASR_GLOBAL_CPPFLAGS +=
    937 endif
    938