AC_INIT(idl/Accessibility.idl)

AT_SPI_MAJOR_VERSION=1
AT_SPI_MINOR_VERSION=6
AT_SPI_MICRO_VERSION=2
AT_SPI_INTERFACE_AGE=2
AT_SPI_BINARY_AGE=2
AT_SPI_VERSION="$AT_SPI_MAJOR_VERSION.$AT_SPI_MINOR_VERSION.$AT_SPI_MICRO_VERSION"
AM_INIT_AUTOMAKE(at-spi, $AT_SPI_VERSION)
AC_SUBST(AT_SPI_MAJOR_VERSION)
AC_SUBST(AT_SPI_MINOR_VERSION)
AC_SUBST(AT_SPI_MICRO_VERSION)
AC_SUBST(AT_SPI_INTERFACE_AGE)
AC_SUBST(AT_SPI_BINARY_AGE)

# libtool versioning
LT_RELEASE=$AT_SPI_MAJOR_VERSION.$AT_SPI_MINOR_VERSION
LT_CURRENT=10
LT_REVISION=2
LT_AGE=10
LT_VERSION_INFO='-version-info ${LT_CURRENT}:${LT_REVISION}:${LT_AGE}'
AC_SUBST(LT_VERSION_INFO)
AC_SUBST(LT_RELEASE)
AC_SUBST(LT_CURRENT)
AC_SUBST(LT_REVISION)
AC_SUBST(LT_AGE)

dnl required versions of other tools.
m4_define([req_ver_atk],	[1.7.2])
m4_define([req_ver_libbonobo],	[1.107.0])
m4_define([req_ver_gail],	[1.3.0])
m4_define([req_ver_gtk],	[2.0.0])

dnl Specify a header configuration file
AM_CONFIG_HEADER(config.h)

dnl Initialize maintainer mode
AM_MAINTAINER_MODE

AC_PROG_INTLTOOL

dnl Checks for programs
AC_PROG_CC
AC_PROG_INSTALL
AC_ISC_POSIX

GNOME_COMMON_INIT
GNOME_COMPILE_WARNINGS(maximum)

dnl Initialize libtool
AM_DISABLE_STATIC
AM_PROG_LIBTOOL

dnl internationalization support; uncomment if translatable strings are reintroduced
dnl ALL_LINGUAS="ar az be bg bn bs ca cs cy da de el en_CA en_GB eo es et eu fa fi fr gl gu he hi hr id is it ja ka ko lt mn ms nb ne nl nn no or pa pl pt_BR pt ro ru sk sl sq sr@ije sr@Latn sr sv uk vi wa zh_CN"
dnl AM_GLIB_GNU_GETTEXT

GTK_DOC_CHECK([1.0])

AC_PATH_XTRA

if test x$no_x = xyes ; then
	AC_MSG_ERROR([X development libraries not found])
else
	X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
fi

AC_SUBST(X_LIBS)

dnl Check for obsolete (mis-numbered) versions of at-spi
dnl oldlibs=`echo $(libdir)/libspi.so.1.*`
dnl if test $$oldlibs != "$(libdir)/libspi.so.1.*" ; then
dnl   AC_MSG_ERROR(Old libspi.1.x library found in $libdir. Please remove $(libdir)/libspi.so.1 and $$oldlibs)
dnl fi

dnl Checks for libraries
PKG_CHECK_MODULES(LIBSPI, [
	libbonobo-2.0	>= req_ver_libbonobo
	atk		>= req_ver_atk
	gtk+-2.0	>= req_ver_gtk
	gail		>= req_ver_gail
])
AC_SUBST(LIBSPI_LIBS)
AC_SUBST(LIBSPI_CFLAGS)

PKG_CHECK_MODULES(REGISTRYD, [
	libbonobo-2.0	>= req_ver_libbonobo
	atk		>= req_ver_atk
	gtk+-2.0	>= req_ver_gtk
])
AC_SUBST(REGISTRYD_LIBS)
AC_SUBST(REGISTRYD_CFLAGS)

PKG_CHECK_MODULES(TESTS, [
	libbonobo-2.0	>= req_ver_libbonobo
	atk		>= req_ver_atk
	gtk+-2.0	>= req_ver_gtk
	gail		>= req_ver_gail
])
AC_SUBST(TESTS_LIBS)
AC_SUBST(TESTS_CFLAGS)

PKG_CHECK_MODULES(ATK_BRIDGE, [
	libbonobo-2.0	>= req_ver_libbonobo
	atk		>= req_ver_atk
])
AC_SUBST(ATK_BRIDGE_LIBS)
AC_SUBST(ATK_BRIDGE_CFLAGS)

PKG_CHECK_MODULES(LIBCSPI, [
	libbonobo-2.0	>= req_ver_libbonobo
	atk		>= req_ver_atk
])
AC_SUBST(LIBCSPI_LIBS)
AC_SUBST(LIBCSPI_CFLAGS)

dnl orbit-idl.
ORBIT_IDL="`$PKG_CONFIG --variable=orbit_idl ORBit-2.0`"
AC_SUBST(ORBIT_IDL)

dnl Bonobo and Bonobo-Activation idl files
BONOBO_ACTIVATION_IDL_DIR="`$PKG_CONFIG --variable=idldir bonobo-activation-2.0`"
LIBBONOBO_IDL_DIR="`$PKG_CONFIG --variable=idldir libbonobo-2.0`"
AC_SUBST(BONOBO_ACTIVATION_IDL_DIR)
AC_SUBST(LIBBONOBO_IDL_DIR)

LIBS="$LIBS $X_LIBS"
dnl path to Xtst
AC_CHECK_LIB(Xtst, XTestFakeKeyEvent, XTST_LIBS=-lXtst,[
	AC_MSG_ERROR([Couldn't find the Xtst library. Check config.log])],
	-lX11 -lXext)
AC_SUBST(XTST_LIBS)

have_xkb=
AC_CHECK_LIB(X11, XkbQueryExtension, have_xkb="maybe")
if test "x$have_xkb" = "xmaybe"; then 
	AC_CHECK_HEADER(X11/XKBlib.h, have_xkb=yes)
fi
if test "x$have_xkb" = "xyes"; then
	AC_MSG_RESULT(yes)
	AC_DEFINE(HAVE_XKB)
fi

have_xinput=
AC_CHECK_LIB(Xi, XOpenDevice, XINPUT_LIBS=-lXi,,-lXext)
if test "x$XINPUT_LIBS" = x; then
	AC_MSG_ERROR(Couldn't find the XInput library. Check config.log for details)
fi			       
AC_CHECK_HEADER(X11/extensions/XInput.h, have_xinput=yes)
AC_SUBST(XINPUT_LIBS)

dnl Allow disabling XEViE.
AC_ARG_ENABLE(xevie, [  --enable-xevie  Build with XEViE support [default=yes]], enable_xevie="$enableval", enable_xevie=yes)

if test x$enable_xevie = xyes ; then
	have_xevie=
	AC_CHECK_LIB(Xext, XevieQueryVersion, have_xevie="yes")

	if test "x$have_xevie" = "xyes"; then
		XEVIE_LIBS=-lXext
		AC_DEFINE(HAVE_XEVIE)
	fi
	AC_SUBST(XEVIE_LIBS)
fi

dnl CFLAGS="$CFLAGS -Wall"
AC_SUBST(CFLAGS)
AC_SUBST(CPPFLAGS)
AC_SUBST(LDFLAGS)

AC_CHECK_LIB(popt, poptGetContext, [POPT_LIBS="-lpopt"],
AC_MSG_ERROR([popt is required to build at-spi.
You can download the latest version from ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.0.x/]))
AC_SUBST(POPT_LIBS)
AC_MSG_CHECKING([for POPT_ARG_FLOAT in popt.h])
AC_TRY_CPP([#include <popt.h>
#ifndef POPT_ARG_FLOAT
#error popt too old
#endif], AC_MSG_RESULT(yes), [
	AC_MSG_RESULT(no)
	AC_MSG_ERROR([A newer version of popt is required to build at-spi.
You can download the latest version from ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.0.x/])
])

REBUILD=\#
if test "x$enable_rebuilds" = "xyes" && \
	test -n "$PERL" && \
	$PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 && \
	test -n "$AWK" ; then
		REBUILD=
fi
AC_SUBST(REBUILD)

AC_OUTPUT([
Makefile
libspi-1.0.pc
libspi-1.0-uninstalled.pc
libloginhelper-1.0.pc
cspi-1.0.pc
cspi-1.0-uninstalled.pc
docs/Makefile
docs/reference/Makefile
docs/reference/cspi/Makefile
idl/Makefile
libspi/Makefile
registryd/Makefile
atk-bridge/Makefile
login-helper/Makefile
test/Makefile
cspi/Makefile
cspi/bonobo/Makefile
])

echo "AT-SPI setup:

	Source code location:	${srcdir}
	Compiler:		${CC} 
	Prefix:			${prefix}

	Welcome to the wonderful world of Accessibility.
	   http://developer.gnome.org/projects/gap/
"
