github.com/aquanetwork/aquachain@v1.7.8/crypto/secp256k1/libsecp256k1/build-aux/m4/ax_jni_include_dir.m4 (about)

     1  # ===========================================================================
     2  #    https://www.gnu.org/software/autoconf-archive/ax_jni_include_dir.html
     3  # ===========================================================================
     4  #
     5  # SYNOPSIS
     6  #
     7  #   AX_JNI_INCLUDE_DIR
     8  #
     9  # DESCRIPTION
    10  #
    11  #   AX_JNI_INCLUDE_DIR finds include directories needed for compiling
    12  #   programs using the JNI interface.
    13  #
    14  #   JNI include directories are usually in the Java distribution. This is
    15  #   deduced from the value of $JAVA_HOME, $JAVAC, or the path to "javac", in
    16  #   that order. When this macro completes, a list of directories is left in
    17  #   the variable JNI_INCLUDE_DIRS.
    18  #
    19  #   Example usage follows:
    20  #
    21  #     AX_JNI_INCLUDE_DIR
    22  #
    23  #     for JNI_INCLUDE_DIR in $JNI_INCLUDE_DIRS
    24  #     do
    25  #             CPPFLAGS="$CPPFLAGS -I$JNI_INCLUDE_DIR"
    26  #     done
    27  #
    28  #   If you want to force a specific compiler:
    29  #
    30  #   - at the configure.in level, set JAVAC=yourcompiler before calling
    31  #   AX_JNI_INCLUDE_DIR
    32  #
    33  #   - at the configure level, setenv JAVAC
    34  #
    35  #   Note: This macro can work with the autoconf M4 macros for Java programs.
    36  #   This particular macro is not part of the original set of macros.
    37  #
    38  # LICENSE
    39  #
    40  #   Copyright (c) 2008 Don Anderson <dda@sleepycat.com>
    41  #
    42  #   Copying and distribution of this file, with or without modification, are
    43  #   permitted in any medium without royalty provided the copyright notice
    44  #   and this notice are preserved. This file is offered as-is, without any
    45  #   warranty.
    46  
    47  #serial 14
    48  
    49  AU_ALIAS([AC_JNI_INCLUDE_DIR], [AX_JNI_INCLUDE_DIR])
    50  AC_DEFUN([AX_JNI_INCLUDE_DIR],[
    51  
    52  JNI_INCLUDE_DIRS=""
    53  
    54  if test "x$JAVA_HOME" != x; then
    55  	_JTOPDIR="$JAVA_HOME"
    56  else
    57  	if test "x$JAVAC" = x; then
    58  		JAVAC=javac
    59  	fi
    60  	AC_PATH_PROG([_ACJNI_JAVAC], [$JAVAC], [no])
    61  	if test "x$_ACJNI_JAVAC" = xno; then
    62  		AC_MSG_WARN([cannot find JDK; try setting \$JAVAC or \$JAVA_HOME])
    63  	fi
    64  	_ACJNI_FOLLOW_SYMLINKS("$_ACJNI_JAVAC")
    65  	_JTOPDIR=`echo "$_ACJNI_FOLLOWED" | sed -e 's://*:/:g' -e 's:/[[^/]]*$::'`
    66  fi
    67  
    68  case "$host_os" in
    69          darwin*)        # Apple Java headers are inside the Xcode bundle.
    70              macos_version=$(sw_vers -productVersion | sed -n -e 's/^@<:@0-9@:>@*.\(@<:@0-9@:>@*\).@<:@0-9@:>@*/\1/p')
    71              if @<:@ "$macos_version" -gt "7" @:>@; then
    72                  _JTOPDIR="$(xcrun --show-sdk-path)/System/Library/Frameworks/JavaVM.framework"
    73                  _JINC="$_JTOPDIR/Headers"
    74              else
    75                  _JTOPDIR="/System/Library/Frameworks/JavaVM.framework"
    76                  _JINC="$_JTOPDIR/Headers"
    77              fi
    78              ;;
    79          *) _JINC="$_JTOPDIR/include";;
    80  esac
    81  _AS_ECHO_LOG([_JTOPDIR=$_JTOPDIR])
    82  _AS_ECHO_LOG([_JINC=$_JINC])
    83  
    84  # On Mac OS X 10.6.4, jni.h is a symlink:
    85  # /System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers/jni.h
    86  # -> ../../CurrentJDK/Headers/jni.h.
    87  AC_CACHE_CHECK(jni headers, ac_cv_jni_header_path,
    88  [
    89    if test -f "$_JINC/jni.h"; then
    90      ac_cv_jni_header_path="$_JINC"
    91      JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $ac_cv_jni_header_path"
    92    else
    93      _JTOPDIR=`echo "$_JTOPDIR" | sed -e 's:/[[^/]]*$::'`
    94      if test -f "$_JTOPDIR/include/jni.h"; then
    95        ac_cv_jni_header_path="$_JTOPDIR/include"
    96        JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $ac_cv_jni_header_path"
    97      else
    98        ac_cv_jni_header_path=none
    99      fi
   100    fi
   101  ])
   102  
   103  # get the likely subdirectories for system specific java includes
   104  case "$host_os" in
   105  bsdi*)          _JNI_INC_SUBDIRS="bsdos";;
   106  freebsd*)       _JNI_INC_SUBDIRS="freebsd";;
   107  darwin*)        _JNI_INC_SUBDIRS="darwin";;
   108  linux*)         _JNI_INC_SUBDIRS="linux genunix";;
   109  osf*)           _JNI_INC_SUBDIRS="alpha";;
   110  solaris*)       _JNI_INC_SUBDIRS="solaris";;
   111  mingw*)		_JNI_INC_SUBDIRS="win32";;
   112  cygwin*)	_JNI_INC_SUBDIRS="win32";;
   113  *)              _JNI_INC_SUBDIRS="genunix";;
   114  esac
   115  
   116  if test "x$ac_cv_jni_header_path" != "xnone"; then
   117    # add any subdirectories that are present
   118    for JINCSUBDIR in $_JNI_INC_SUBDIRS
   119    do
   120      if test -d "$_JTOPDIR/include/$JINCSUBDIR"; then
   121           JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $_JTOPDIR/include/$JINCSUBDIR"
   122      fi
   123    done
   124  fi
   125  ])
   126  
   127  # _ACJNI_FOLLOW_SYMLINKS <path>
   128  # Follows symbolic links on <path>,
   129  # finally setting variable _ACJNI_FOLLOWED
   130  # ----------------------------------------
   131  AC_DEFUN([_ACJNI_FOLLOW_SYMLINKS],[
   132  # find the include directory relative to the javac executable
   133  _cur="$1"
   134  while ls -ld "$_cur" 2>/dev/null | grep " -> " >/dev/null; do
   135          AC_MSG_CHECKING([symlink for $_cur])
   136          _slink=`ls -ld "$_cur" | sed 's/.* -> //'`
   137          case "$_slink" in
   138          /*) _cur="$_slink";;
   139          # 'X' avoids triggering unwanted echo options.
   140          *) _cur=`echo "X$_cur" | sed -e 's/^X//' -e 's:[[^/]]*$::'`"$_slink";;
   141          esac
   142          AC_MSG_RESULT([$_cur])
   143  done
   144  _ACJNI_FOLLOWED="$_cur"
   145  ])# _ACJNI