freeswitch/build/config/ax_check_java.m4
2007-09-25 13:21:17 +00:00

154 lines
3.6 KiB
Plaintext

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)
AC_SUBST(JAVA_HOME)
])