comparison configure.ac @ 31123:1d819b308578

build: cache Java, g++, and gcc compiler version numbers in configure (bug #62715) * configure.ac: Use AC_CACHE_CHECK macro for "gcc_version", "gxx_version", "java_version" variables.
author Rik <rik@octave.org>
date Thu, 07 Jul 2022 11:59:37 -0700
parents 1077a1c277fb
children c4f52c6c5944
comparison
equal deleted inserted replaced
31122:1077a1c277fb 31123:1d819b308578
401 401
402 ### Check version number when using g++. 402 ### Check version number when using g++.
403 403
404 GXX_VERSION= 404 GXX_VERSION=
405 if test "$GXX" = yes; then 405 if test "$GXX" = yes; then
406 AC_MSG_CHECKING([C++ compiler version number]) 406 AC_CACHE_CHECK([g++ compiler version number],
407 gxx_version=`$CXX -v 2>&1 | $GREP "^.*g.. version" | \ 407 [octave_cv_gxx_version],
408 $SED -e 's/^.*g.. version *//' -e 's/cygnus-//' -e 's/egcs-//' -e 's/ .*//'` 408 [octave_cv_gxx_version=[`$CXX -v 2>&1 | $GREP "^.*g.. version" | $SED -e 's/^.*g.. version *//' -e 's/cygnus-//' -e 's/egcs-//' -e 's/ .*//'`]
409 409 ])
410 AX_COMPARE_VERSION([$gxx_version], [lt], [4.1], 410
411 [warn_gxx_version="g++ version $gxx_version is likely to cause problems" 411 AX_COMPARE_VERSION([$octave_cv_gxx_version], [lt], [4.1],
412 [warn_gxx_version="g++ version $octave_cv_gxx_version is likely to cause problems"
412 OCTAVE_CONFIGURE_WARNING([warn_gxx_version])]) 413 OCTAVE_CONFIGURE_WARNING([warn_gxx_version])])
413 414
414 GXX_VERSION=$gxx_version 415 GXX_VERSION=$octave_cv_gxx_version
415 AC_MSG_RESULT([$GXX_VERSION])
416 fi 416 fi
417 AC_SUBST(GXX_VERSION) 417 AC_SUBST(GXX_VERSION)
418 418
419 ## Workaround for broken STL algorithm library. 419 ## Workaround for broken STL algorithm library.
420 OCTAVE_CHECK_BROKEN_STL_ALGO_H 420 OCTAVE_CHECK_BROKEN_STL_ALGO_H
429 ### Check version number when using gcc. 429 ### Check version number when using gcc.
430 dnl It might be different from the g++ version number. 430 dnl It might be different from the g++ version number.
431 431
432 GCC_VERSION= 432 GCC_VERSION=
433 if test "$GCC" = yes; then 433 if test "$GCC" = yes; then
434 AC_MSG_CHECKING([C compiler version number]) 434 AC_CACHE_CHECK([gcc compiler version number],
435 gcc_version=`$CC -v 2>&1 | $GREP "^.*gcc version" | \ 435 [octave_cv_gcc_version],
436 $SED -e 's/^.*g.. version *//' -e 's/cygnus-//' -e 's/egcs-//' -e 's/ .*//'` 436 [octave_cv_gcc_version=[`$CC -v 2>&1 | $GREP "^.*gcc version" | $SED -e 's/^.*g.. version *//' -e 's/cygnus-//' -e 's/egcs-//' -e 's/ .*//'`]
437 437 ])
438 AX_COMPARE_VERSION([$gcc_version], [lt], [3], 438
439 [warn_gcc_version="gcc version $gcc_version is likely to cause problems" 439 AX_COMPARE_VERSION([$octave_cv_gcc_version], [lt], [3],
440 [warn_gcc_version="gcc version $octave_cv_gcc_version is likely to cause problems"
440 OCTAVE_CONFIGURE_WARNING([warn_gcc_version])]) 441 OCTAVE_CONFIGURE_WARNING([warn_gcc_version])])
441 442
442 GCC_VERSION=$gcc_version 443 GCC_VERSION=$octave_cv_gcc_version
443 AC_MSG_RESULT([$GCC_VERSION])
444 fi 444 fi
445 AC_SUBST(GCC_VERSION) 445 AC_SUBST(GCC_VERSION)
446 446
447 ## It seems that there are some broken inline assembly functions in GNU libc. 447 ## It seems that there are some broken inline assembly functions in GNU libc.
448 ## Since it is uncertain how to test whether Octave is linked against GNU libc, 448 ## Since it is uncertain how to test whether Octave is linked against GNU libc,
2441 warn_java="No javac compiler or jar executable found. Octave will not be able to call Java methods." 2441 warn_java="No javac compiler or jar executable found. Octave will not be able to call Java methods."
2442 break 2442 break
2443 fi 2443 fi
2444 2444
2445 ## Check Java version is recent enough. 2445 ## Check Java version is recent enough.
2446 AC_MSG_CHECKING([for Java version]) 2446 AC_CACHE_CHECK([for Java version],
2447 java_version=[`"$JAVA" -version 2>&1 | $SED -n -e 's/^[^ ]* version[^0-9"]*"\([^"]*\)".*/\1/p'`] 2447 [octave_cv_java_version],
2448 AC_MSG_RESULT([$java_version]) 2448 [octave_cv_java_version=[`"$JAVA" -version 2>&1 | $SED -n -e 's/^[^ ]* version[^0-9"]*"\([^"]*\)".*/\1/p'`]
2449 java_major=[`echo $java_version | $SED -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\)\..*$/\1/'`] 2449 ])
2450 java_minor=[`echo $java_version | $SED -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\)\..*$/\2/'`] 2450
2451 java_major=[`echo $octave_cv_java_version | $SED -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\)\..*$/\1/'`]
2452 java_minor=[`echo $octave_cv_java_version | $SED -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\)\..*$/\2/'`]
2453
2451 if test $java_major -gt 1 || (test $java_major -eq 1 && test $java_minor -ge 5); then 2454 if test $java_major -gt 1 || (test $java_major -eq 1 && test $java_minor -ge 5); then
2452 : # Version is OK. Do nothing. 2455 : # Version is OK. Do nothing.
2453 else 2456 else
2454 warn_java="Java version is too old (< 1.5). Octave will not be able to call Java methods." 2457 warn_java="Java version is too old (< 1.5). Octave will not be able to call Java methods."
2455 break 2458 break