diff --git a/src/modules/Java/configure.in b/src/modules/Java/configure.in index 34f6193f12530fbdf09a1a018b1ca65143a132cc..6c1199dff8a9d33a55d4781c13c579e18ccf2027 100644 --- a/src/modules/Java/configure.in +++ b/src/modules/Java/configure.in @@ -68,16 +68,18 @@ if test "x$with_java" = xyes; then AC_MSG_WARN([If you are unsure, please unset \$THREADS_FLAG and rerun configure.]) fi + changequote({,})dnl AC_MSG_CHECKING(for JAVA_HOME) - AC_CACHE_VAL(pike_cv_java_java_home, [ + AC_CACHE_VAL(pike_cv_java_java_home, {{ if test "x$JAVA_HOME" = x; then pike_cv_java_java_home=no - java_home_guess="`java -verbose 2>&1 | sed -n -e 's/^[[^/]]*//' -e 's:/lib/rt.jar .*$::' -e p -e q`" + java_home_guess="`java -verbose 2>&1 | sed -e 's:^\[[^]/]*\(/.*\)/[^/]*\.jar[] ].*$:\1:' -e t -e d | sed -e 's:/[Cc]lasses$::' -e 's:/lib$::' -e 1q`" for tmp_java_home in /usr/java /usr/local/java /usr/local/jdk* /usr/java*/jre /usr/local/java*/jre /usr/local/jdk*/jre /usr/local/jre* "$java_home_guess" "$pike_java_user_lib_directory"/..; do if test -d $tmp_java_home/.; then if ls "$tmp_java_home/lib/$pike_cv_java_arch/$pike_cv_java_threads_type"/libjvm* >/dev/null 2>&1 || \ ls "$tmp_java_home/lib/$pike_cv_java_arch"/libjvm* >/dev/null 2>&1 || \ - ls "$tmp_java_home/lib/$pike_cv_java_arch"/classic/libjvm* >/dev/null 2>&1; then + ls "$tmp_java_home/lib/$pike_cv_java_arch"/classic/libjvm* >/dev/null 2>&1 || \ + ls "$tmp_java_home/Libraries"/libjvm* >/dev/null 2>&1; then pike_cv_java_java_home="$tmp_java_home" else : @@ -89,21 +91,26 @@ if test "x$with_java" = xyes; then else pike_cv_java_java_home="$JAVA_HOME" fi - ]) + }}) AC_MSG_RESULT($pike_cv_java_java_home) + changequote([,])dnl AC_MSG_CHECKING(for Java libraries) AC_CACHE_VAL(pike_cv_java_lib_dir, [ pike_cv_java_lib_dir="" if test -z "$pike_java_user_lib_directory"; then - tmp_java_lib_dir="$pike_cv_java_java_home/lib" + if test -d "$pike_cv_java_java_home"/Libraries; then + tmp_java_lib_dir="$pike_cv_java_java_home"/Libraries + else + tmp_java_lib_dir="$pike_cv_java_java_home/lib" + fi else tmp_java_lib_dir="$pike_java_user_lib_directory" fi for i in "$pike_cv_java_arch/$pike_cv_java_threads_type" \ "$pike_cv_java_arch/classic" "$pike_cv_java_arch" \ - "$pike_cv_java_arch/server" ; do - if test -d "$tmp_java_lib_dir/$i/." ; then + "$pike_cv_java_arch/server" "."; do + if test -d "$tmp_java_lib_dir/$i/." && ls "$tmp_java_lib_dir/$i/"lib* >/dev/null 2>&1; then pike_cv_java_lib_dir="$pike_cv_java_lib_dir$tmp_java_lib_dir/$i " else : @@ -127,7 +134,7 @@ if test "x$with_java" = xyes; then AC_MSG_CHECKING(for the Java include directory) AC_CACHE_VAL(pike_cv_java_include_dir, [ pike_cv_java_include_dir=no - for tmp_java_incdir in /usr/java* /usr/local/java* /usr/local/jdk* /usr/local/jre* "$pike_cv_java_java_home"/.. "$pike_cv_java_java_home" "$pike_java_user_include_directory"; do + for tmp_java_incdir in /usr/java* /usr/local/java* /usr/local/jdk* /usr/local/jre* "$pike_cv_java_java_home"/../.. "$pike_cv_java_java_home"/.. "$pike_cv_java_java_home" "$pike_java_user_include_directory"; do if test -d $tmp_java_incdir/. -a -d $tmp_java_incdir/include/$pike_cv_java_sysos/.; then if ls "$tmp_java_incdir/include/jni.h" >/dev/null 2>&1 ; then pike_cv_java_include_dir="$tmp_java_incdir/include" @@ -135,7 +142,15 @@ if test "x$with_java" = xyes; then : fi else - : + if test -d $tmp_java_incdir/. -a -d $tmp_java_incdir/Headers/.; then + if ls "$tmp_java_incdir/Headers/jni.h" >/dev/null 2>&1 ; then + pike_cv_java_include_dir="$tmp_java_incdir/Headers" + else + : + fi + else + : + fi fi done ])