comparison configure.ac @ 31130:c4f52c6c5944

build: cache JAVA_LDPATH and Java "jni.h" path (bug #62715) * configure.ac: Use AC_CACHE_VAL macro for "octave_cv_java_ldpath", "octave_cv_java_have_jni". Cache actual path for "jni.h" in "octave_cv_java_jni_h_path" variable..
author Rik <rik@octave.org>
date Thu, 07 Jul 2022 22:07:04 -0700
parents 1d819b308578
children 4dc326899f65
comparison
equal deleted inserted replaced
31129:441aa6226223 31130:c4f52c6c5944
2495 ;; 2495 ;;
2496 esac 2496 esac
2497 2497
2498 AC_MSG_CHECKING([for $jvmlib]) 2498 AC_MSG_CHECKING([for $jvmlib])
2499 2499
2500 if test -z "$JAVA_LDPATH"; then 2500 AC_CACHE_VAL([octave_cv_java_ldpath],[
2501 ## Run Java to try and determine library path to libjvm.so. 2501 if test -z "$JAVA_LDPATH"; then
2502 JAVA_TMP_LDPATH=`$JAVA -classpath ${srcdir}/build-aux OctJavaQry JAVA_LDPATH` 2502 ## Run Java to try and determine library path to libjvm.so.
2503 JAVA_TMP_LDPATH=`echo $JAVA_TMP_LDPATH | $SED -e "s/${PATH_SEPARATOR}/ /g"` 2503 JAVA_TMP_LDPATH=`$JAVA -classpath ${srcdir}/build-aux OctJavaQry JAVA_LDPATH`
2504 for dir in $JAVA_TMP_LDPATH; do 2504 JAVA_TMP_LDPATH=`echo $JAVA_TMP_LDPATH | $SED -e "s/${PATH_SEPARATOR}/ /g"`
2505 if test -f "$dir/$jvmlib"; then 2505 for dir in $JAVA_TMP_LDPATH; do
2506 JAVA_LDPATH=$dir 2506 if test -f "$dir/$jvmlib"; then
2507 break 2507 JAVA_LDPATH=$dir
2508 break
2509 fi
2510 done
2511 fi
2512
2513 if test -z "$JAVA_LDPATH"; then
2514 ## Nothing found. Try Java again using bootpath argument.
2515 JAVA_TMP_LDPATH=`$JAVA -classpath ${srcdir}/build-aux OctJavaQry JAVA_BOOTPATH`
2516 JAVA_TMP_LDPATH="${JAVA_TMP_LDPATH} ${JAVA_TMP_LDPATH}/client ${JAVA_TMP_LDPATH}/server"
2517 for dir in $JAVA_TMP_LDPATH; do
2518 if test -f "$dir/$jvmlib"; then
2519 JAVA_LDPATH=$dir
2520 break
2521 fi
2522 done
2523 fi
2524
2525 if test -z "$JAVA_LDPATH"; then
2526 ## Java failed to find its own library path. Guess wildly.
2527 JAVA_TMP_LDPATH=`ls -d $JAVA_HOME/jre/lib/*/client`
2528 JAVA_TMP_LDPATH="${JAVA_TMP_LDPATH} `ls -d $JAVA_HOME/jre/lib/*/server`"
2529 ## Add some paths that might work on Macs.
2530 JAVA_TMP_LDPATH="${JAVA_TMP_LDPATH} ${JAVA_HOME}/../Libraries ${JAVA_HOME}/Libraries"
2531 ## Add some paths that might work on MinGW
2532 JAVA_TMP_LDPATH="${JAVA_TMP_LDPATH} ${JAVA_HOME}/bin/client ${JAVA_HOME}/bin/server"
2533 for dir in $JAVA_TMP_LDPATH; do
2534 if test -f "$dir/$jvmlib"; then
2535 JAVA_LDPATH=$dir
2536 break
2537 fi
2538 done
2539 fi
2540
2541 ## Verify value passed in option --with-java-libdir
2542 if test -n "$JAVA_LDPATH"; then
2543 if test -f "${JAVA_LDPATH}/$jvmlib"; then
2544 : # libjvm found
2545 else
2546 JAVA_LDPATH=""
2508 fi 2547 fi
2509 done
2510 fi
2511
2512 if test -z "$JAVA_LDPATH"; then
2513 ## Nothing found. Try Java again using bootpath argument.
2514 JAVA_TMP_LDPATH=`$JAVA -classpath ${srcdir}/build-aux OctJavaQry JAVA_BOOTPATH`
2515 JAVA_TMP_LDPATH="${JAVA_TMP_LDPATH} ${JAVA_TMP_LDPATH}/client ${JAVA_TMP_LDPATH}/server"
2516 for dir in $JAVA_TMP_LDPATH; do
2517 if test -f "$dir/$jvmlib"; then
2518 JAVA_LDPATH=$dir
2519 break
2520 fi
2521 done
2522 fi
2523
2524 if test -z "$JAVA_LDPATH"; then
2525 ## Java failed to find its own library path. Guess wildly.
2526 JAVA_TMP_LDPATH=`ls -d $JAVA_HOME/jre/lib/*/client`
2527 JAVA_TMP_LDPATH="${JAVA_TMP_LDPATH} `ls -d $JAVA_HOME/jre/lib/*/server`"
2528 ## Add some paths that might work on Macs.
2529 JAVA_TMP_LDPATH="${JAVA_TMP_LDPATH} ${JAVA_HOME}/../Libraries ${JAVA_HOME}/Libraries"
2530 ## Add some paths that might work on MinGW
2531 JAVA_TMP_LDPATH="${JAVA_TMP_LDPATH} ${JAVA_HOME}/bin/client ${JAVA_HOME}/bin/server"
2532 for dir in $JAVA_TMP_LDPATH; do
2533 if test -f "$dir/$jvmlib"; then
2534 JAVA_LDPATH=$dir
2535 break
2536 fi
2537 done
2538 fi
2539
2540 ## Verify value passed in option --with-java-libdir
2541 if test -n "$JAVA_LDPATH"; then
2542 if test -f "${JAVA_LDPATH}/$jvmlib"; then
2543 : # libjvm found
2544 else
2545 JAVA_LDPATH=""
2546 fi 2548 fi
2547 fi 2549
2548 2550 octave_cv_java_ldpath=$JAVA_LDPATH
2551 ])
2552 JAVA_LDPATH=$octave_cv_java_ldpath
2549 if test -z "$JAVA_LDPATH"; then 2553 if test -z "$JAVA_LDPATH"; then
2550 AC_MSG_RESULT([not found]) 2554 AC_MSG_RESULT([not found])
2551 warn_java="Library $jvmlib not found. Octave will not be able to call Java methods." 2555 warn_java="Library $jvmlib not found. Octave will not be able to call Java methods."
2552 break 2556 break
2553 else 2557 else
2573 fi 2577 fi
2574 ;; 2578 ;;
2575 esac 2579 esac
2576 2580
2577 ## Verify jni.h include file exists. 2581 ## Verify jni.h include file exists.
2578 JNI_PATH=`echo $JAVA_CPPFLAGS | $SED -e 's/-I//g'` 2582 AC_CACHE_VAL([octave_cv_java_have_jni],[
2579 have_jni=no 2583 JNI_PATH=`echo $JAVA_CPPFLAGS | $SED -e 's/-I//g'`
2580 for dir in $JNI_PATH; do 2584 octave_cv_java_have_jni=no
2581 if test -f "${dir}/jni.h"; then have_jni=yes; break; fi 2585 for dir in $JNI_PATH; do
2582 done 2586 if test -f "${dir}/jni.h"; then
2583 if test $have_jni = yes; then 2587 octave_cv_java_have_jni=yes
2584 AC_MSG_RESULT([$dir]) 2588 octave_cv_java_jni_h_path=$dir
2589 break
2590 fi
2591 done
2592 ])
2593 if test $octave_cv_java_have_jni = yes; then
2594 AC_MSG_RESULT([$octave_cv_java_jni_h_path])
2585 else 2595 else
2586 AC_MSG_RESULT([not found]) 2596 AC_MSG_RESULT([not found])
2587 warn_java="Include file <jni.h> not found. Octave will not be able to call Java methods." 2597 warn_java="Include file <jni.h> not found. Octave will not be able to call Java methods."
2588 break 2598 break
2589 fi 2599 fi