mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-21 22:53:37 +00:00
169 lines
5.7 KiB
Plaintext
169 lines
5.7 KiB
Plaintext
# libguestfs
|
|
# Copyright (C) 2009-2020 Red Hat Inc.
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
|
|
dnl Check for Java.
|
|
AC_ARG_WITH(java,
|
|
[AS_HELP_STRING([--with-java],
|
|
[specify path to JDK directory (for the Java language bindings) @<:@default=check@:>@])],
|
|
[],
|
|
[with_java=check])
|
|
|
|
if test "x$with_java" != "xno"; then
|
|
if test "x$with_java" != "xyes" && test "x$with_java" != "xcheck"
|
|
then
|
|
# Reject unsafe characters in $JAVA
|
|
jh_lf='
|
|
'
|
|
case $JAVA in
|
|
*[\\\"\#\$\&\'\`$jh_lf\ \ ]*)
|
|
AC_MSG_FAILURE([unsafe \$JAVA directory (use --without-java to disable Java support)]);;
|
|
esac
|
|
if test -d "$with_java"; then
|
|
JAVA="$with_java"
|
|
else
|
|
AC_MSG_FAILURE([$with_java is not a directory (use --without-java to disable Java support)])
|
|
fi
|
|
fi
|
|
|
|
if test "x$JAVA" = "x"; then
|
|
# Look for Java in some likely locations.
|
|
for d in \
|
|
/usr/lib/jvm/java \
|
|
/usr/lib64/jvm/java \
|
|
/usr/lib/jvm/default-java \
|
|
/usr/lib/jvm/default \
|
|
/etc/java-config-2/current-system-vm \
|
|
/usr/lib/jvm/java-8-openjdk \
|
|
/usr/lib/jvm/java-7-openjdk \
|
|
/usr/lib/jvm/java-6-openjdk
|
|
do
|
|
AC_MSG_CHECKING([for 'java' in $d])
|
|
if test -d $d && test -f $d/bin/java; then
|
|
AC_MSG_RESULT([found])
|
|
JAVA=$d
|
|
break
|
|
else
|
|
AC_MSG_RESULT([not found])
|
|
fi
|
|
done
|
|
fi
|
|
|
|
if test "x$JAVA" != "x"; then
|
|
AC_MSG_CHECKING(for JDK in $JAVA)
|
|
if test ! -x "$JAVA/bin/java"; then
|
|
AC_MSG_ERROR([missing $JAVA/bin/java binary (use --without-java to disable Java support)])
|
|
else
|
|
JAVA_EXE="$JAVA/bin/java"
|
|
fi
|
|
if test ! -x "$JAVA/bin/javac"; then
|
|
AC_MSG_ERROR([missing $JAVA/bin/javac binary])
|
|
else
|
|
JAVAC="$JAVA/bin/javac"
|
|
fi
|
|
if test -x "$JAVA/bin/javah"; then
|
|
JAVAH="$JAVA/bin/javah"
|
|
fi
|
|
if test ! -x "$JAVA/bin/javadoc"; then
|
|
AC_MSG_ERROR([missing $JAVA/bin/javadoc binary])
|
|
else
|
|
JAVADOC="$JAVA/bin/javadoc"
|
|
fi
|
|
if test ! -x "$JAVA/bin/jar"; then
|
|
AC_MSG_ERROR([missing $JAVA/bin/jar binary])
|
|
else
|
|
JAR="$JAVA/bin/jar"
|
|
fi
|
|
java_version=`$JAVA_EXE -version 2>&1 | $AWK -F '"' '/^(java|openjdk) version/ {print $2;}'`
|
|
AC_MSG_RESULT(found $java_version)
|
|
|
|
dnl Find jni.h.
|
|
AC_MSG_CHECKING([for jni.h])
|
|
if test -f "$JAVA/include/jni.h"; then
|
|
JNI_CFLAGS="-I$JAVA/include"
|
|
else
|
|
if test "`find $JAVA -name jni.h`" != ""; then
|
|
head=`find $JAVA -name jni.h | tail -1`
|
|
dir=`dirname "$head"`
|
|
JNI_CFLAGS="-I$dir"
|
|
else
|
|
AC_MSG_FAILURE([missing jni.h header file])
|
|
fi
|
|
fi
|
|
AC_MSG_RESULT([$JNI_CFLAGS])
|
|
|
|
dnl Find jni_md.h.
|
|
AC_MSG_CHECKING([for jni_md.h])
|
|
case "$build_os" in
|
|
*linux*) system="linux" ;;
|
|
*SunOS*) system="solaris" ;;
|
|
*cygwin*) system="win32" ;;
|
|
*) system="$build_os" ;;
|
|
esac
|
|
if test -f "$JAVA/include/$system/jni_md.h"; then
|
|
JNI_CFLAGS="$JNI_CFLAGS -I$JAVA/include/$system"
|
|
else
|
|
if test "`find $JAVA -name jni_md.h`" != ""; then
|
|
head=`find $JAVA -name jni_md.h | tail -1`
|
|
dir=`dirname "$head"`
|
|
JNI_CFLAGS="$JNI_CFLAGS -I$dir"
|
|
else
|
|
AC_MSG_FAILURE([missing jni_md.h header file])
|
|
fi
|
|
fi
|
|
AC_MSG_RESULT([$JNI_CFLAGS])
|
|
|
|
dnl Extra lint flags?
|
|
AC_MSG_CHECKING([extra javac lint flags])
|
|
if $JAVAC -X >/dev/null 2>&1 && \
|
|
$JAVAC -X 2>&1 | grep -q -- '-Xlint:.*all'; then
|
|
AC_MSG_RESULT([-Xlint:all])
|
|
EXTRA_JAVAC_FLAGS="$EXTRA_JAVAC_FLAGS -Xlint:all"
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
fi
|
|
|
|
dnl Where to install jarfiles, jnifiles
|
|
if test -z $JAR_INSTALL_DIR; then
|
|
JAR_INSTALL_DIR=\${prefix}/share/java
|
|
fi
|
|
if test -z $JNI_INSTALL_DIR; then
|
|
JNI_INSTALL_DIR=\${libdir}
|
|
fi
|
|
|
|
dnl JNI version.
|
|
jni_major_version=`echo "$VERSION" | $AWK -F. '{print $1}'`
|
|
jni_minor_version=`echo "$VERSION" | $AWK -F. '{print $2}'`
|
|
jni_micro_version=`echo "$VERSION" | $AWK -F. '{print $3}'`
|
|
JNI_VERSION_INFO=`expr "$jni_major_version" + "$jni_minor_version"`":$jni_micro_version:$jni_minor_version"
|
|
fi
|
|
|
|
AC_SUBST(JAVA)
|
|
AC_SUBST(JAVA_EXE)
|
|
AC_SUBST(JAVAC)
|
|
AC_SUBST(JAVAH)
|
|
AC_SUBST(JAVADOC)
|
|
AC_SUBST(JAR)
|
|
AC_SUBST(JNI_CFLAGS)
|
|
AC_SUBST(EXTRA_JAVAC_FLAGS)
|
|
AC_SUBST(JAR_INSTALL_DIR)
|
|
AC_SUBST(JNI_INSTALL_DIR)
|
|
AC_SUBST(JNI_VERSION_INFO)
|
|
fi
|
|
|
|
AM_CONDITIONAL([HAVE_JAVAH],[test -n "$JAVAH"])
|
|
AM_CONDITIONAL([HAVE_JAVA],[test "x$with_java" != "xno" && test -n "$JAVAC"])
|