mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
112 lines
3.4 KiB
Text
112 lines
3.4 KiB
Text
dnl @synopsis AC_JNI_INCLUDE_DIR
|
|
dnl
|
|
dnl AC_JNI_INCLUDE_DIR finds include directories needed
|
|
dnl for compiling programs using the JNI interface.
|
|
dnl
|
|
dnl JNI include directories are usually in the java distribution
|
|
dnl This is deduced from the value of JAVAC. When this macro
|
|
dnl completes, a list of directories is left in the variable
|
|
dnl JNI_INCLUDE_DIRS.
|
|
dnl
|
|
dnl Example usage follows:
|
|
dnl
|
|
dnl AC_JNI_INCLUDE_DIR
|
|
dnl
|
|
dnl for JNI_INCLUDE_DIR in $JNI_INCLUDE_DIRS
|
|
dnl do
|
|
dnl CPPFLAGS="$CPPFLAGS -I$JNI_INCLUDE_DIR"
|
|
dnl done
|
|
dnl
|
|
dnl If you want to force a specific compiler:
|
|
dnl
|
|
dnl - at the configure.in level, set JAVAC=yourcompiler before calling
|
|
dnl AC_JNI_INCLUDE_DIR
|
|
dnl
|
|
dnl - at the configure level, setenv JAVAC
|
|
dnl
|
|
dnl Note: This macro can work with the autoconf M4 macros for Java programs.
|
|
dnl This particular macro is not part of the original set of macros.
|
|
dnl
|
|
dnl @author Don Anderson <dda@sleepycat.com>
|
|
dnl @version $Id: ac_jni_include_dirs.ac,v 1.8 2002/09/04 21:27:30 dda Exp $
|
|
dnl
|
|
AC_DEFUN(AC_JNI_INCLUDE_DIR,[
|
|
|
|
JNI_INCLUDE_DIRS=""
|
|
|
|
test "x$JAVAC" = x && AC_MSG_ERROR(['$JAVAC' undefined])
|
|
AC_PATH_PROG(_ACJNI_JAVAC, $JAVAC, $JAVAC)
|
|
test ! -x "$_ACJNI_JAVAC" && AC_MSG_ERROR([$JAVAC could not be found in path])
|
|
AC_MSG_CHECKING(absolute path of $JAVAC)
|
|
case "$_ACJNI_JAVAC" in
|
|
/*) AC_MSG_RESULT($_ACJNI_JAVAC);;
|
|
*) AC_MSG_ERROR([$_ACJNI_JAVAC is not an absolute path name]);;
|
|
esac
|
|
|
|
_ACJNI_FOLLOW_SYMLINKS("$_ACJNI_JAVAC")
|
|
_JTOPDIR=`echo "$_ACJNI_FOLLOWED" | sed -e 's://*:/:g' -e 's:/[[^/]]*$::'`
|
|
case "$host_os" in
|
|
darwin*) _JTOPDIR=`echo "$_JTOPDIR" | sed -e 's:/[[^/]]*$::'`
|
|
_JINC="$_JTOPDIR/Headers";;
|
|
*) _JINC="$_JTOPDIR/include";;
|
|
esac
|
|
|
|
# If we find jni.h in /usr/include, then it's not a java-only tree, so
|
|
# don't add /usr/include or subdirectories to the list of includes.
|
|
# An extra -I/usr/include can foul things up with newer gcc's.
|
|
if test -f "$_JINC/jni.h"; then
|
|
if test "$_JINC" != "/usr/include"; then
|
|
JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $_JINC"
|
|
fi
|
|
else
|
|
_JTOPDIR=`echo "$_JTOPDIR" | sed -e 's:/[[^/]]*$::'`
|
|
if test -f "$_JTOPDIR/include/jni.h"; then
|
|
if test "$_JTOPDIR" != "/usr"; then
|
|
JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $_JTOPDIR/include"
|
|
fi
|
|
else
|
|
AC_MSG_ERROR([cannot find java include files])
|
|
fi
|
|
fi
|
|
|
|
# get the likely subdirectories for system specific java includes
|
|
if test "$_JTOPDIR" != "/usr"; then
|
|
case "$host_os" in
|
|
aix*) _JNI_INC_SUBDIRS="aix";;
|
|
bsdi*) _JNI_INC_SUBDIRS="bsdos";;
|
|
linux*) _JNI_INC_SUBDIRS="linux genunix";;
|
|
osf*) _JNI_INC_SUBDIRS="alpha";;
|
|
solaris*) _JNI_INC_SUBDIRS="solaris";;
|
|
*) _JNI_INC_SUBDIRS="genunix";;
|
|
esac
|
|
fi
|
|
|
|
# add any subdirectories that are present
|
|
for _JINCSUBDIR in $_JNI_INC_SUBDIRS
|
|
do
|
|
if test -d "$_JTOPDIR/include/$_JINCSUBDIR"; then
|
|
JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $_JTOPDIR/include/$_JINCSUBDIR"
|
|
fi
|
|
done
|
|
])
|
|
|
|
# _ACJNI_FOLLOW_SYMLINKS <path>
|
|
# Follows symbolic links on <path>,
|
|
# finally setting variable _ACJNI_FOLLOWED
|
|
# --------------------
|
|
AC_DEFUN(_ACJNI_FOLLOW_SYMLINKS,[
|
|
# find the include directory relative to the javac executable
|
|
_cur="$1"
|
|
while ls -ld "$_cur" 2>/dev/null | grep " -> " >/dev/null; do
|
|
AC_MSG_CHECKING(symlink for $_cur)
|
|
_slink=`ls -ld "$_cur" | sed 's/.* -> //'`
|
|
case "$_slink" in
|
|
/*) _cur="$_slink";;
|
|
# 'X' avoids triggering unwanted echo options.
|
|
*) _cur=`echo "X$_cur" | sed -e 's/^X//' -e 's:[[^/]]*$::'`"$_slink";;
|
|
esac
|
|
AC_MSG_RESULT($_cur)
|
|
done
|
|
_ACJNI_FOLLOWED="$_cur"
|
|
])# _ACJNI
|
|
|