dnl
dnl Autoconf macros for configuring the Serveez package.
dnl
dnl AC_GUILE -- Locate a Guile installation.
dnl This macro sets both the variables GUILE_CFLAGS and GUILE_LDFLAGS to be
dnl passed to the compiler and linker. In a first try it uses the
dnl `guile-config' script in order to obtain these settings. Then it proceeds
dnl the `--with-guile=DIR' option of the ./configure script.
dnl
dnl AC_GUILE_SOURCE -- Check a source tree of Guile.
dnl Check if the user has given the `--with-guile-source=DIR' argument to
dnl ./configure script. If so, it overrides the above AC_GUILE macro and
dnl provides the following Makefile variables:
dnl GUILE_SOURCE - the source directory
dnl GUILE_CFLAGS - flags passed to the compiler
dnl GUILE_LDFLAGS - flags passed to the linker
dnl GUILE_DEPENDENCY - a dependency for the guile library
dnl GUILE_RULE - name of the rule to make the guile library
dnl GUILE_MAKE_LTDL - make command line for the above rule
dnl GUILE_MAKE_LIB - yet another make line for that rule
dnl Please have a look at the `src/Makefile.am' file for more details how
dnl these variables are actually used to build a static guile library linked
dnl to the main binary.
dnl
dnl AC_GUILE_CONFIGURE -- Configure a Guile source tree.
dnl Configure the guile source tree if necessary. The directory has been given
dnl in the AC_GUILE_SOURCE directory. Use the local cache file for speeding up
dnl this process. Most optional modules of guile will be disabled. Tell the
dnl ./configure script of guile to build a static library only.
dnl
dnl AC_GUILE_CHECK -- Checks for Guile results and exits if necessary.
dnl
dnl AC_LIBTOOL_SOLARIS -- Helps libtool to build on Solaris.
dnl
AC_DEFUN([AC_GUILE], [
AC_ARG_WITH(guile,
[ --with-guile=DIR guile installation in DIR @<:@/usr/local@:>@],
[case "$withval" in
no) GUILEDIR="no" ;;
yes) GUILEDIR="/usr/local" ;;
*) GUILEDIR="$withval" ;;
esac],
GUILEDIR="/usr/local")
AC_MSG_CHECKING([for guile installation])
if test "x$GUILEDIR" != "xno" ; then
GUILEDIR="`eval cd "$GUILEDIR" 2>/dev/null && pwd`"
case $build_os in
mingw*)
GUILEDIR="`eval cygpath -w -i "$GUILEDIR"`"
GUILEDIR="`echo "$GUILEDIR" | sed -e 's%\\\\%/%g'`"
;;
esac
if test -f "$GUILEDIR/lib/libguile.so" -o \
-n "`find "$GUILEDIR/lib" -name "libguile.so.*" 2>/dev/null`" -o \
-f "$GUILEDIR/lib/libguile.dylib" -o \
-f "$GUILEDIR/bin/libguile.dll" -o \
-f "$GUILEDIR/bin/cygguile.dll" ; then
GUILE_CFLAGS="-I$GUILEDIR/include"
if test x"$CYGWIN" = xyes -o x"$MINGW32" = xyes ; then
GUILE_CFLAGS="-D__GUILE_IMPORT__ $GUILE_CFLAGS"
fi
GUILE_LDFLAGS="-L$GUILEDIR/lib -lguile"
GUILE_BUILD="yes"
AC_MSG_RESULT([yes])
fi
fi
if test "x$GUILE_BUILD" != "xyes" ; then
guile=""
if test "x`eval guile-config --version 2>&1 | grep version`" != "x" ; then
guile="`eval guile-config --version 2>&1 | grep version`"
[guile="`echo $guile | sed -e 's/[^0-9\.]//g'`"]
fi
if test "x$guile" != "x" ; then
case "$guile" in
[1.3 | 1.3.[2-9] | 1.[4-9]* | [2-9].*)]
AC_MSG_RESULT($guile >= 1.3)
GUILE_BUILD="yes"
;;
[*)]
AC_MSG_RESULT($guile < 1.3)
AC_MSG_WARN([
GNU Guile version 1.3 or above is needed, and you do not seem to have
it handy on your system.])
;;
esac
GUILE_CFLAGS="`eval guile-config compile`"
GUILE_LDFLAGS="`eval guile-config link`"
else
AC_MSG_RESULT([missing])
GUILE_CFLAGS=""
GUILE_LDFLAGS=""
fi
unset guile
fi
unset GUILEDIR
AC_SUBST(GUILE_CFLAGS)
AC_SUBST(GUILE_LDFLAGS)
])
AC_DEFUN([AC_GUILE_SOURCE], [
AC_ARG_WITH(guile-source,
[ --with-guile-source guile source tree in DIR @<:@/usr/src@:>@],
[case "$withval" in
no) GUILESRC="no" ;;
yes) GUILESRC="/usr/src" ;;
*) GUILESRC="$withval" ;;
esac],
GUILESRC="/usr/src")
AC_MSG_CHECKING([for guile source tree])
if test "x$GUILESRC" != "xno"; then
GUILESRC="`eval cd "$GUILESRC" 2>/dev/null && pwd`"
case $build_os in
mingw*)
GUILESRC="`eval cygpath -w -i "$GUILESRC"`"
GUILESRC="`echo "$GUILESRC" | sed -e 's%\\\\%/%g'`"
;;
esac
if test -f "$GUILESRC/configure" ; then
GUILE_SOURCE="$GUILESRC"
GUILE_CFLAGS="-I$GUILESRC -I$GUILESRC/libguile -DGUILE_SOURCE"
GUILE_LDFLAGS="$GUILESRC/libguile/libguile.la"
GUILE_DEPENDENCY="$GUILESRC/libguile/libguile.la"
GUILE_RULE="$GUILESRC/libguile/libguile.la"
GUILE_MAKE_LTDL='(cd $(GUILE_SOURCE)/libltdl && $(MAKE) libltdlc.la)'
if test ! -f "$GUILESRC/libltdl/configure" ; then
GUILE_MAKE_LTDL="# $GUILE_MAKE_LTDL"
fi
GUILE_MAKE_LIB='(cd $(GUILE_SOURCE)/libguile && $(MAKE) libguile.la)'
AC_SUBST(GUILE_SOURCE)
AC_SUBST(GUILE_CFLAGS)
AC_SUBST(GUILE_LDFLAGS)
AC_SUBST(GUILE_DEPENDENCY)
AC_SUBST(GUILE_RULE)
AC_SUBST(GUILE_MAKE_LTDL)
AC_SUBST(GUILE_MAKE_LIB)
AC_MSG_RESULT([yes])
GUILE_BUILD="yes"
else
AC_MSG_RESULT([missing])
GUILE_SOURCE="no"
fi
else
AC_MSG_RESULT([disabled])
GUILE_SOURCE="no"
fi
unset GUILESRC
])
AC_DEFUN([AC_GUILE_CONFIGURE], [
if test "x$GUILE_SOURCE" != "xno" ; then
if test "`echo "$cache_file" | cut -b 1`" != "/" ; then
cache_file="`pwd`/$cache_file"
fi
case $build_os in
mingw*)
cache_file="`eval cygpath -w -i "$cache_file"`"
cache_file="`echo "$cache_file" | sed -e 's%\\\\%/%g'`"
;;
esac
if test ! -f "$GUILE_SOURCE/libguile/scmconfig.h" ; then
AC_MSG_RESULT([configuring Guile...])
([cd $GUILE_SOURCE && $SHELL configure \
--enable-static --disable-shared \
--disable-debug-freelist --disable-debug-malloc --disable-guile-debug \
--disable-arrays --disable-posix --enable-networking --disable-regex \
--without-threads --enable-ltdl-convenience --prefix=$prefix \
--host=$host --build=$build --target=$target \
--cache-file=$cache_file])
else
AC_MSG_RESULT([The file \`$GUILE_SOURCE/libguile/scmconfig.h' exists.])
AC_MSG_RESULT([Guile already configured... skipped.])
fi
fi
])
AC_DEFUN([AC_GUILE_CHECK], [
if test "x$GUILE_BUILD" != "xyes" ; then
AC_MSG_ERROR([
The $PACKAGE $VERSION package requires either an installed Guile
version or an unpacked source tarball at hand. You can specify the
install location by passing \`--with-guile=<directory>' or the source
location by passing \`--with-guile-source=<directory>'. Guile
version 1.4 is preferred.])
fi
])
AC_DEFUN([AC_LIBTOOL_SOLARIS], [
if test "x$GCC" = "xyes" -a "x$enable_shared" = "xyes" ; then
case $host_os in
solaris*)
LIBERTY="`gcc --print-file-name=libiberty.a`"
LIBERTY="-L`dirname $LIBERTY 2>/dev/null`"
LIBS="`echo "$LIBS" | sed -e 's%-liberty%'$LIBERTY' -liberty%g'`"
GCCLIB="`gcc --print-libgcc-file-name`"
GCCDIR="-L`dirname $GCCLIB 2>/dev/null`"
GCCFILE="`basename $GCCLIB 2>/dev/null`"
GCCFILE="-l`echo "$GCCFILE" | sed -e 's/lib\(.*\)\.a/\1/'`"
LIBS="$LIBS $GCCDIR $GCCFILE"
AC_MSG_WARN([
The configure script added
'$LIBERTY $GCCDIR $GCCFILE'
to your linker line. This may not be what you want. Please report
to <bug-serveez@gnu.org> if we failed to build shared libraries
for '$host_os'.])
unset LIBERTY
unset GCCLIB
unset GCCDIR
unset GCCFILE
;;
esac
fi
])
syntax highlighted by Code2HTML, v. 0.9.1