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