github.com/YoungNK/go-ethereum@v1.9.7/crypto/secp256k1/libsecp256k1/build-aux/m4/ax_jni_include_dir.m4 (about)

     1  # ===========================================================================
     2  #    http://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 10
    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*)        _JTOPDIR=`echo "$_JTOPDIR" | sed -e 's:/[[^/]]*$::'`
    70                          _JINC="$_JTOPDIR/Headers";;
    71          *)              _JINC="$_JTOPDIR/include";;
    72  esac
    73  _AS_ECHO_LOG([_JTOPDIR=$_JTOPDIR])
    74  _AS_ECHO_LOG([_JINC=$_JINC])
    75  
    76  # On Mac OS X 10.6.4, jni.h is a symlink:
    77  # /System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers/jni.h
    78  # -> ../../CurrentJDK/Headers/jni.h.
    79  
    80  AC_CACHE_CHECK(jni headers, ac_cv_jni_header_path,
    81  [
    82  if test -f "$_JINC/jni.h"; then
    83    ac_cv_jni_header_path="$_JINC"
    84    JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $ac_cv_jni_header_path"
    85  else
    86    _JTOPDIR=`echo "$_JTOPDIR" | sed -e 's:/[[^/]]*$::'`
    87    if test -f "$_JTOPDIR/include/jni.h"; then
    88      ac_cv_jni_header_path="$_JTOPDIR/include"
    89      JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $ac_cv_jni_header_path"
    90    else
    91      ac_cv_jni_header_path=none
    92    fi
    93  fi
    94  ])
    95  
    96  
    97  
    98  # get the likely subdirectories for system specific java includes
    99  case "$host_os" in
   100  bsdi*)          _JNI_INC_SUBDIRS="bsdos";;
   101  darwin*)        _JNI_INC_SUBDIRS="darwin";;
   102  freebsd*)       _JNI_INC_SUBDIRS="freebsd";;
   103  linux*)         _JNI_INC_SUBDIRS="linux genunix";;
   104  osf*)           _JNI_INC_SUBDIRS="alpha";;
   105  solaris*)       _JNI_INC_SUBDIRS="solaris";;
   106  mingw*)		_JNI_INC_SUBDIRS="win32";;
   107  cygwin*)	_JNI_INC_SUBDIRS="win32";;
   108  *)              _JNI_INC_SUBDIRS="genunix";;
   109  esac
   110  
   111  if test "x$ac_cv_jni_header_path" != "xnone"; then
   112    # add any subdirectories that are present
   113    for JINCSUBDIR in $_JNI_INC_SUBDIRS
   114    do
   115        if test -d "$_JTOPDIR/include/$JINCSUBDIR"; then
   116             JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $_JTOPDIR/include/$JINCSUBDIR"
   117        fi
   118    done
   119  fi
   120  ])
   121  
   122  # _ACJNI_FOLLOW_SYMLINKS <path>
   123  # Follows symbolic links on <path>,
   124  # finally setting variable _ACJNI_FOLLOWED
   125  # ----------------------------------------
   126  AC_DEFUN([_ACJNI_FOLLOW_SYMLINKS],[
   127  # find the include directory relative to the javac executable
   128  _cur="$1"
   129  while ls -ld "$_cur" 2>/dev/null | grep " -> " >/dev/null; do
   130          AC_MSG_CHECKING([symlink for $_cur])
   131          _slink=`ls -ld "$_cur" | sed 's/.* -> //'`
   132          case "$_slink" in
   133          /*) _cur="$_slink";;
   134          # 'X' avoids triggering unwanted echo options.
   135          *) _cur=`echo "X$_cur" | sed -e 's/^X//' -e 's:[[^/]]*$::'`"$_slink";;
   136          esac
   137          AC_MSG_RESULT([$_cur])
   138  done
   139  _ACJNI_FOLLOWED="$_cur"
   140  ])# _ACJNI