~lttng/lttng-ust/lttng-ust

« back to all changes in this revision

Viewing changes to m4/ax_jni_include_dir.m4

  • Committer: Mathieu Desnoyers
  • Author(s): Michael Jeanson
  • Date: 2017-05-09 18:52:23 UTC
  • Revision ID: git-v1:093c3f9bbdda113147ab03be62aaa37bd1c786b4
Move m4 scripts to m4 dir

Harmonize build system configuration across our projects.

Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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_ERROR([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
AC_CHECK_FILE([$_JINC/jni.h],
 
80
        [JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $_JINC"],
 
81
        [_JTOPDIR=`echo "$_JTOPDIR" | sed -e 's:/[[^/]]*$::'`
 
82
         AC_CHECK_FILE([$_JTOPDIR/include/jni.h],
 
83
                [JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $_JTOPDIR/include"],
 
84
                AC_MSG_ERROR([cannot find JDK header files]))
 
85
        ])
 
86
 
 
87
# get the likely subdirectories for system specific java includes
 
88
case "$host_os" in
 
89
bsdi*)          _JNI_INC_SUBDIRS="bsdos";;
 
90
freebsd*)       _JNI_INC_SUBDIRS="freebsd";;
 
91
linux*)         _JNI_INC_SUBDIRS="linux genunix";;
 
92
osf*)           _JNI_INC_SUBDIRS="alpha";;
 
93
solaris*)       _JNI_INC_SUBDIRS="solaris";;
 
94
mingw*)         _JNI_INC_SUBDIRS="win32";;
 
95
cygwin*)        _JNI_INC_SUBDIRS="win32";;
 
96
*)              _JNI_INC_SUBDIRS="genunix";;
 
97
esac
 
98
 
 
99
# add any subdirectories that are present
 
100
for JINCSUBDIR in $_JNI_INC_SUBDIRS
 
101
do
 
102
    if test -d "$_JTOPDIR/include/$JINCSUBDIR"; then
 
103
         JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $_JTOPDIR/include/$JINCSUBDIR"
 
104
    fi
 
105
done
 
106
])
 
107
 
 
108
# _ACJNI_FOLLOW_SYMLINKS <path>
 
109
# Follows symbolic links on <path>,
 
110
# finally setting variable _ACJNI_FOLLOWED
 
111
# ----------------------------------------
 
112
AC_DEFUN([_ACJNI_FOLLOW_SYMLINKS],[
 
113
# find the include directory relative to the javac executable
 
114
_cur="$1"
 
115
while ls -ld "$_cur" 2>/dev/null | grep " -> " >/dev/null; do
 
116
        AC_MSG_CHECKING([symlink for $_cur])
 
117
        _slink=`ls -ld "$_cur" | sed 's/.* -> //'`
 
118
        case "$_slink" in
 
119
        /*) _cur="$_slink";;
 
120
        # 'X' avoids triggering unwanted echo options.
 
121
        *) _cur=`echo "X$_cur" | sed -e 's/^X//' -e 's:[[^/]]*$::'`"$_slink";;
 
122
        esac
 
123
        AC_MSG_RESULT([$_cur])
 
124
done
 
125
_ACJNI_FOLLOWED="$_cur"
 
126
])# _ACJNI