AC_PREREQ(2.63)
AC_INIT([java-atk-wrapper],[0.33.2],[https://bugzilla.gnome.org/enter_bug.cgi?product=java-atk-wrapper])
: ${CXXFLAGS=""}
AC_CONFIG_AUX_DIR(config)
AM_INIT_AUTOMAKE([1.11 -Wall check-news])
AM_SILENT_RULES([yes])
m4_pattern_allow([AM_PROG_AR])
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
# Before making a release, the LT_VERSION string should be modified.
# The string is of the form C:R:A.
# - If interfaces have been changed or added, but binary compatibility has
# been preserved, change to C+1:0:A+1
# - If binary compatibility has been broken (eg removed or changed interfaces)
# change to C+1:0:0
# - If the interface is the same as the previous version, change to C:R+1:A
LIB_ATK_WRAPPER_LT_VERSION=5:0:0
AC_SUBST(LIB_ATK_WRAPPER_LT_VERSION)
# jni
AC_CONFIG_HEADERS([config.h])
AC_PROG_CC(gcc)
AC_PROG_CXX
AC_PROG_INSTALL
AC_ISC_POSIX
AC_PROG_RANLIB
AC_PATH_XTRA
# Initialize libtool
LT_PREREQ([2.2.6])
LT_INIT([disable-static])
AC_CONFIG_MACRO_DIR([m4])
m4_define([req_ver_atk], [1.18.0])
PKG_CHECK_MODULES(JAW, [
atk >= 2.14.0
atk-bridge-2.0
atspi-2 >= 2.14.0
dbus-1
glib-2.0 >= 2.32.0
gthread-2.0
gdk-2.0
gdk-3.0
gobject-2.0
])
AC_SUBST(JAW_LIBS)
case "${target_os}" in
cygwin*)
LIB_ATK_WRAPPER_LD_FLAGS="-avoid-version -no-undefined"
;;
*)
LIB_ATK_WRAPPER_LD_FLAGS="-version-info $LIB_ATK_WRAPPER_LT_VERSION -no-undefined"
;;
esac
AC_SUBST(LIB_ATK_WRAPPER_LD_FLAGS)
# java wrapper
AM_CONDITIONAL(USER, test `whoami` = "root")
JAVA_REQUIRED=1.6
JAVA_ERROR_MESSAGE="Java $JAVA_REQUIRED or later is required to build java-access-bridge"
AC_ARG_VAR([JAVA_HOME],[Java Runtime Environment location])
AC_ARG_VAR([JDK_SRC],[JDK installation path])
CUR_DIR=`pwd`
SRC_DIR=`dirname $0`
AC_ARG_WITH([jdk_auto_detect],
[AS_HELP_STRING([--with-jdk-auto-detect],
[Auto-detection of jdk location])],
[],
[with_jdk_auto_detect=yes])
if test "x$with_jdk_auto_detect" = "xyes"; then
`javac $JAVACFLAGS -classpath $CUR_DIR/wrapper/org/GNOME/Accessibility $CUR_DIR/JavaInfo.java`
JDK_SRC=`java JavaInfo`
JAVA_HOME=`java JavaInfo`/jre
else
if test -z "$JDK_SRC"; then
AC_MSG_ERROR("You should specify JDK_SRC")
fi
fi
AC_SUBST(JDK_SRC)
AC_SUBST(JAVA_HOME)
if test -z "$JAVA_HOME"; then
JAVA_PATH=${PATH}
else
JAVA_PATH=${JAVA_HOME}:${JAVA_HOME}/jre/bin:${JAVA_HOME}/bin:${JAVA_HOME}/../bin:${PATH}
fi
AC_PATH_PROG(JAVA,java,,${JAVA_PATH})
if test -z "$JAVA"; then
AC_MSG_ERROR([$JAVA_ERROR_MESSAGE])
fi
AC_SUBST(JAVA)
AC_PATH_PROG(JAVAC,javac,,${JAVA_PATH})
if test -z "$JAVAC"; then
AC_MSG_ERROR([$JAVA_ERROR_MESSAGE])
fi
AC_SUBST(JAVAC)
AC_PATH_PROG(JAVAH,javah,,${JAVA_PATH})
if test -z "$JAVAH"; then
AC_MSG_ERROR([$JAVA_ERROR_MESSAGE])
fi
AC_SUBST(JAVAH)
AC_SUBST(JAVACFLAGS)
AC_PATH_PROG(JAR,jar,,${JAVA_PATH})
if test -z "$JAR"; then
AC_MSG_ERROR([$JAVA_ERROR_MESSAGE])
fi
AC_SUBST(JAR)
if test "x$GCC" = xyes; then
JAW_CFLAGS=$JAW_CFLAGS $CFLAGS
else
AC_MSG_ERROR("You should compile with GCC")
fi
AC_SUBST(JAW_CFLAGS)
CHECK_JNI
AC_MSG_CHECKING([JDK version])
jversion=`$JAVA -version 2>&1 | head -n1 | cut -f2 -d'"' | cut -f1 -d_`
AC_MSG_RESULT($jversion)
j_major_version=0`echo $jversion | cut -f1 -d.`
j_minor_version=0`echo $jversion | cut -f2 -d.`
j_micro_version=0`echo $jversion | cut -f3 -d.`
min_major_version=0`echo $JAVA_REQUIRED | cut -f1 -d.`
min_minor_version=0`echo $JAVA_REQUIRED | cut -f2 -d.`
min_micro_version=0`echo $JAVA_REQUIRED | cut -f3 -d.`
if test "$j_major_version" -lt "$min_major_version"; then
AC_MSG_ERROR([$JAVA_ERROR_MESSAGE])
elif test "$j_major_version" = "$min_major_version"; then
if test "$j_minor_version" -lt "$min_minor_version"; then
AC_MSG_ERROR([$JAVA_ERROR_MESSAGE])
elif test "$j_minor_version" = "$min_minor_version"; then
if test "$j_micro_version" -lt "$min_micro_version"; then
AC_MSG_ERROR([$JAVA_ERROR_MESSAGE])
fi
fi
fi
XPROP_PATH=${PATH}:/usr/X11/bin
AC_PATH_PROG(XPROP,xprop,,${XPROP_PATH})
if test -z "$XPROP"; then
AC_MSG_ERROR([No xprop found])
fi
AC_SUBST(XPROP)
AC_CONFIG_FILES([
Makefile
jni/Makefile
jni/src/Makefile
wrapper/Makefile
wrapper/org/Makefile
wrapper/org/GNOME/Makefile
wrapper/org/GNOME/Accessibility/Makefile
])
AC_OUTPUT
echo "
Build configuration:
Prefix: ${prefix}
Source code location: ${srcdir}
Compiler: ${CC}
JDK src: ${JDK_SRC}
Host OS: ${host_os}
JNI includes: ${JNI_INCLUDES}
"