### -*-m4-*-
dnl Process this file with autoconf to produce a configure script.
AC_INIT(g-wrap.scm)
AM_INIT_AUTOMAKE(g-wrap, 1.3.4, no-define)
AM_CONFIG_HEADER(config.h)
AM_MAINTAINER_MODE
# -- user options --
AC_ARG_WITH(modules-dir,
[ --with-modules-dir=
Base directory for contributed Guile modules ],
GUILEMODDIR=$withval
G_WRAP_LOAD_DIR=$withval,
if test "x$prefix" = xNONE; then
GUILEMODDIR='$(GUILE_SCMDIR)'
G_WRAP_LOAD_DIR='$(GUILE_SCMDIR)'
else
GUILEMODDIR='$(datadir)/guile'
G_WRAP_LOAD_DIR='$(datadir)/guile'
fi)
AC_SUBST(GUILEMODDIR)
AC_SUBST(G_WRAP_LOAD_DIR)
dnl Checks for programs.
AC_PROG_CC
AC_PROG_INSTALL
AC_LIBTOOL_DLOPEN
AM_PROG_LIBTOOL
AC_PATH_PROG(GUILE,guile,nope)
dnl Checks for libraries.
if test "$GUILE" != nope; then
AC_PATH_PROG(BUILD_GUILE, guile-config)
if test ! -n $BUILD_GUILE; then
AC_PATH_PROG(BUILD_GUILE, build-guile)
fi
if test ! -n $BUILD_GUILE; then
GUILE_LIBS='-lguile'
else
GUILE_LIBS=`$BUILD_GUILE link`
CFLAGS="$CFLAGS `$BUILD_GUILE compile | sed -f ./kill-usr-include`"
fi
AC_CHECK_LIB(guile,scm_boot_guile,GUILE_SUPPORT='yes',[
AC_MSG_WARN(Can not find Guile on the system)
],$GUILE_LIBS)
if test "x$GUILE_SUPPORT" = xyes; then
LIBS="$LIBS"&&GUILE_TARGET=libg-wrap-runtime-guile.la
GUILEMOD_TARGET=g-wrap.scm
BIN_TARGET=g-wrap-guile
fi
fi
AC_SUBST(GUILE_LIBS)
AC_SUBST(GUILE_TARGET)
AC_SUBST(GUILEMOD_TARGET)
AC_SUBST(BIN_TARGET)
dnl Checks for header files.
dnl Checks for typedefs, structures, and compiler characteristics.
if test "$GUILE" != nope; then
AC_CHECK_LIB([guile],
[scm_puts],
[AC_DEFINE([HAVE_SCM_PUTS], 1,
[Define if you have the scm_puts function.])],
,
$GUILE_LIBS)
if test "$GUILE_SUPPORT" = yes; then
AC_MSG_CHECKING(for Guile Scheme directory)
GUILE_SCMDIR=`guile -c "(display (cdr (assq 'pkgdatadir %guile-build-info)))"`
fi
fi
AC_SUBST(GUILE_SCMDIR)
AC_MSG_RESULT($GUILE_SCMDIR)
AC_MSG_CHECKING(if guile uses old style smobs)
AC_TRY_LINK([#include ],
scm_set_smob_mark,
AC_MSG_RESULT(no),
[AC_DEFINE(GWRAP_OLD_GUILE_SMOB,
1,
[Define if you have the scm_puts function.])
AC_MSG_RESULT(yes)])
###########################################################################
### Check for and set up glib
AC_PATH_PROG(GW_GLIB_CONFIG, glib-config)
AM_CONDITIONAL(GW_HAVE_GLIB, test ${GW_GLIB_CONFIG}x != x)
if test ${GW_GLIB_CONFIG}x != x
then
AC_DEFINE(GW_HAVE_GLIB,1,[Do we have glib?])
GW_OLDCFLAGS="$CFLAGS"
GW_OLDLIBS="$LIBS"
CFLAGS="`${GW_GLIB_CONFIG} --cflags | sed -f ./kill-usr-include` ${CFLAGS}"
LIBS="`${GW_GLIB_CONFIG} --libs` ${GUILE_LIBS} ${LIBS}"
### Check size of long_long - some guile's are broken.
AC_MSG_CHECKING(if guile long_long is at least as big as gint64)
AC_TRY_RUN([
#include
#include
int main(int argc, char *argv[]) {
return(!(sizeof(long_long) >= sizeof(gint64)));
}
],[
AC_MSG_RESULT(yes)
AC_CHECK_LIB(guile, scm_long_long2num,
AC_DEFINE(GW_GUILE_LONG_LONG_OK,1,is sizeof(long_long) >=
sizeof(gint64)))
],[
AC_MSG_RESULT(no)
])
# One of the places this is critical is in gnc_scm_to_gint64 and inverse.
# However, I'm sure we require this elsewhere, so don't remove this test
# unless you've done sufficient code review/testing.
AC_MSG_CHECKING(if unsigned long is at least as big as guint32)
GW_OLDCFLAGS="$CFLAGS"
CFLAGS="${GUILE_INCS} ${CFLAGS} `${GW_GLIB_CONFIG} --cflags`"
AC_TRY_RUN([
#include
int main(int argc, char *argv[]) {
return(!(sizeof(unsigned long) >= sizeof(guint32)));
}
],[
AC_MSG_RESULT(yes)
],[
AC_MSG_RESULT(no)
AC_MSG_ERROR(cannot continue, size of unsigned long too small.)
])
CFLAGS="$GW_OLDCFLAGS"
LIBS="$GW_OLDLIBS"
fi
LGWRAP_GLIB_MAJOR_VER=1
LGWRAP_GLIB_REVISION=0
LGWRAP_GLIB_AGE=0
AC_SUBST(LGWRAP_GLIB_MAJOR_VER)
AC_SUBST(LGWRAP_GLIB_REVISION)
AC_SUBST(LGWRAP_GLIB_AGE)
###########################################################################
### Check for and set up gtk
AC_PATH_PROG(GW_GTK_CONFIG, gtk-config)
AM_CONDITIONAL(GW_HAVE_GTK, test ${GW_GTK_CONFIG}x != x)
if test ${GW_GTK_CONFIG}x != x
then
AC_DEFINE(GW_HAVE_GTK,1,[Do we have gtk?])
fi
###########################################################################
### Check for and set up gnome-guile/guile-gtk
AC_PATH_PROG(GW_BUILD_GUILE_GTK, build-guile-gtk)
AM_CONDITIONAL(GW_HAVE_GUILE_GTK, test ${GW_BUILD_GUILE_GTK}x != x)
if test ${GW_BUILD_GUILE_GTK}x != x
then
AC_DEFINE(GW_HAVE_GUILE_GTK,1,[Do we have guile-gtk?])
# delete any occurences of -I /usr/include or similar. Newer gcc's
# don't like that at all.
GW_GUILE_GTK_CFLAGS=`${GW_BUILD_GUILE_GTK} cflags | sed -f kill-usr-include`
GW_GUILE_GTK_LIBFLAGS=`${GW_BUILD_GUILE_GTK} libs`
AC_SUBST(GW_GUILE_GTK_CFLAGS)
AC_SUBST(GW_GUILE_GTK_LIBFLAGS)
fi
GW_WCT_INTERFACE_MAJOR_VER=1
GW_WCT_INTERFACE_REVISION=0
GW_WCT_INTERFACE_AGE=0
AC_SUBST(GW_WCT_INTERFACE_MAJOR_VER)
AC_SUBST(GW_WCT_INTERFACE_REVISION)
AC_SUBST(GW_WCT_INTERFACE_AGE)
AC_DEFINE_UNQUOTED(GW_WCT_INTERFACE_MAJOR_VER,
${GW_WCT_INTERFACE_MAJOR_VER},
[The major interface number for libgwp-runtime-guile.])
AC_DEFINE_UNQUOTED(GW_WCT_INTERFACE_REVISION,
${GW_WCT_INTERFACE_REVISION},
[The revision number for libgwp-runtime-guile.])
AC_DEFINE_UNQUOTED(GW_WCT_INTERFACE_AGE,
${GW_WCT_INTERFACE_AGE},
[Number of previous interfaces supported by the current libgwp-runtime-guile API.])
AC_OUTPUT([Makefile
bin/Makefile
doc/Makefile
example/Makefile
g-wrap/Makefile
rpm/Makefile
test/Makefile])