tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

ax_compiler_version.m4 (22879B)


      1 # ===========================================================================
      2 #   https://www.gnu.org/software/autoconf-archive/ax_compiler_version.html
      3 # ===========================================================================
      4 #
      5 # SYNOPSIS
      6 #
      7 #   AX_COMPILER_VERSION
      8 #
      9 # DESCRIPTION
     10 #
     11 #   This macro retrieves the compiler version and returns it in the cache
     12 #   variable $ax_cv_c_compiler_version for C and $ax_cv_cxx_compiler_version
     13 #   for C++.
     14 #
     15 #   Version is returned as epoch:major.minor.patchversion
     16 #
     17 #   Epoch is used in order to have an increasing version number in case of
     18 #   marketing change.
     19 #
     20 #   Epoch use: * borland compiler use chronologically 0turboc for turboc
     21 #   era,
     22 #
     23 #     1borlanc BORLANDC++ before 5, 2cppbuilder for cppbuilder era,
     24 #     3borlancpp for return of BORLANDC++ (after version 5.5),
     25 #     4cppbuilder for cppbuilder with year version,
     26 #     and 5xe for XE era.
     27 #
     28 #   An empty string is returned otherwise.
     29 #
     30 # LICENSE
     31 #
     32 #   Copyright (c) 2014 Bastien ROUCARIES <roucaries.bastien+autoconf@gmail.com>
     33 #
     34 #   Copying and distribution of this file, with or without modification, are
     35 #   permitted in any medium without royalty provided the copyright notice
     36 #   and this notice are preserved. This file is offered as-is, without any
     37 #   warranty.
     38 
     39 #serial 12
     40 
     41 # for intel
     42 AC_DEFUN([_AX_COMPILER_VERSION_INTEL],
     43   [ dnl
     44   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
     45     [__INTEL_COMPILER/100],,
     46     AC_MSG_FAILURE([[[$0]] unknown intel compiler version]))
     47   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
     48     [(__INTEL_COMPILER%100)/10],,
     49     AC_MSG_FAILURE([[[$0]] unknown intel compiler version]))
     50   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
     51     [(__INTEL_COMPILER%10)],,
     52     AC_MSG_FAILURE([[[$0]] unknown intel compiler version]))
     53   ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch"
     54   ])
     55 
     56 # for IBM
     57 AC_DEFUN([_AX_COMPILER_VERSION_IBM],
     58   [ dnl
     59   dnl check between z/OS C/C++  and XL C/C++
     60   AC_COMPILE_IFELSE([
     61     AC_LANG_PROGRAM([],
     62       [
     63         #if defined(__COMPILER_VER__)
     64         choke me;
     65         #endif
     66       ])],
     67     [
     68       AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
     69         [__xlC__/100],,
     70       	AC_MSG_FAILURE([[[$0]] unknown IBM compiler major version]))
     71       AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
     72         [__xlC__%100],,
     73       	AC_MSG_FAILURE([[[$0]] unknown IBM compiler minor version]))
     74       AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
     75         [__xlC_ver__/0x100],,
     76       	AC_MSG_FAILURE([[[$0]] unknown IBM compiler patch version]))
     77       AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_build,
     78         [__xlC_ver__%0x100],,
     79       	AC_MSG_FAILURE([[[$0]] unknown IBM compiler build version]))
     80       ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_build"
     81     ],
     82     [
     83       AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
     84         [__xlC__%1000],,
     85       	AC_MSG_FAILURE([[[$0]] unknown IBM compiler patch version]))
     86       AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
     87         [(__xlC__/10000)%10],,
     88       	AC_MSG_FAILURE([[[$0]] unknown IBM compiler minor version]))
     89       AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
     90         [(__xlC__/100000)%10],,
     91       	AC_MSG_FAILURE([[[$0]] unknown IBM compiler major version]))
     92       ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch"
     93     ])
     94 ])
     95 
     96 # for pathscale
     97 AC_DEFUN([_AX_COMPILER_VERSION_PATHSCALE],[
     98   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
     99     __PATHCC__,,
    100     AC_MSG_FAILURE([[[$0]] unknown pathscale major]))
    101   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
    102     __PATHCC_MINOR__,,
    103     AC_MSG_FAILURE([[[$0]] unknown pathscale minor]))
    104   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
    105     [__PATHCC_PATCHLEVEL__],,
    106     AC_MSG_FAILURE([[[$0]] unknown pathscale patch level]))
    107   ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch"
    108   ])
    109 
    110 # for clang
    111 AC_DEFUN([_AX_COMPILER_VERSION_CLANG],[
    112   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
    113     __clang_major__,,
    114     AC_MSG_FAILURE([[[$0]] unknown clang major]))
    115   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
    116     __clang_minor__,,
    117     AC_MSG_FAILURE([[[$0]] unknown clang minor]))
    118   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
    119     [__clang_patchlevel__],,0)
    120   ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch"
    121   ])
    122 
    123 # for crayc
    124 AC_DEFUN([_AX_COMPILER_VERSION_CRAY],[
    125   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
    126     _RELEASE,,
    127     AC_MSG_FAILURE([[[$0]] unknown crayc release]))
    128   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
    129     _RELEASE_MINOR,,
    130     AC_MSG_FAILURE([[[$0]] unknown crayc minor]))
    131   ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor"
    132   ])
    133 
    134 # for fujitsu
    135 AC_DEFUN([_AX_COMPILER_VERSION_FUJITSU],[
    136   AC_COMPUTE_INT(ax_cv_[]_AC_LANG_ABBREV[]_compiler_version,
    137                  __FCC_VERSION,,
    138 		 AC_MSG_FAILURE([[[$0]]unknown fujitsu release]))
    139   ])
    140 
    141 # for GNU
    142 AC_DEFUN([_AX_COMPILER_VERSION_GNU],[
    143   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
    144     __GNUC__,,
    145     AC_MSG_FAILURE([[[$0]] unknown gcc major]))
    146   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
    147     __GNUC_MINOR__,,
    148     AC_MSG_FAILURE([[[$0]] unknown gcc minor]))
    149   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
    150     [__GNUC_PATCHLEVEL__],,
    151     AC_MSG_FAILURE([[[$0]] unknown gcc patch level]))
    152   ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch"
    153   ])
    154 
    155 # For sun
    156 AC_DEFUN([_AX_COMPILER_VERSION_SUN],[
    157   m4_define([_AX_COMPILER_VERSION_SUN_NUMBER],
    158             [
    159 	     #if defined(__SUNPRO_CC)
    160 	     __SUNPRO_CC
    161 	     #else
    162 	     __SUNPRO_C
    163 	     #endif
    164 	    ])
    165   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_until59,
    166     !!(_AX_COMPILER_VERSION_SUN_NUMBER < 0x1000),,
    167     AC_MSG_FAILURE([[[$0]] unknown sun release version]))
    168   AS_IF([test "X$_ax_[]_AC_LANG_ABBREV[]_compiler_version_until59" = X1],
    169     [dnl
    170       AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
    171         _AX_COMPILER_VERSION_SUN_NUMBER % 0x10,,
    172 	AC_MSG_FAILURE([[[$0]] unknown sun patch version]))
    173       AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
    174         (_AX_COMPILER_VERSION_SUN_NUMBER / 0x10) % 0x10,,
    175         AC_MSG_FAILURE([[[$0]] unknown sun minor version]))
    176       AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
    177         (_AX_COMPILER_VERSION_SUN_NUMBER / 0x100),,
    178         AC_MSG_FAILURE([[[$0]] unknown sun major version]))
    179     ],
    180     [dnl
    181       AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
    182         _AX_COMPILER_VERSION_SUN_NUMBER % 0x10,,
    183         AC_MSG_FAILURE([[[$0]] unknown sun patch version]))
    184       AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
    185         (_AX_COMPILER_VERSION_SUN_NUMBER / 0x100) % 0x100,,
    186         AC_MSG_FAILURE([[[$0]] unknown sun minor version]))
    187       AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
    188         (_AX_COMPILER_VERSION_SUN_NUMBER / 0x1000),,
    189         AC_MSG_FAILURE([[[$0]] unknown sun major version]))
    190     ])
    191   ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch"
    192 ])
    193 
    194 AC_DEFUN([_AX_COMPILER_VERSION_HP],[
    195   m4_define([_AX_COMPILER_VERSION_HP_NUMBER],
    196             [
    197 	     #if defined(__HP_cc)
    198 	     __HP_cc
    199 	     #else
    200 	     __HP_aCC
    201 	     #endif
    202 	    ])
    203   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_untilA0121,
    204     !!(_AX_COMPILER_VERSION_HP_NUMBER <= 1),,
    205     AC_MSG_FAILURE([[[$0]] unknown hp release version]))
    206   AS_IF([test "X$_ax_[]_AC_LANG_ABBREV[]_compiler_version_untilA0121" = X1],
    207     [dnl By default output last version with this behavior.
    208      dnl it is so old
    209       ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="01.21.00"
    210     ],
    211     [dnl
    212       AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
    213         (_AX_COMPILER_VERSION_HP_NUMBER % 100),,
    214         AC_MSG_FAILURE([[[$0]] unknown hp release version]))
    215       AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
    216         ((_AX_COMPILER_VERSION_HP_NUMBER / 100)%100),,
    217         AC_MSG_FAILURE([[[$0]] unknown hp minor version]))
    218       AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
    219         ((_AX_COMPILER_VERSION_HP_NUMBER / 10000)%100),,
    220         AC_MSG_FAILURE([[[$0]] unknown hp major version]))
    221       ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch"
    222     ])
    223 ])
    224 
    225 AC_DEFUN([_AX_COMPILER_VERSION_DEC],[dnl
    226   m4_define([_AX_COMPILER_VERSION_DEC_NUMBER],
    227             [
    228 	     #if defined(__DECC_VER)
    229 	     __DECC_VER
    230 	     #else
    231 	     __DECCXX_VER
    232 	     #endif
    233 	    ])
    234   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
    235     (_AX_COMPILER_VERSION_DEC_NUMBER % 10000),,
    236     AC_MSG_FAILURE([[[$0]] unknown dec release version]))
    237   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
    238     ((_AX_COMPILER_VERSION_DEC_NUMBER / 100000UL)%100),,
    239     AC_MSG_FAILURE([[[$0]] unknown dec minor version]))
    240   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
    241     ((_AX_COMPILER_VERSION_DEC_NUMBER / 10000000UL)%100),,
    242     AC_MSG_FAILURE([[[$0]] unknown dec major version]))
    243   ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch"
    244   ])
    245 
    246 # borland
    247 AC_DEFUN([_AX_COMPILER_VERSION_BORLAND],[dnl
    248   m4_define([_AX_COMPILER_VERSION_TURBOC_NUMBER],
    249             [
    250 	     #if defined(__TURBOC__)
    251 	     __TURBOC__
    252 	     #else
    253 	     choke me
    254 	     #endif
    255 	    ])
    256   m4_define([_AX_COMPILER_VERSION_BORLANDC_NUMBER],
    257             [
    258 	     #if defined(__BORLANDC__)
    259 	     __BORLANDC__
    260 	     #else
    261 	     __CODEGEARC__
    262 	     #endif
    263 	    ])
    264  AC_COMPILE_IFELSE(
    265    [AC_LANG_PROGRAM(,
    266      _AX_COMPILER_VERSION_TURBOC_NUMBER)],
    267    [dnl TURBOC
    268      AC_COMPUTE_INT(
    269        _ax_[]_AC_LANG_ABBREV[]_compiler_version_turboc_raw,
    270        _AX_COMPILER_VERSION_TURBOC_NUMBER,,
    271        AC_MSG_FAILURE([[[$0]] unknown turboc version]))
    272      AS_IF(
    273        [test $_ax_[]_AC_LANG_ABBREV[]_compiler_version_turboc_raw -lt 661 || test $_ax_[]_AC_LANG_ABBREV[]_compiler_version_turboc_raw -gt 1023],
    274        [dnl compute normal version
    275         AC_COMPUTE_INT(
    276 	  _ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
    277 	  _AX_COMPILER_VERSION_TURBOC_NUMBER % 0x100,,
    278 	  AC_MSG_FAILURE([[[$0]] unknown turboc minor version]))
    279 	AC_COMPUTE_INT(
    280 	  _ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
    281 	  (_AX_COMPILER_VERSION_TURBOC_NUMBER/0x100)%0x100,,
    282 	  AC_MSG_FAILURE([[[$0]] unknown turboc major version]))
    283 	ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="0turboc:$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor"],
    284       [dnl special version
    285        AS_CASE([$_ax_[]_AC_LANG_ABBREV[]_compiler_version_turboc_raw],
    286          [661],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="0turboc:1.00"],
    287 	 [662],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="0turboc:1.01"],
    288          [663],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="0turboc:2.00"],
    289 	 [
    290 	 AC_MSG_WARN([[[$0]] unknown turboc version between 0x295 and 0x400 please report bug])
    291 	 ax_cv_[]_AC_LANG_ABBREV[]_compiler_version=""
    292 	 ])
    293       ])
    294     ],
    295     # borlandc
    296     [
    297     AC_COMPUTE_INT(
    298       _ax_[]_AC_LANG_ABBREV[]_compiler_version_borlandc_raw,
    299       _AX_COMPILER_VERSION_BORLANDC_NUMBER,,
    300       AC_MSG_FAILURE([[[$0]] unknown borlandc version]))
    301     AS_CASE([$_ax_[]_AC_LANG_ABBREV[]_compiler_version_borlandc_raw],
    302       dnl BORLANDC++ before 5.5
    303       [512] ,[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="1borlanc:2.00"],
    304       [1024],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="1borlanc:3.00"],
    305       [1024],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="1borlanc:3.00"],
    306       [1040],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="1borlanc:3.1"],
    307       [1106],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="1borlanc:4.0"],
    308       [1280],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="1borlanc:5.0"],
    309       [1312],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="1borlanc:5.02"],
    310       dnl C++ Builder era
    311       [1328],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="2cppbuilder:3.0"],
    312       [1344],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="2cppbuilder:4.0"],
    313       dnl BORLANDC++ after 5.5
    314       [1360],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="3borlancpp:5.5"],
    315       [1361],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="3borlancpp:5.51"],
    316       [1378],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="3borlancpp:5.6.4"],
    317       dnl C++ Builder with year number
    318       [1392],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="4cppbuilder:2006"],
    319       [1424],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="4cppbuilder:2007"],
    320       [1555],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="4cppbuilder:2009"],
    321       [1569],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="4cppbuilder:2010"],
    322       dnl XE version
    323       [1584],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="5xe"],
    324       [1600],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="5xe:2"],
    325       [1616],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="5xe:3"],
    326       [1632],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="5xe:4"],
    327       [
    328       AC_MSG_WARN([[[$0]] Unknown borlandc compiler version $_ax_[]_AC_LANG_ABBREV[]_compiler_version_borlandc_raw please report bug])
    329       ])
    330     ])
    331   ])
    332 
    333 # COMO
    334 AC_DEFUN([_AX_COMPILER_VERSION_COMEAU],
    335   [ dnl
    336   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
    337     [__COMO_VERSION__%100],,
    338     AC_MSG_FAILURE([[[$0]] unknown comeau compiler minor version]))
    339   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
    340     [(__COMO_VERSION__/100)%10],,
    341     AC_MSG_FAILURE([[[$0]] unknown comeau compiler major version]))
    342   ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor"
    343   ])
    344 
    345 # KAI
    346 AC_DEFUN([_AX_COMPILER_VERSION_KAI],[
    347   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
    348     [__KCC_VERSION%100],,
    349     AC_MSG_FAILURE([[[$0]] unknown kay compiler patch version]))
    350   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
    351     [(__KCC_VERSION/100)%10],,
    352     AC_MSG_FAILURE([[[$0]] unknown kay compiler minor version]))
    353   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
    354     [(__KCC_VERSION/1000)%10],,
    355     AC_MSG_FAILURE([[[$0]] unknown kay compiler major version]))
    356   ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch"
    357   ])
    358 
    359 dnl LCC
    360 dnl LCC does not output version...
    361 
    362 # SGI
    363 AC_DEFUN([_AX_COMPILER_VERSION_SGI],[
    364    m4_define([_AX_COMPILER_VERSION_SGI_NUMBER],
    365             [
    366 	     #if defined(_COMPILER_VERSION)
    367 	     _COMPILER_VERSION
    368 	     #else
    369 	     _SGI_COMPILER_VERSION
    370 	     #endif
    371 	    ])
    372   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
    373     [_AX_COMPILER_VERSION_SGI_NUMBER%10],,
    374     AC_MSG_FAILURE([[[$0]] unknown SGI compiler patch version]))
    375   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
    376     [(_AX_COMPILER_VERSION_SGI_NUMBER/10)%10],,
    377     AC_MSG_FAILURE([[[$0]] unknown SGI compiler minor version]))
    378   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
    379     [(_AX_COMPILER_VERSION_SGI_NUMBER/100)%10],,
    380     AC_MSG_FAILURE([[[$0]] unknown SGI compiler major version]))
    381   ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch"
    382   ])
    383 
    384 # microsoft
    385 AC_DEFUN([_AX_COMPILER_VERSION_MICROSOFT],[
    386   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
    387     _MSC_VER%100,,
    388     AC_MSG_FAILURE([[[$0]] unknown microsoft compiler minor version]))
    389   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
    390     (_MSC_VER/100)%100,,
    391     AC_MSG_FAILURE([[[$0]] unknown microsoft compiler major version]))
    392   dnl could be overridden
    393   _ax_[]_AC_LANG_ABBREV[]_compiler_version_patch=0
    394   _ax_[]_AC_LANG_ABBREV[]_compiler_version_build=0
    395   # special case for version 6
    396   AS_IF([test "X$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major" = "X12"],
    397     [AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
    398        _MSC_FULL_VER%1000,,
    399        _ax_[]_AC_LANG_ABBREV[]_compiler_version_patch=0)])
    400   # for version 7
    401   AS_IF([test "X$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major" = "X13"],
    402     [AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
    403        _MSC_FULL_VER%1000,,
    404        AC_MSG_FAILURE([[[$0]] unknown microsoft compiler patch version]))
    405     ])
    406   # for version > 8
    407  AS_IF([test $_ax_[]_AC_LANG_ABBREV[]_compiler_version_major -ge 14],
    408     [AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
    409        _MSC_FULL_VER%10000,,
    410        AC_MSG_FAILURE([[[$0]] unknown microsoft compiler patch version]))
    411     ])
    412  AS_IF([test $_ax_[]_AC_LANG_ABBREV[]_compiler_version_major -ge 15],
    413     [AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_build,
    414        _MSC_BUILD,,
    415        AC_MSG_FAILURE([[[$0]] unknown microsoft compiler build version]))
    416     ])
    417  ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_build"
    418  ])
    419 
    420 # for metrowerks
    421 AC_DEFUN([_AX_COMPILER_VERSION_METROWERKS],[dnl
    422   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
    423     __MWERKS__%0x100,,
    424     AC_MSG_FAILURE([[[$0]] unknown metrowerks compiler patch version]))
    425   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
    426     (__MWERKS__/0x100)%0x10,,
    427     AC_MSG_FAILURE([[[$0]] unknown metrowerks compiler minor version]))
    428   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
    429     (__MWERKS__/0x1000)%0x10,,
    430     AC_MSG_FAILURE([[[$0]] unknown metrowerks compiler major version]))
    431   ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch"
    432   ])
    433 
    434 # for watcom
    435 AC_DEFUN([_AX_COMPILER_VERSION_WATCOM],[dnl
    436   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
    437     __WATCOMC__%100,,
    438     AC_MSG_FAILURE([[[$0]] unknown watcom compiler minor version]))
    439   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
    440     (__WATCOMC__/100)%100,,
    441     AC_MSG_FAILURE([[[$0]] unknown watcom compiler major version]))
    442   ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor"
    443   ])
    444 
    445 # for PGI
    446 AC_DEFUN([_AX_COMPILER_VERSION_PORTLAND],[
    447   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
    448     __PGIC__,,
    449     AC_MSG_FAILURE([[[$0]] unknown pgi major]))
    450   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
    451     __PGIC_MINOR__,,
    452     AC_MSG_FAILURE([[[$0]] unknown pgi minor]))
    453   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
    454     [__PGIC_PATCHLEVEL__],,
    455     AC_MSG_FAILURE([[[$0]] unknown pgi patch level]))
    456   ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch"
    457   ])
    458 
    459 # tcc
    460 AC_DEFUN([_AX_COMPILER_VERSION_TCC],[
    461   ax_cv_[]_AC_LANG_ABBREV[]_compiler_version=[`tcc -v | $SED 's/^[ ]*tcc[ ]\+version[ ]\+\([0-9.]\+\).*/\1/g'`]
    462   ])
    463 
    464 # for GNU
    465 AC_DEFUN([_AX_COMPILER_VERSION_SDCC],[
    466   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
    467     /* avoid parse error with comments */
    468     #if(defined(__SDCC_VERSION_MAJOR))
    469 	__SDCC_VERSION_MAJOR
    470     #else
    471 	SDCC/100
    472     #endif
    473     ,,
    474     AC_MSG_FAILURE([[[$0]] unknown sdcc major]))
    475   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
    476     /* avoid parse error with comments */
    477     #if(defined(__SDCC_VERSION_MINOR))
    478 	__SDCC_VERSION_MINOR
    479     #else
    480 	(SDCC%100)/10
    481     #endif
    482     ,,
    483     AC_MSG_FAILURE([[[$0]] unknown sdcc minor]))
    484   AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
    485     [
    486     /* avoid parse error with comments */
    487     #if(defined(__SDCC_VERSION_PATCH))
    488 	__SDCC_VERSION_PATCH
    489     #elsif(defined(_SDCC_VERSION_PATCHLEVEL))
    490 	__SDCC_VERSION_PATCHLEVEL
    491     #else
    492 	SDCC%10
    493     #endif
    494     ],,
    495     AC_MSG_FAILURE([[[$0]] unknown sdcc patch level]))
    496   ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch"
    497   ])
    498 
    499 # main entry point
    500 AC_DEFUN([AX_COMPILER_VERSION],[dnl
    501   AC_REQUIRE([AX_COMPILER_VENDOR])
    502   AC_REQUIRE([AC_PROG_SED])
    503   AC_CACHE_CHECK([for _AC_LANG compiler version],
    504     ax_cv_[]_AC_LANG_ABBREV[]_compiler_version,
    505     [ dnl
    506       AS_CASE([$ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor],
    507         [intel],[_AX_COMPILER_VERSION_INTEL],
    508 	[ibm],[_AX_COMPILER_VERSION_IBM],
    509 	[pathscale],[_AX_COMPILER_VERSION_PATHSCALE],
    510 	[clang],[_AX_COMPILER_VERSION_CLANG],
    511 	[cray],[_AX_COMPILER_VERSION_CRAY],
    512 	[fujitsu],[_AX_COMPILER_VERSION_FUJITSU],
    513         [gnu],[_AX_COMPILER_VERSION_GNU],
    514 	[sun],[_AX_COMPILER_VERSION_SUN],
    515 	[hp],[_AX_COMPILER_VERSION_HP],
    516 	[dec],[_AX_COMPILER_VERSION_DEC],
    517 	[borland],[_AX_COMPILER_VERSION_BORLAND],
    518 	[comeau],[_AX_COMPILER_VERSION_COMEAU],
    519 	[kai],[_AX_COMPILER_VERSION_KAI],
    520 	[sgi],[_AX_COMPILER_VERSION_SGI],
    521 	[microsoft],[_AX_COMPILER_VERSION_MICROSOFT],
    522 	[metrowerks],[_AX_COMPILER_VERSION_METROWERKS],
    523 	[watcom],[_AX_COMPILER_VERSION_WATCOM],
    524 	[portland],[_AX_COMPILER_VERSION_PORTLAND],
    525 	[tcc],[_AX_COMPILER_VERSION_TCC],
    526 	[sdcc],[_AX_COMPILER_VERSION_SDCC],
    527   	[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version=""])
    528     ])
    529 ])