1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
|
dnl Usage:
dnl AX_CHECK_JAVA
dnl Test for java, and defines
dnl - JAVA_CFLAGS (compiler flags)
dnl - LIB_JAVA (linker flags, stripping and path)
dnl prerequisites:
AC_DEFUN([AX_CHECK_JAVA],
[
AC_ARG_WITH([java],
AC_HELP_STRING([ --with-java=PFX], [prefix where 'java' is installed.]),
[with_java_prefix=$withval],
[with_java_prefix=${JAVA_INSTALL_PATH:-/usr/java/j2sdk1.4.1_01}])
have_java='no'
LIB_JAVA=''
JAVA_FLAGS=''
JAVA_HOME=''
if test "x$with_java" != 'xno'
then
AC_MSG_CHECKING([for JAVA installation at ${with_java}])
AC_MSG_RESULT()
dnl these two lines should let u find most java installations
java_dirs="/usr /usr/local /usr/lib/j2sdk1.4-sun /usr/lib/jvm/java /System/Library/Frameworks/JavaVM.framework/Versions/Current /opt /mingw"
java_inc_dirs="include include/libgcj Headers"
if test "x$with_java" != 'x'
then
if test -d "$with_java"
then
JAVA_HOME="$with_java"
for j in $java_inc_dirs
do
echo "configure: __oline__: checking $JAVA_HOME/$j" >&AC_FD_CC
if test -r "$JAVA_HOME/$j/jni.h"; then
echo "taking that" >&AC_FD_CC
java_inc_dir="$j"
break 2
fi
done
else
AC_MSG_WARN([Sorry, $with_java does not exist, checking usual places])
with_java=''
fi
fi
dnl now find the java dirs
if test "x$JAVA_HOME" = 'x'
then
for i in $java_dirs;
do
for j in $java_inc_dirs
do
echo "configure: __oline__: checking $i/$j" >&AC_FD_CC
if test -r "$i/$j/jni.h"; then
echo "taking that" >&AC_FD_CC
JAVA_HOME="$i"
java_inc_dir="$j"
break
fi
done
done
if test "x$JAVA_HOME" != 'x'
then
AC_MSG_NOTICE([java home set to $JAVA_HOME])
else
AC_MSG_NOTICE([cannot find the java directory, assuming it is specified in CFLAGS])
fi
fi
failed=0;
passed=0;
JAVA_OLD_CPPFLAGS=$CPPFLAGS
case "${host_os}" in
linux*)
java_extra_inc=linux
;;
darwin*)
java_extra_inc=darwin
;;
*mingw32*)
java_extra_inc=win32
;;
*cygwin*)
java_extra_inc=win32
;;
esac
dnl Check if extra inc is required
CPPFLAGS="$CPPFLAGS -I$JAVA_HOME/$java_inc_dir"
AC_LANG_SAVE
AC_LANG_C
AC_COMPILE_IFELSE(
AC_LANG_SOURCE(
[[#include <jni.h>]]
),
passed=`expr $passed + 1`,failed=`expr $failed + 1`
)
AC_LANG_RESTORE
CPPFLAGS="$JAVA_OLD_CPPFLAGS"
JAVA_FLAGS="-I$JAVA_HOME/$java_inc_dir -DHasJava"
if test $failed -gt 0
then
echo "configure: __oline__: checking if extra_inc required" >&AC_FD_CC
failed=0;
CPPFLAGS="$CPPFLAGS -I$JAVA_HOME/$java_inc_dir -I$JAVA_HOME/$java_inc_dir/$java_extra_inc"
AC_LANG_SAVE
AC_LANG_C
AC_COMPILE_IFELSE(
AC_LANG_SOURCE(
[[#include <jni.h>]]
),
passed=`expr $passed + 1`,failed=`expr $failed + 1`
)
AC_LANG_RESTORE
CPPFLAGS="$JAVA_OLD_CPPFLAGS"
JAVA_FLAGS="-I$JAVA_HOME/$java_inc_dir -I$JAVA_HOME/$java_inc_dir/$java_extra_inc -DHasJava"
fi
AC_MSG_CHECKING(if JAVA package is complete)
if test $passed -gt 0
then
if test $failed -gt 0
then
AC_MSG_RESULT(no -- some components failed test)
have_java='no (failed tests)'
JAVA_FLAGS=
else
if test "x$JAVA_HOME" = 'x'
then
JAVA_FLAGS=
else
LIB_JAVA="-L$JAVA_HOME/lib"
fi
AC_DEFINE(HasJava,1,Define if you have Java)
AC_MSG_RESULT(yes)
have_java='yes'
fi
else
JAVA_FLAGS=
AC_MSG_RESULT(no)
fi
fi
AM_CONDITIONAL(HasJava, test "x$have_java" = 'xyes')
AC_SUBST(LIB_JAVA)
AC_SUBST(JAVA_FLAGS)
])
|