141 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			141 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | # =========================================================================== | ||
|  | #    http://www.gnu.org/software/autoconf-archive/ax_jni_include_dir.html | ||
|  | # =========================================================================== | ||
|  | # | ||
|  | # SYNOPSIS | ||
|  | # | ||
|  | #   AX_JNI_INCLUDE_DIR | ||
|  | # | ||
|  | # DESCRIPTION | ||
|  | # | ||
|  | #   AX_JNI_INCLUDE_DIR finds include directories needed for compiling | ||
|  | #   programs using the JNI interface. | ||
|  | # | ||
|  | #   JNI include directories are usually in the Java distribution. This is | ||
|  | #   deduced from the value of $JAVA_HOME, $JAVAC, or the path to "javac", in | ||
|  | #   that order. When this macro completes, a list of directories is left in | ||
|  | #   the variable JNI_INCLUDE_DIRS. | ||
|  | # | ||
|  | #   Example usage follows: | ||
|  | # | ||
|  | #     AX_JNI_INCLUDE_DIR | ||
|  | # | ||
|  | #     for JNI_INCLUDE_DIR in $JNI_INCLUDE_DIRS | ||
|  | #     do | ||
|  | #             CPPFLAGS="$CPPFLAGS -I$JNI_INCLUDE_DIR" | ||
|  | #     done | ||
|  | # | ||
|  | #   If you want to force a specific compiler: | ||
|  | # | ||
|  | #   - at the configure.in level, set JAVAC=yourcompiler before calling | ||
|  | #   AX_JNI_INCLUDE_DIR | ||
|  | # | ||
|  | #   - at the configure level, setenv JAVAC | ||
|  | # | ||
|  | #   Note: This macro can work with the autoconf M4 macros for Java programs. | ||
|  | #   This particular macro is not part of the original set of macros. | ||
|  | # | ||
|  | # LICENSE | ||
|  | # | ||
|  | #   Copyright (c) 2008 Don Anderson <dda@sleepycat.com> | ||
|  | # | ||
|  | #   Copying and distribution of this file, with or without modification, are | ||
|  | #   permitted in any medium without royalty provided the copyright notice | ||
|  | #   and this notice are preserved. This file is offered as-is, without any | ||
|  | #   warranty. | ||
|  | 
 | ||
|  | #serial 10 | ||
|  | 
 | ||
|  | AU_ALIAS([AC_JNI_INCLUDE_DIR], [AX_JNI_INCLUDE_DIR]) | ||
|  | AC_DEFUN([AX_JNI_INCLUDE_DIR],[ | ||
|  | 
 | ||
|  | JNI_INCLUDE_DIRS="" | ||
|  | 
 | ||
|  | if test "x$JAVA_HOME" != x; then | ||
|  | 	_JTOPDIR="$JAVA_HOME" | ||
|  | else | ||
|  | 	if test "x$JAVAC" = x; then | ||
|  | 		JAVAC=javac | ||
|  | 	fi | ||
|  | 	AC_PATH_PROG([_ACJNI_JAVAC], [$JAVAC], [no]) | ||
|  | 	if test "x$_ACJNI_JAVAC" = xno; then | ||
|  | 		AC_MSG_WARN([cannot find JDK; try setting \$JAVAC or \$JAVA_HOME]) | ||
|  | 	fi | ||
|  | 	_ACJNI_FOLLOW_SYMLINKS("$_ACJNI_JAVAC") | ||
|  | 	_JTOPDIR=`echo "$_ACJNI_FOLLOWED" | sed -e 's://*:/:g' -e 's:/[[^/]]*$::'` | ||
|  | fi | ||
|  | 
 | ||
|  | case "$host_os" in | ||
|  |         darwin*)        _JTOPDIR=`echo "$_JTOPDIR" | sed -e 's:/[[^/]]*$::'` | ||
|  |                         _JINC="$_JTOPDIR/Headers";; | ||
|  |         *)              _JINC="$_JTOPDIR/include";; | ||
|  | esac | ||
|  | _AS_ECHO_LOG([_JTOPDIR=$_JTOPDIR]) | ||
|  | _AS_ECHO_LOG([_JINC=$_JINC]) | ||
|  | 
 | ||
|  | # On Mac OS X 10.6.4, jni.h is a symlink: | ||
|  | # /System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers/jni.h | ||
|  | # -> ../../CurrentJDK/Headers/jni.h. | ||
|  | 
 | ||
|  | AC_CACHE_CHECK(jni headers, ac_cv_jni_header_path, | ||
|  | [ | ||
|  | if test -f "$_JINC/jni.h"; then | ||
|  |   ac_cv_jni_header_path="$_JINC" | ||
|  |   JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $ac_cv_jni_header_path" | ||
|  | else | ||
|  |   _JTOPDIR=`echo "$_JTOPDIR" | sed -e 's:/[[^/]]*$::'` | ||
|  |   if test -f "$_JTOPDIR/include/jni.h"; then | ||
|  |     ac_cv_jni_header_path="$_JTOPDIR/include" | ||
|  |     JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $ac_cv_jni_header_path" | ||
|  |   else | ||
|  |     ac_cv_jni_header_path=none | ||
|  |   fi | ||
|  | fi | ||
|  | ]) | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | # get the likely subdirectories for system specific java includes | ||
|  | case "$host_os" in | ||
|  | bsdi*)          _JNI_INC_SUBDIRS="bsdos";; | ||
|  | darwin*)        _JNI_INC_SUBDIRS="darwin";; | ||
|  | freebsd*)       _JNI_INC_SUBDIRS="freebsd";; | ||
|  | linux*)         _JNI_INC_SUBDIRS="linux genunix";; | ||
|  | osf*)           _JNI_INC_SUBDIRS="alpha";; | ||
|  | solaris*)       _JNI_INC_SUBDIRS="solaris";; | ||
|  | mingw*)		_JNI_INC_SUBDIRS="win32";; | ||
|  | cygwin*)	_JNI_INC_SUBDIRS="win32";; | ||
|  | *)              _JNI_INC_SUBDIRS="genunix";; | ||
|  | esac | ||
|  | 
 | ||
|  | if test "x$ac_cv_jni_header_path" != "xnone"; then | ||
|  |   # 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 | ||
|  | fi | ||
|  | ]) | ||
|  | 
 | ||
|  | # _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 |