# ===========================================================================# https://www.gnu.org/software/autoconf-archive/ax_compiler_version.html# ===========================================================================## SYNOPSIS## AX_COMPILER_VERSION## DESCRIPTION## This macro retrieves the compiler version and returns it in the cache# variable $ax_cv_c_compiler_version for C and $ax_cv_cxx_compiler_version# for C++.## Version is returned as epoch:major.minor.patchversion## Epoch is used in order to have an increasing version number in case of# marketing change.## Epoch use: * borland compiler use chronologically 0turboc for turboc# era,## 1borlanc BORLANDC++ before 5, 2cppbuilder for cppbuilder era,# 3borlancpp for return of BORLANDC++ (after version 5.5),# 4cppbuilder for cppbuilder with year version,# and 5xe for XE era.## An empty string is returned otherwise.## LICENSE## Copyright (c) 2014 Bastien ROUCARIES <roucaries.bastien+autoconf@gmail.com>## Copying and distribution of this file, with or without modification, are# permitted in any medium without royalty provided the copyright notice# and this notice are preserved. This file is offered as-is, without any# warranty. #serial 9 # for intelAC_DEFUN([_AX_COMPILER_VERSION_INTEL], [ dnl AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major, [__INTEL_COMPILER/100],, AC_MSG_FAILURE([[[$0]] unknown intel compiler version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor, [(__INTEL_COMPILER%100)/10],, AC_MSG_FAILURE([[[$0]] unknown intel compiler version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch, [(__INTEL_COMPILER%10)],, AC_MSG_FAILURE([[[$0]] unknown intel compiler version])) 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" ]) # for IBMAC_DEFUN([_AX_COMPILER_VERSION_IBM], [ dnl dnl check between z/OS C/C++ and XL C/C++ AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([], [ #if defined(__COMPILER_VER__) choke me; #endif ])], [ AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major, [__xlC__/100],, AC_MSG_FAILURE([[[$0]] unknown IBM compiler major version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor, [__xlC__%100],, AC_MSG_FAILURE([[[$0]] unknown IBM compiler minor version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch, [__xlC_ver__/0x100],, AC_MSG_FAILURE([[[$0]] unknown IBM compiler patch version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_build, [__xlC_ver__%0x100],, AC_MSG_FAILURE([[[$0]] unknown IBM compiler build version])) 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" ], [ AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch, [__xlC__%1000],, AC_MSG_FAILURE([[[$0]] unknown IBM compiler patch version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor, [(__xlC__/10000)%10],, AC_MSG_FAILURE([[[$0]] unknown IBM compiler minor version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major, [(__xlC__/100000)%10],, AC_MSG_FAILURE([[[$0]] unknown IBM compiler major version])) 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" ])]) # for pathscaleAC_DEFUN([_AX_COMPILER_VERSION_PATHSCALE],[ AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major, __PATHCC__,, AC_MSG_FAILURE([[[$0]] unknown pathscale major])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor, __PATHCC_MINOR__,, AC_MSG_FAILURE([[[$0]] unknown pathscale minor])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch, [__PATHCC_PATCHLEVEL__],, AC_MSG_FAILURE([[[$0]] unknown pathscale patch level])) 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" ]) # for clangAC_DEFUN([_AX_COMPILER_VERSION_CLANG],[ AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major, __clang_major__,, AC_MSG_FAILURE([[[$0]] unknown clang major])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor, __clang_minor__,, AC_MSG_FAILURE([[[$0]] unknown clang minor])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch, [__clang_patchlevel__],,0) 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" ]) # for craycAC_DEFUN([_AX_COMPILER_VERSION_CRAY],[ AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major, _RELEASE,, AC_MSG_FAILURE([[[$0]] unknown crayc release])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor, _RELEASE_MINOR,, AC_MSG_FAILURE([[[$0]] unknown crayc minor])) ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor" ]) # for fujitsuAC_DEFUN([_AX_COMPILER_VERSION_FUJITSU],[ AC_COMPUTE_INT(ax_cv_[]_AC_LANG_ABBREV[]_compiler_version, __FCC_VERSION,, AC_MSG_FAILURE([[[$0]]unknown fujitsu release])) ]) # for GNUAC_DEFUN([_AX_COMPILER_VERSION_GNU],[ AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major, __GNUC__,, AC_MSG_FAILURE([[[$0]] unknown gcc major])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor, __GNUC_MINOR__,, AC_MSG_FAILURE([[[$0]] unknown gcc minor])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch, [__GNUC_PATCHLEVEL__],, AC_MSG_FAILURE([[[$0]] unknown gcc patch level])) 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" ]) # For sunAC_DEFUN([_AX_COMPILER_VERSION_SUN],[ m4_define([_AX_COMPILER_VERSION_SUN_NUMBER], [ #if defined(__SUNPRO_CC) __SUNPRO_CC #else __SUNPRO_C #endif ]) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_until59, !!(_AX_COMPILER_VERSION_SUN_NUMBER < 0x1000),, AC_MSG_FAILURE([[[$0]] unknown sun release version])) AS_IF([test "X$_ax_[]_AC_LANG_ABBREV[]_compiler_version_until59" = X1], [dnl AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch, _AX_COMPILER_VERSION_SUN_NUMBER % 0x10,, AC_MSG_FAILURE([[[$0]] unknown sun patch version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor, (_AX_COMPILER_VERSION_SUN_NUMBER / 0x10) % 0x10,, AC_MSG_FAILURE([[[$0]] unknown sun minor version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major, (_AX_COMPILER_VERSION_SUN_NUMBER / 0x100),, AC_MSG_FAILURE([[[$0]] unknown sun major version])) ], [dnl AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch, _AX_COMPILER_VERSION_SUN_NUMBER % 0x10,, AC_MSG_FAILURE([[[$0]] unknown sun patch version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor, (_AX_COMPILER_VERSION_SUN_NUMBER / 0x100) % 0x100,, AC_MSG_FAILURE([[[$0]] unknown sun minor version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major, (_AX_COMPILER_VERSION_SUN_NUMBER / 0x1000),, AC_MSG_FAILURE([[[$0]] unknown sun major version])) ]) 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"]) AC_DEFUN([_AX_COMPILER_VERSION_HP],[ m4_define([_AX_COMPILER_VERSION_HP_NUMBER], [ #if defined(__HP_cc) __HP_cc #else __HP_aCC #endif ]) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_untilA0121, !!(_AX_COMPILER_VERSION_HP_NUMBER <= 1),, AC_MSG_FAILURE([[[$0]] unknown hp release version])) AS_IF([test "X$_ax_[]_AC_LANG_ABBREV[]_compiler_version_untilA0121" = X1], [dnl By default output last version with this behavior. dnl it is so old ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="01.21.00" ], [dnl AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch, (_AX_COMPILER_VERSION_HP_NUMBER % 100),, AC_MSG_FAILURE([[[$0]] unknown hp release version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor, ((_AX_COMPILER_VERSION_HP_NUMBER / 100)%100),, AC_MSG_FAILURE([[[$0]] unknown hp minor version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major, ((_AX_COMPILER_VERSION_HP_NUMBER / 10000)%100),, AC_MSG_FAILURE([[[$0]] unknown hp major version])) 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" ])]) AC_DEFUN([_AX_COMPILER_VERSION_DEC],[dnl m4_define([_AX_COMPILER_VERSION_DEC_NUMBER], [ #if defined(__DECC_VER) __DECC_VER #else __DECCXX_VER #endif ]) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch, (_AX_COMPILER_VERSION_DEC_NUMBER % 10000),, AC_MSG_FAILURE([[[$0]] unknown dec release version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor, ((_AX_COMPILER_VERSION_DEC_NUMBER / 100000UL)%100),, AC_MSG_FAILURE([[[$0]] unknown dec minor version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major, ((_AX_COMPILER_VERSION_DEC_NUMBER / 10000000UL)%100),, AC_MSG_FAILURE([[[$0]] unknown dec major version])) 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" ]) # borlandAC_DEFUN([_AX_COMPILER_VERSION_BORLAND],[dnl m4_define([_AX_COMPILER_VERSION_TURBOC_NUMBER], [ #if defined(__TURBOC__) __TURBOC__ #else choke me #endif ]) m4_define([_AX_COMPILER_VERSION_BORLANDC_NUMBER], [ #if defined(__BORLANDC__) __BORLANDC__ #else __CODEGEARC__ #endif ]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM(, _AX_COMPILER_VERSION_TURBOC_NUMBER)], [dnl TURBOC AC_COMPUTE_INT( _ax_[]_AC_LANG_ABBREV[]_compiler_version_turboc_raw, _AX_COMPILER_VERSION_TURBOC_NUMBER,, AC_MSG_FAILURE([[[$0]] unknown turboc version])) AS_IF( [test $_ax_[]_AC_LANG_ABBREV[]_compiler_version_turboc_raw -lt 661 || test $_ax_[]_AC_LANG_ABBREV[]_compiler_version_turboc_raw -gt 1023], [dnl compute normal version AC_COMPUTE_INT( _ax_[]_AC_LANG_ABBREV[]_compiler_version_minor, _AX_COMPILER_VERSION_TURBOC_NUMBER % 0x100,, AC_MSG_FAILURE([[[$0]] unknown turboc minor version])) AC_COMPUTE_INT( _ax_[]_AC_LANG_ABBREV[]_compiler_version_major, (_AX_COMPILER_VERSION_TURBOC_NUMBER/0x100)%0x100,, AC_MSG_FAILURE([[[$0]] unknown turboc major version])) ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="0turboc:$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor"], [dnl special version AS_CASE([$_ax_[]_AC_LANG_ABBREV[]_compiler_version_turboc_raw], [661],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="0turboc:1.00"], [662],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="0turboc:1.01"], [663],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="0turboc:2.00"], [ AC_MSG_WARN([[[$0]] unknown turboc version between 0x295 and 0x400 please report bug]) ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="" ]) ]) ], # borlandc [ AC_COMPUTE_INT( _ax_[]_AC_LANG_ABBREV[]_compiler_version_borlandc_raw, _AX_COMPILER_VERSION_BORLANDC_NUMBER,, AC_MSG_FAILURE([[[$0]] unknown borlandc version])) AS_CASE([$_ax_[]_AC_LANG_ABBREV[]_compiler_version_borlandc_raw], dnl BORLANDC++ before 5.5 [512] ,[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="1borlanc:2.00"], [1024],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="1borlanc:3.00"], [1024],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="1borlanc:3.00"], [1040],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="1borlanc:3.1"], [1106],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="1borlanc:4.0"], [1280],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="1borlanc:5.0"], [1312],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="1borlanc:5.02"], dnl C++ Builder era [1328],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="2cppbuilder:3.0"], [1344],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="2cppbuilder:4.0"], dnl BORLANDC++ after 5.5 [1360],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="3borlancpp:5.5"], [1361],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="3borlancpp:5.51"], [1378],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="3borlancpp:5.6.4"], dnl C++ Builder with year number [1392],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="4cppbuilder:2006"], [1424],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="4cppbuilder:2007"], [1555],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="4cppbuilder:2009"], [1569],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="4cppbuilder:2010"], dnl XE version [1584],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="5xe"], [1600],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="5xe:2"], [1616],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="5xe:3"], [1632],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="5xe:4"], [ AC_MSG_WARN([[[$0]] Unknown borlandc compiler version $_ax_[]_AC_LANG_ABBREV[]_compiler_version_borlandc_raw please report bug]) ]) ]) ]) # COMOAC_DEFUN([_AX_COMPILER_VERSION_COMEAU], [ dnl AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor, [__COMO_VERSION__%100],, AC_MSG_FAILURE([[[$0]] unknown comeau compiler minor version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major, [(__COMO_VERSION__/100)%10],, AC_MSG_FAILURE([[[$0]] unknown comeau compiler major version])) ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor" ]) # KAIAC_DEFUN([_AX_COMPILER_VERSION_KAI],[ AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch, [__KCC_VERSION%100],, AC_MSG_FAILURE([[[$0]] unknown kay compiler patch version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor, [(__KCC_VERSION/100)%10],, AC_MSG_FAILURE([[[$0]] unknown kay compiler minor version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major, [(__KCC_VERSION/1000)%10],, AC_MSG_FAILURE([[[$0]] unknown kay compiler major version])) 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" ]) dnl LCCdnl LCC does not output version... # SGIAC_DEFUN([_AX_COMPILER_VERSION_SGI],[ m4_define([_AX_COMPILER_VERSION_SGI_NUMBER], [ #if defined(_COMPILER_VERSION) _COMPILER_VERSION #else _SGI_COMPILER_VERSION #endif ]) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch, [_AX_COMPILER_VERSION_SGI_NUMBER%10],, AC_MSG_FAILURE([[[$0]] unknown SGI compiler patch version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor, [(_AX_COMPILER_VERSION_SGI_NUMBER/10)%10],, AC_MSG_FAILURE([[[$0]] unknown SGI compiler minor version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major, [(_AX_COMPILER_VERSION_SGI_NUMBER/100)%10],, AC_MSG_FAILURE([[[$0]] unknown SGI compiler major version])) 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" ]) # microsoftAC_DEFUN([_AX_COMPILER_VERSION_MICROSOFT],[ AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor, _MSC_VER%100,, AC_MSG_FAILURE([[[$0]] unknown microsoft compiler minor version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major, (_MSC_VER/100)%100,, AC_MSG_FAILURE([[[$0]] unknown microsoft compiler major version])) dnl could be overridden _ax_[]_AC_LANG_ABBREV[]_compiler_version_patch=0 _ax_[]_AC_LANG_ABBREV[]_compiler_version_build=0 # special case for version 6 AS_IF([test "X$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major" = "X12"], [AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch, _MSC_FULL_VER%1000,, _ax_[]_AC_LANG_ABBREV[]_compiler_version_patch=0)]) # for version 7 AS_IF([test "X$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major" = "X13"], [AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch, _MSC_FULL_VER%1000,, AC_MSG_FAILURE([[[$0]] unknown microsoft compiler patch version])) ]) # for version > 8 AS_IF([test $_ax_[]_AC_LANG_ABBREV[]_compiler_version_major -ge 14], [AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch, _MSC_FULL_VER%10000,, AC_MSG_FAILURE([[[$0]] unknown microsoft compiler patch version])) ]) AS_IF([test $_ax_[]_AC_LANG_ABBREV[]_compiler_version_major -ge 15], [AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_build, _MSC_BUILD,, AC_MSG_FAILURE([[[$0]] unknown microsoft compiler build version])) ]) 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" ]) # for metrowerksAC_DEFUN([_AX_COMPILER_VERSION_METROWERKS],[dnl AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch, __MWERKS__%0x100,, AC_MSG_FAILURE([[[$0]] unknown metrowerks compiler patch version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor, (__MWERKS__/0x100)%0x10,, AC_MSG_FAILURE([[[$0]] unknown metrowerks compiler minor version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major, (__MWERKS__/0x1000)%0x10,, AC_MSG_FAILURE([[[$0]] unknown metrowerks compiler major version])) 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" ]) # for watcomAC_DEFUN([_AX_COMPILER_VERSION_WATCOM],[dnl AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor, __WATCOMC__%100,, AC_MSG_FAILURE([[[$0]] unknown watcom compiler minor version])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major, (__WATCOMC__/100)%100,, AC_MSG_FAILURE([[[$0]] unknown watcom compiler major version])) ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor" ]) # for PGIAC_DEFUN([_AX_COMPILER_VERSION_PORTLAND],[ AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major, __PGIC__,, AC_MSG_FAILURE([[[$0]] unknown pgi major])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor, __PGIC_MINOR__,, AC_MSG_FAILURE([[[$0]] unknown pgi minor])) AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch, [__PGIC_PATCHLEVEL__],, AC_MSG_FAILURE([[[$0]] unknown pgi patch level])) 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" ]) # tccAC_DEFUN([_AX_COMPILER_VERSION_TCC],[ ax_cv_[]_AC_LANG_ABBREV[]_compiler_version=[`tcc -v | $SED 's/^[ ]*tcc[ ]\+version[ ]\+\([0-9.]\+\).*/\1/g'`] ])# main entry pointAC_DEFUN([AX_COMPILER_VERSION],[dnl AC_REQUIRE([AX_COMPILER_VENDOR]) AC_REQUIRE([AC_PROG_SED]) AC_CACHE_CHECK([for _AC_LANG compiler version], ax_cv_[]_AC_LANG_ABBREV[]_compiler_version, [ dnl AS_CASE([$ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor], [intel],[_AX_COMPILER_VERSION_INTEL], [ibm],[_AX_COMPILER_VERSION_IBM], [pathscale],[_AX_COMPILER_VERSION_PATHSCALE], [clang],[_AX_COMPILER_VERSION_CLANG], [cray],[_AX_COMPILER_VERSION_CRAY], [fujitsu],[_AX_COMPILER_VERSION_FUJITSU], [gnu],[_AX_COMPILER_VERSION_GNU], [sun],[_AX_COMPILER_VERSION_SUN], [hp],[_AX_COMPILER_VERSION_HP], [dec],[_AX_COMPILER_VERSION_DEC], [borland],[_AX_COMPILER_VERSION_BORLAND], [comeau],[_AX_COMPILER_VERSION_COMEAU], [kai],[_AX_COMPILER_VERSION_KAI], [sgi],[_AX_COMPILER_VERSION_SGI], [microsoft],[_AX_COMPILER_VERSION_MICROSOFT], [metrowerks],[_AX_COMPILER_VERSION_METROWERKS], [watcom],[_AX_COMPILER_VERSION_WATCOM], [portland],[_AX_COMPILER_VERSION_PORTLAND], [tcc],[_AX_COMPILER_VERSION_TCC], [ax_cv_[]_AC_LANG_ABBREV[]_compiler_version=""]) ])])
# ===========================================================================
# https://www.gnu.org/software/autoconf-archive/ax_compiler_version.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_COMPILER_VERSION
#
# DESCRIPTION
#
# This macro retrieves the compiler version and returns it in the cache
# variable $ax_cv_c_compiler_version for C and $ax_cv_cxx_compiler_version
# for C++.
#
# Version is returned as epoch:major.minor.patchversion
#
# Epoch is used in order to have an increasing version number in case of
# marketing change.
#
# Epoch use: * borland compiler use chronologically 0turboc for turboc
# era,
#
# 1borlanc BORLANDC++ before 5, 2cppbuilder for cppbuilder era,
# 3borlancpp for return of BORLANDC++ (after version 5.5),
# 4cppbuilder for cppbuilder with year version,
# and 5xe for XE era.
#
# An empty string is returned otherwise.
#
# LICENSE
#
# Copyright (c) 2014 Bastien ROUCARIES <roucaries.bastien+autoconf@gmail.com>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice
# and this notice are preserved. This file is offered as-is, without any
# warranty.
#serial 9
# for intel
AC_DEFUN([_AX_COMPILER_VERSION_INTEL],
[ dnl
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
[__INTEL_COMPILER/100],,
AC_MSG_FAILURE([[[$0]] unknown intel compiler version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
[(__INTEL_COMPILER%100)/10],,
AC_MSG_FAILURE([[[$0]] unknown intel compiler version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
[(__INTEL_COMPILER%10)],,
AC_MSG_FAILURE([[[$0]] unknown intel compiler version]))
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"
])
# for IBM
AC_DEFUN([_AX_COMPILER_VERSION_IBM],
[ dnl
dnl check between z/OS C/C++ and XL C/C++
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([],
[
#if defined(__COMPILER_VER__)
choke me;
#endif
])],
[
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
[__xlC__/100],,
AC_MSG_FAILURE([[[$0]] unknown IBM compiler major version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
[__xlC__%100],,
AC_MSG_FAILURE([[[$0]] unknown IBM compiler minor version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
[__xlC_ver__/0x100],,
AC_MSG_FAILURE([[[$0]] unknown IBM compiler patch version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_build,
[__xlC_ver__%0x100],,
AC_MSG_FAILURE([[[$0]] unknown IBM compiler build version]))
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"
],
[
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
[__xlC__%1000],,
AC_MSG_FAILURE([[[$0]] unknown IBM compiler patch version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
[(__xlC__/10000)%10],,
AC_MSG_FAILURE([[[$0]] unknown IBM compiler minor version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
[(__xlC__/100000)%10],,
AC_MSG_FAILURE([[[$0]] unknown IBM compiler major version]))
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"
])
])
# for pathscale
AC_DEFUN([_AX_COMPILER_VERSION_PATHSCALE],[
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
__PATHCC__,,
AC_MSG_FAILURE([[[$0]] unknown pathscale major]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
__PATHCC_MINOR__,,
AC_MSG_FAILURE([[[$0]] unknown pathscale minor]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
[__PATHCC_PATCHLEVEL__],,
AC_MSG_FAILURE([[[$0]] unknown pathscale patch level]))
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"
])
# for clang
AC_DEFUN([_AX_COMPILER_VERSION_CLANG],[
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
__clang_major__,,
AC_MSG_FAILURE([[[$0]] unknown clang major]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
__clang_minor__,,
AC_MSG_FAILURE([[[$0]] unknown clang minor]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
[__clang_patchlevel__],,0)
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"
])
# for crayc
AC_DEFUN([_AX_COMPILER_VERSION_CRAY],[
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
_RELEASE,,
AC_MSG_FAILURE([[[$0]] unknown crayc release]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
_RELEASE_MINOR,,
AC_MSG_FAILURE([[[$0]] unknown crayc minor]))
ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor"
])
# for fujitsu
AC_DEFUN([_AX_COMPILER_VERSION_FUJITSU],[
AC_COMPUTE_INT(ax_cv_[]_AC_LANG_ABBREV[]_compiler_version,
__FCC_VERSION,,
AC_MSG_FAILURE([[[$0]]unknown fujitsu release]))
])
# for GNU
AC_DEFUN([_AX_COMPILER_VERSION_GNU],[
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
__GNUC__,,
AC_MSG_FAILURE([[[$0]] unknown gcc major]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
__GNUC_MINOR__,,
AC_MSG_FAILURE([[[$0]] unknown gcc minor]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
[__GNUC_PATCHLEVEL__],,
AC_MSG_FAILURE([[[$0]] unknown gcc patch level]))
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"
])
# For sun
AC_DEFUN([_AX_COMPILER_VERSION_SUN],[
m4_define([_AX_COMPILER_VERSION_SUN_NUMBER],
[
#if defined(__SUNPRO_CC)
__SUNPRO_CC
#else
__SUNPRO_C
#endif
])
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_until59,
!!(_AX_COMPILER_VERSION_SUN_NUMBER < 0x1000),,
AC_MSG_FAILURE([[[$0]] unknown sun release version]))
AS_IF([test "X$_ax_[]_AC_LANG_ABBREV[]_compiler_version_until59" = X1],
[dnl
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
_AX_COMPILER_VERSION_SUN_NUMBER % 0x10,,
AC_MSG_FAILURE([[[$0]] unknown sun patch version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
(_AX_COMPILER_VERSION_SUN_NUMBER / 0x10) % 0x10,,
AC_MSG_FAILURE([[[$0]] unknown sun minor version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
(_AX_COMPILER_VERSION_SUN_NUMBER / 0x100),,
AC_MSG_FAILURE([[[$0]] unknown sun major version]))
],
[dnl
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
_AX_COMPILER_VERSION_SUN_NUMBER % 0x10,,
AC_MSG_FAILURE([[[$0]] unknown sun patch version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
(_AX_COMPILER_VERSION_SUN_NUMBER / 0x100) % 0x100,,
AC_MSG_FAILURE([[[$0]] unknown sun minor version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
(_AX_COMPILER_VERSION_SUN_NUMBER / 0x1000),,
AC_MSG_FAILURE([[[$0]] unknown sun major version]))
])
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"
])
AC_DEFUN([_AX_COMPILER_VERSION_HP],[
m4_define([_AX_COMPILER_VERSION_HP_NUMBER],
[
#if defined(__HP_cc)
__HP_cc
#else
__HP_aCC
#endif
])
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_untilA0121,
!!(_AX_COMPILER_VERSION_HP_NUMBER <= 1),,
AC_MSG_FAILURE([[[$0]] unknown hp release version]))
AS_IF([test "X$_ax_[]_AC_LANG_ABBREV[]_compiler_version_untilA0121" = X1],
[dnl By default output last version with this behavior.
dnl it is so old
ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="01.21.00"
],
[dnl
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
(_AX_COMPILER_VERSION_HP_NUMBER % 100),,
AC_MSG_FAILURE([[[$0]] unknown hp release version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
((_AX_COMPILER_VERSION_HP_NUMBER / 100)%100),,
AC_MSG_FAILURE([[[$0]] unknown hp minor version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
((_AX_COMPILER_VERSION_HP_NUMBER / 10000)%100),,
AC_MSG_FAILURE([[[$0]] unknown hp major version]))
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"
])
])
AC_DEFUN([_AX_COMPILER_VERSION_DEC],[dnl
m4_define([_AX_COMPILER_VERSION_DEC_NUMBER],
[
#if defined(__DECC_VER)
__DECC_VER
#else
__DECCXX_VER
#endif
])
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
(_AX_COMPILER_VERSION_DEC_NUMBER % 10000),,
AC_MSG_FAILURE([[[$0]] unknown dec release version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
((_AX_COMPILER_VERSION_DEC_NUMBER / 100000UL)%100),,
AC_MSG_FAILURE([[[$0]] unknown dec minor version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
((_AX_COMPILER_VERSION_DEC_NUMBER / 10000000UL)%100),,
AC_MSG_FAILURE([[[$0]] unknown dec major version]))
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"
])
# borland
AC_DEFUN([_AX_COMPILER_VERSION_BORLAND],[dnl
m4_define([_AX_COMPILER_VERSION_TURBOC_NUMBER],
[
#if defined(__TURBOC__)
__TURBOC__
#else
choke me
#endif
])
m4_define([_AX_COMPILER_VERSION_BORLANDC_NUMBER],
[
#if defined(__BORLANDC__)
__BORLANDC__
#else
__CODEGEARC__
#endif
])
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(,
_AX_COMPILER_VERSION_TURBOC_NUMBER)],
[dnl TURBOC
AC_COMPUTE_INT(
_ax_[]_AC_LANG_ABBREV[]_compiler_version_turboc_raw,
_AX_COMPILER_VERSION_TURBOC_NUMBER,,
AC_MSG_FAILURE([[[$0]] unknown turboc version]))
AS_IF(
[test $_ax_[]_AC_LANG_ABBREV[]_compiler_version_turboc_raw -lt 661 || test $_ax_[]_AC_LANG_ABBREV[]_compiler_version_turboc_raw -gt 1023],
[dnl compute normal version
AC_COMPUTE_INT(
_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
_AX_COMPILER_VERSION_TURBOC_NUMBER % 0x100,,
AC_MSG_FAILURE([[[$0]] unknown turboc minor version]))
AC_COMPUTE_INT(
_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
(_AX_COMPILER_VERSION_TURBOC_NUMBER/0x100)%0x100,,
AC_MSG_FAILURE([[[$0]] unknown turboc major version]))
ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="0turboc:$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor"],
[dnl special version
AS_CASE([$_ax_[]_AC_LANG_ABBREV[]_compiler_version_turboc_raw],
[661],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="0turboc:1.00"],
[662],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="0turboc:1.01"],
[663],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="0turboc:2.00"],
[
AC_MSG_WARN([[[$0]] unknown turboc version between 0x295 and 0x400 please report bug])
ax_cv_[]_AC_LANG_ABBREV[]_compiler_version=""
])
])
],
# borlandc
[
AC_COMPUTE_INT(
_ax_[]_AC_LANG_ABBREV[]_compiler_version_borlandc_raw,
_AX_COMPILER_VERSION_BORLANDC_NUMBER,,
AC_MSG_FAILURE([[[$0]] unknown borlandc version]))
AS_CASE([$_ax_[]_AC_LANG_ABBREV[]_compiler_version_borlandc_raw],
dnl BORLANDC++ before 5.5
[512] ,[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="1borlanc:2.00"],
[1024],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="1borlanc:3.00"],
[1024],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="1borlanc:3.00"],
[1040],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="1borlanc:3.1"],
[1106],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="1borlanc:4.0"],
[1280],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="1borlanc:5.0"],
[1312],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="1borlanc:5.02"],
dnl C++ Builder era
[1328],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="2cppbuilder:3.0"],
[1344],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="2cppbuilder:4.0"],
dnl BORLANDC++ after 5.5
[1360],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="3borlancpp:5.5"],
[1361],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="3borlancpp:5.51"],
[1378],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="3borlancpp:5.6.4"],
dnl C++ Builder with year number
[1392],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="4cppbuilder:2006"],
[1424],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="4cppbuilder:2007"],
[1555],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="4cppbuilder:2009"],
[1569],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="4cppbuilder:2010"],
dnl XE version
[1584],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="5xe"],
[1600],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="5xe:2"],
[1616],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="5xe:3"],
[1632],[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="5xe:4"],
[
AC_MSG_WARN([[[$0]] Unknown borlandc compiler version $_ax_[]_AC_LANG_ABBREV[]_compiler_version_borlandc_raw please report bug])
])
])
])
# COMO
AC_DEFUN([_AX_COMPILER_VERSION_COMEAU],
[ dnl
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
[__COMO_VERSION__%100],,
AC_MSG_FAILURE([[[$0]] unknown comeau compiler minor version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
[(__COMO_VERSION__/100)%10],,
AC_MSG_FAILURE([[[$0]] unknown comeau compiler major version]))
ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor"
])
# KAI
AC_DEFUN([_AX_COMPILER_VERSION_KAI],[
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
[__KCC_VERSION%100],,
AC_MSG_FAILURE([[[$0]] unknown kay compiler patch version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
[(__KCC_VERSION/100)%10],,
AC_MSG_FAILURE([[[$0]] unknown kay compiler minor version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
[(__KCC_VERSION/1000)%10],,
AC_MSG_FAILURE([[[$0]] unknown kay compiler major version]))
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"
])
dnl LCC
dnl LCC does not output version...
# SGI
AC_DEFUN([_AX_COMPILER_VERSION_SGI],[
m4_define([_AX_COMPILER_VERSION_SGI_NUMBER],
[
#if defined(_COMPILER_VERSION)
_COMPILER_VERSION
#else
_SGI_COMPILER_VERSION
#endif
])
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
[_AX_COMPILER_VERSION_SGI_NUMBER%10],,
AC_MSG_FAILURE([[[$0]] unknown SGI compiler patch version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
[(_AX_COMPILER_VERSION_SGI_NUMBER/10)%10],,
AC_MSG_FAILURE([[[$0]] unknown SGI compiler minor version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
[(_AX_COMPILER_VERSION_SGI_NUMBER/100)%10],,
AC_MSG_FAILURE([[[$0]] unknown SGI compiler major version]))
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"
])
# microsoft
AC_DEFUN([_AX_COMPILER_VERSION_MICROSOFT],[
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
_MSC_VER%100,,
AC_MSG_FAILURE([[[$0]] unknown microsoft compiler minor version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
(_MSC_VER/100)%100,,
AC_MSG_FAILURE([[[$0]] unknown microsoft compiler major version]))
dnl could be overridden
_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch=0
_ax_[]_AC_LANG_ABBREV[]_compiler_version_build=0
# special case for version 6
AS_IF([test "X$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major" = "X12"],
[AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
_MSC_FULL_VER%1000,,
_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch=0)])
# for version 7
AS_IF([test "X$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major" = "X13"],
[AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
_MSC_FULL_VER%1000,,
AC_MSG_FAILURE([[[$0]] unknown microsoft compiler patch version]))
])
# for version > 8
AS_IF([test $_ax_[]_AC_LANG_ABBREV[]_compiler_version_major -ge 14],
[AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
_MSC_FULL_VER%10000,,
AC_MSG_FAILURE([[[$0]] unknown microsoft compiler patch version]))
])
AS_IF([test $_ax_[]_AC_LANG_ABBREV[]_compiler_version_major -ge 15],
[AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_build,
_MSC_BUILD,,
AC_MSG_FAILURE([[[$0]] unknown microsoft compiler build version]))
])
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"
])
# for metrowerks
AC_DEFUN([_AX_COMPILER_VERSION_METROWERKS],[dnl
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
__MWERKS__%0x100,,
AC_MSG_FAILURE([[[$0]] unknown metrowerks compiler patch version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
(__MWERKS__/0x100)%0x10,,
AC_MSG_FAILURE([[[$0]] unknown metrowerks compiler minor version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
(__MWERKS__/0x1000)%0x10,,
AC_MSG_FAILURE([[[$0]] unknown metrowerks compiler major version]))
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"
])
# for watcom
AC_DEFUN([_AX_COMPILER_VERSION_WATCOM],[dnl
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
__WATCOMC__%100,,
AC_MSG_FAILURE([[[$0]] unknown watcom compiler minor version]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
(__WATCOMC__/100)%100,,
AC_MSG_FAILURE([[[$0]] unknown watcom compiler major version]))
ax_cv_[]_AC_LANG_ABBREV[]_compiler_version="$_ax_[]_AC_LANG_ABBREV[]_compiler_version_major.$_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor"
])
# for PGI
AC_DEFUN([_AX_COMPILER_VERSION_PORTLAND],[
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_major,
__PGIC__,,
AC_MSG_FAILURE([[[$0]] unknown pgi major]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_minor,
__PGIC_MINOR__,,
AC_MSG_FAILURE([[[$0]] unknown pgi minor]))
AC_COMPUTE_INT(_ax_[]_AC_LANG_ABBREV[]_compiler_version_patch,
[__PGIC_PATCHLEVEL__],,
AC_MSG_FAILURE([[[$0]] unknown pgi patch level]))
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"
])
# tcc
AC_DEFUN([_AX_COMPILER_VERSION_TCC],[
ax_cv_[]_AC_LANG_ABBREV[]_compiler_version=[`tcc -v | $SED 's/^[ ]*tcc[ ]\+version[ ]\+\([0-9.]\+\).*/\1/g'`]
])
# main entry point
AC_DEFUN([AX_COMPILER_VERSION],[dnl
AC_REQUIRE([AX_COMPILER_VENDOR])
AC_REQUIRE([AC_PROG_SED])
AC_CACHE_CHECK([for _AC_LANG compiler version],
ax_cv_[]_AC_LANG_ABBREV[]_compiler_version,
[ dnl
AS_CASE([$ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor],
[intel],[_AX_COMPILER_VERSION_INTEL],
[ibm],[_AX_COMPILER_VERSION_IBM],
[pathscale],[_AX_COMPILER_VERSION_PATHSCALE],
[clang],[_AX_COMPILER_VERSION_CLANG],
[cray],[_AX_COMPILER_VERSION_CRAY],
[fujitsu],[_AX_COMPILER_VERSION_FUJITSU],
[gnu],[_AX_COMPILER_VERSION_GNU],
[sun],[_AX_COMPILER_VERSION_SUN],
[hp],[_AX_COMPILER_VERSION_HP],
[dec],[_AX_COMPILER_VERSION_DEC],
[borland],[_AX_COMPILER_VERSION_BORLAND],
[comeau],[_AX_COMPILER_VERSION_COMEAU],
[kai],[_AX_COMPILER_VERSION_KAI],
[sgi],[_AX_COMPILER_VERSION_SGI],
[microsoft],[_AX_COMPILER_VERSION_MICROSOFT],
[metrowerks],[_AX_COMPILER_VERSION_METROWERKS],
[watcom],[_AX_COMPILER_VERSION_WATCOM],
[portland],[_AX_COMPILER_VERSION_PORTLAND],
[tcc],[_AX_COMPILER_VERSION_TCC],
[ax_cv_[]_AC_LANG_ABBREV[]_compiler_version=""])
])
])