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 dnl @version $Id: ac_jni_include_dirs.m4,v 1.1 2001/09/25 01:25 ac-archive-0.5.39 $ 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, no) test "x$_ACJNI_JAVAC" = xno && AC_MSG_ERROR([$JAVAC could not be found in path]) _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 test -f "$_JINC/jni.h"; then JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $_JINC" else _JTOPDIR=`echo "$_JTOPDIR" | sed -e 's:/[[^/]]*$::'` if test -f "$_JTOPDIR/include/jni.h"; then JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $_JTOPDIR/include" else AC_MSG_ERROR([cannot find java include files]) fi fi # get the likely subdirectories for system specific java includes case "$host_os" in 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 # 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 # Follows symbolic links on , # 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