AC_DEFUN(SVN_CHECK_JDK,
[
JAVA_OLDEST_WORKING_VER="$1"
AC_ARG_WITH(jdk,
AS_HELP_STRING([--with-jdk=PATH],
[Try to use 'PATH/include' to find the JNI
headers. If PATH is not specified, look
for a Java Development Kit at JAVA_HOME.]),
[
case "$withval" in
"no")
JDK_SUITABLE=no
;;
"yes")
SVN_FIND_JDK(check, $JAVA_OLDEST_WORKING_VER)
;;
*)
SVN_FIND_JDK($withval, $JAVA_OLDEST_WORKING_VER)
;;
esac
],
[
SVN_FIND_JDK(check, $JAVA_OLDEST_WORKING_VER)
])
])
AC_DEFUN(SVN_FIND_JDK,
[
where=$1
JAVA_OLDEST_WORKING_VER="$2"
JDK=none
JAVA_BIN=none
JAVADOC=none
JAVAC=none
JAVAH=none
JAR=none
JNI_INCLUDES=none
JDK_SUITABLE=no
AC_MSG_CHECKING([for JDK])
if test $where = check; then
if test -x "$JAVA_HOME/bin/java"; then
JDK="$JAVA_HOME"
elif test -x "/usr/libexec/java_home"; then
JDK=`/usr/libexec/java_home`
elif test -x "/Library/Java/Home/bin/java"; then
JDK="/Library/Java/Home"
elif test -x "/usr/bin/java"; then
JDK="/usr"
elif test -x "/usr/local/bin/java"; then
JDK="/usr/local"
fi
else
JDK=$where
fi
os_arch="`uname`"
if test "$os_arch" = "Darwin"; then
OSX_VER=`/usr/bin/sw_vers | grep ProductVersion | cut -f2 | cut -d"." -f1,2`
if test "$OSX_VER" = "10.4"; then
OSX_VER="10.4u"
fi
OSX_SYS_JAVA_FRAMEWORK="/System/Library/Frameworks/JavaVM.framework"
OSX_SDK_JAVA_FRAMEWORK="/Developer/SDKs/MacOSX$OSX_VER.sdk/System/Library"
OSX_SDK_JAVA_FRAMEWORK="$OSX_SDK_JAVA_FRAMEWORK/Frameworks/JavaVM.framework"
fi
if test "$os_arch" = "Darwin" && test "$JDK" = "/usr" &&
test -d "/Library/Java/Home"; then
JDK="/Library/Java/Home"
fi
if test "$os_arch" = "Darwin" && test "$JDK" = "/Library/Java/Home"; then
JRE_LIB_DIR="$OSX_SYS_JAVA_FRAMEWORK/Classes"
else
JRE_LIB_DIR="$JDK/jre/lib"
fi
if test -f "$JDK/include/jni.h"; then
JNI_INCLUDEDIR="$JDK/include"
JDK_SUITABLE=yes
elif test "$os_arch" = "Darwin" && test -e "$JDK/Headers/jni.h"; then
JNI_INCLUDEDIR="$JDK/Headers"
JDK_SUITABLE=yes
elif test "$os_arch" = "Darwin" &&
test -e "$OSX_SYS_JAVA_FRAMEWORK/Headers/jni.h"; then
JNI_INCLUDEDIR="$OSX_SYS_JAVA_FRAMEWORK/Headers"
JDK_SUITABLE=yes
elif test "$os_arch" = "Darwin" &&
test -e "$OSX_SDK_JAVA_FRAMEWORK/Headers/jni.h"; then
JNI_INCLUDEDIR="$OSX_SDK_JAVA_FRAMEWORK/Headers"
JDK_SUITABLE=yes
else
JDK_SUITABLE=no
fi
if test "$JDK_SUITABLE" = "yes"; then
AC_MSG_RESULT([$JNI_INCLUDEDIR/jni.h])
else
AC_MSG_RESULT([no])
if test "$where" != "check"; then
AC_MSG_WARN([no JNI header files found.])
if test "$os_arch" = "Darwin"; then
AC_MSG_WARN([You may need to install the latest Java Development package from http://connect.apple.com/. Apple no longer includes the JNI header files by default on Java updates.])
fi
fi
fi
if test "$JDK_SUITABLE" = "yes"; then
JAVA_BIN='$(JDK)/bin'
JAVA="$JAVA_BIN/java"
JAVAC="$JAVA_BIN/javac"
JAVAH="$JAVA_BIN/javah"
JAVADOC="$JAVA_BIN/javadoc"
JAR="$JAVA_BIN/jar"
AC_ARG_WITH(jikes,
AS_HELP_STRING([--with-jikes=PATH],
[Deprecated. Provided for backward compatibility.]),
[
if test "$withval" != "no"; then
AC_MSG_WARN([The --with-jikes option was ignored])
fi
])
if test -z "$JAVAC_FLAGS"; then
JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.6"
if test "$enable_debugging" = "yes"; then
JAVAC_FLAGS="-g -Xlint -Xlint:unchecked -Xlint:serial -Xlint:path $JAVAC_FLAGS"
if test -z "$JAVAC_COMPAT_FLAGS"; then
JAVAC_COMPAT_FLAGS="$JAVAC_FLAGS -Xlint:-unchecked -Xlint:-deprecation -Xlint:-dep-ann -Xlint:-rawtypes"
fi
fi
fi
JNI_INCLUDES="-I$JNI_INCLUDEDIR"
list="`find "$JNI_INCLUDEDIR" -type d -print`"
for dir in $list; do
JNI_INCLUDES="$JNI_INCLUDES -I$dir"
done
fi
AC_SUBST(JDK)
AC_SUBST(JAVA)
AC_SUBST(JAVAC)
AC_SUBST(JAVAC_FLAGS)
AC_SUBST(JAVAC_COMPAT_FLAGS)
AC_SUBST(JAVADOC)
AC_SUBST(JAVAH)
AC_SUBST(JAR)
AC_SUBST(JNI_INCLUDES)
])