blob: faca604441cc74b96abc3c6cb1713c939fceb5d5 [file] [log] [blame]
dnl Process this file with autoconf to produce a configure script.
dnl NOTES:
dnl * As of 1.34, we no longer use and test for "nope" to indicate
dnl an empty variable. Instead, we use `VAR=' (set the variable
dnl to nothing) and `test -z "$VAR"' or `test -n "$VAR"' as the
dnl case may be. --ttn, 2000/08/04 12:11:26
AC_INIT(Source/Swig/swig.h)
AC_PREREQ(2.0)
. $srcdir/VERSION
AC_SUBST(PACKAGE)
AC_SUBST(VERSION)
AC_SUBST(SWIG_VERSION)
AC_SUBST(SWIG_SPIN)
# Set name for machine-dependent library files
AC_SUBST(MACHDEP)
AC_MSG_CHECKING(MACHDEP)
if test -z "$MACHDEP"
then
if test -f /usr/lib/NextStep/software_version; then
set X `hostinfo | grep 'NeXT Mach.*:' | \
sed -e 's/://' -e 's/\./_/'` && \
ac_sys_system=next && ac_sys_release=$4
MACHDEP="$ac_sys_system$ac_sys_release$ac_sys_cpu"
else
ac_sys_system=`uname -s`
if test "$ac_sys_system" = "AIX" ; then
ac_sys_release=`uname -v`
else
ac_sys_release=`uname -r`
fi
ac_md_system=`echo $ac_sys_system |
tr -d '[/ ]' | tr '[[A-Z]]' '[[a-z]]'`
ac_md_release=`echo $ac_sys_release |
tr -d '[/ ]' | sed 's/\..*//'`
MACHDEP="$ac_md_system$ac_md_release"
fi
case MACHDEP in
'') MACHDEP=unknown;;
esac
fi
AC_MSG_RESULT($MACHDEP)
AC_PROG_CC
AC_PROG_CXX
AC_PROG_RANLIB
dnl Checks for programs.
AC_SUBST(AR)
AC_CHECK_PROGS(AR, ar aal, ar)
AC_CHECK_PROGS(AUTOCONF, autoconf, "")
dnl Checks for header files.
AC_HEADER_STDC
dnl Checks for library functions.
# Set info about shared libraries.
AC_SUBST(SO)
AC_SUBST(LDSHARED)
AC_SUBST(CCSHARED)
AC_SUBST(CXXSHARED)
AC_SUBST(TRYLINKINGWITHCXX)
AC_SUBST(LINKFORSHARED)
# SO is the extension of shared libraries `(including the dot!)
# -- usually .so, .sl on HP-UX
AC_MSG_CHECKING(SO)
if test -z "$SO"
then
case $ac_sys_system in
hp*|HP*) SO=.sl;;
*) SO=.so;;
esac
fi
AC_MSG_RESULT($SO)
# LDSHARED is the ld *command* used to create shared library
# -- "ld" on SunOS 4.x.x, "ld -G" on SunOS 5.x, "ld -shared" on IRIX 5
# (Shared libraries in this instance are shared modules to be loaded into
# Python, as opposed to building Python itself as a shared library.)
AC_MSG_CHECKING(LDSHARED)
if test -z "$LDSHARED"
then
case $ac_sys_system/$ac_sys_release in
AIX*) LDSHARED="\$(srcdir)/ld_so_aix \$(CC)";;
# cygwin uses dllwrap to create shared libraries
CYGWIN*) LDSHARED="dllwrap --target=cygwin --as=as --dlltool-name=dlltool --driver-name=$CC --export-all -s ";;
IRIX/5*) LDSHARED="ld -shared";;
IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
SunOS/4*) LDSHARED="ld";;
SunOS/5*) LDSHARED="ld -G";;
hp*|HP*) LDSHARED="ld -b";;
OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";;
DYNIX/ptx*) LDSHARED="ld -G";;
next/*)
if test "$ns_dyld"
then LDSHARED='$(CC) $(LDFLAGS) -bundle -prebind'
else LDSHARED='$(CC) $(CFLAGS) -nostdlib -r';
fi
if test "$with_next_framework" ; then
LDSHARED="$LDSHARED \$(LDLIBRARY)"
fi ;;
Linux*) LDSHARED="gcc -shared";;
dgux*) LDSHARED="ld -G";;
FreeBSD*/3*) LDSHARED="gcc -shared";;
FreeBSD*|OpenBSD*) LDSHARED="ld -Bshareable";;
NetBSD*)
if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
then
LDSHARED="cc -shared"
else
LDSHARED="ld -Bshareable"
fi;;
SCO_SV*) LDSHARED="cc -G -KPIC -Ki486 -belf -Wl,-Bexport";;
*) LDSHARED="ld";;
esac
fi
AC_MSG_RESULT($LDSHARED)
# CXXSHARED is the ld *command* used to create C++ shared library
# -- "ld" on SunOS 4.x.x, "ld -G" on SunOS 5.x, "ld -shared" on IRIX 5
# (Shared libraries in this instance are shared modules to be loaded into
# Python, as opposed to building Python itself as a shared library.)
AC_MSG_CHECKING(CXXSHARED)
if test -z "$CXXSHARED"
then
case $ac_sys_system/$ac_sys_release in
# cygwin uses dllwrap to create shared libraries
CYGWIN*) CXXSHARED="dllwrap --target=cygwin --as=as --dlltool-name=dlltool --driver-name=$CXX --export-all -s ";;
# all other platforms make no distinction between C and C++ shared libraries
*) CXXSHARED="$LDSHARED";;
esac
fi
AC_MSG_RESULT($CXXSHARED)
#
AC_MSG_CHECKING(TRYLINKINGWITHCXX)
if test -z "$TRYLINKINGWITHCXX"
then
case $ac_sys_system/$ac_sys_release in
# cygwin uses dllwrap to create shared libraries
CYGWIN*) TRYLINKINGWITHCXX="# Not for CYGWIN: CXXSHARED= $CXX -shared ";;
*) TRYLINKINGWITHCXX="CXXSHARED= $CXX -shared ";;
esac
fi
AC_MSG_RESULT($TRYLINKINGWITHCXX)
# CCSHARED are the C *flags* used to create objects to go into a shared
# library (module) -- this is only needed for a few systems
AC_MSG_CHECKING(CCSHARED)
if test -z "$CCSHARED"
then
case $ac_sys_system/$ac_sys_release in
hp*|HP*) if test "$GCC" = yes;
then CCSHARED="-fpic";
else CCSHARED="+z";
fi;;
Linux*) CCSHARED="-fpic";;
FreeBSD*|OpenBSD*) CCSHARED="-fpic";;
NetBSD*) CCSHARED="-fPIC";;
SCO_SV*) CCSHARED="-KPIC -dy -Bdynamic";;
IRIX*/6*) case $CC in
*gcc*) CCSHARED="-shared";;
*) CCSHARED="";;
esac;;
esac
fi
AC_MSG_RESULT($CCSHARED)
AC_PROG_YACC
YFLAGS=-d
AC_SUBST(YFLAGS)
# RPATH is the path used to look for shared library files.
AC_MSG_CHECKING(RPATH)
if test -z "$RPATH"
then
case $ac_sys_system/$ac_sys_release in
SunOS/5*) RPATH='-R. -R$(exec_prefix)/lib';;
IRIX*) RPATH='-rpath .:$(exec_prefix)/lib';;
Linux*) RPATH='-Xlinker -rpath $(exec_prefix)/lib -Xlinker -rpath .';;
*) RPATH='';;
esac
fi
AC_MSG_RESULT($RPATH)
AC_SUBST(RPATH)
# LINKFORSHARED are the flags passed to the $(CC) command that links
# the a few executables -- this is only needed for a few systems
AC_MSG_CHECKING(LINKFORSHARED)
if test -z "$LINKFORSHARED"
then
case $ac_sys_system/$ac_sys_release in
AIX*) LINKFORSHARED='-Wl,-bE:$(srcdir)/python.exp -lld';;
hp*|HP*)
LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";;
Linux*) LINKFORSHARED="-Xlinker -export-dynamic";;
next/*) LINKFORSHARED="-u libsys_s";;
SCO_SV*) LINKFORSHARED="-Bdynamic -dy -Wl,-Bexport";;
IRIX*/6*) LINKFORSHARED="-all";;
esac
fi
AC_MSG_RESULT($LINKFORSHARED)
echo ""
echo "Checking for installed packages."
echo "Note : None of the following packages are required to compile SWIG"
echo ""
# Check for specific libraries. Used for SWIG examples
AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
# The following three (nsl,inet,socket) are needed on Sequent;
# the order of checking must be this. Most SVR4 platforms will
# need -lsocket and -lnsl. However on SGI IRIX 5, these exist but
# broken. I see no elegant solution (probably CHECK_LIB should be
# fixed to only add the library if the given entry point is not
# satisfied without it).
if test "`uname -s`" != IRIX
then
AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
AC_CHECK_LIB(inet, gethostbyname, [LIBS="-linet $LIBS"], [], -lnsl) # Sequent
AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
fi
# check for --with-libm=...
AC_SUBST(LIBM)
LIBM=-lm
AC_ARG_WITH(libm, [ --with-libm=STRING math library], [
if test "$withval" != yes
then LIBM=$withval
else AC_ERROR(proper usage is --with-libm=STRING)
fi])
AC_CHECK_LIB(ieee, main, [LIBM="-lieee $LIBM"])
AC_CHECK_LIB(crypt,crypt, [LIBCRYPT="-lcrypt"])
AC_SUBST(LIBCRYPT)
# check for --with-libc=...
AC_SUBST(LIBC)
AC_ARG_WITH(libc, [ --with-libc=STRING C library], [
if test "$withval" != yes
then LIBC=$withval
else AC_ERROR(proper usage is --with-libc=STRING)
fi])
#--------------------------------------------------------------------
# Locate the X11 header files and the X11 library archive. Try
# the ac_path_x macro first, but if it doesn't find the X stuff
# (e.g. because there's no xmkmf program) then check through
# a list of possible directories. Under some conditions the
# autoconf macro will return an include directory that contains
# no include files, so double-check its result just to be safe.
#--------------------------------------------------------------------
AC_PATH_X
not_really_there=""
if test "$no_x" = ""; then
if test "$x_includes" = ""; then
AC_TRY_CPP([#include <X11/XIntrinsic.h>], , not_really_there="yes")
else
if test ! -r $x_includes/X11/Intrinsic.h; then
not_really_there="yes"
fi
fi
fi
if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then
AC_MSG_CHECKING(for X11 header files)
XINCLUDES="# no special path needed"
AC_TRY_CPP([#include <X11/Intrinsic.h>], , XINCLUDES="")
if test -z "$XINCLUDES"; then
dirs="/usr/unsupported/include /usr/local/include /usr/X386/include /usr/include/X11R4 /usr/X11R5/include /usr/include/X11R5 /usr/openwin/include /usr/X11/include /usr/sww/include /usr/X11R6/include /usr/include/X11R6"
for i in $dirs ; do
if test -r $i/X11/Intrinsic.h; then
AC_MSG_RESULT($i)
XINCLUDES=" -I$i"
break
fi
done
fi
else
if test "$x_includes" != ""; then
XINCLUDES=-I$x_includes
else
XINCLUDES="# no special path needed"
fi
fi
if test -z "$XINCLUDES"; then
AC_MSG_RESULT(couldn't find any!)
XINCLUDES="# no include files found"
fi
if test "$no_x" = yes; then
AC_MSG_CHECKING(for X11 libraries)
XLIBSW=
dirs="/usr/unsupported/lib /usr/local/lib /usr/X386/lib /usr/lib/X11R4 /usr/X11R5/lib /usr/lib/X11R5 /usr/X11R6/lib /usr/lib/X11R6 /usr/openwin/lib /usr/X11/lib /usr/sww/X11/lib"
for i in $dirs ; do
if test -r $i/libX11.a -o -r $i/libX11.so -o -r $i/libX11.sl; then
AC_MSG_RESULT($i)
XLIBSW="-L$i -lX11"
break
fi
done
else
if test "$x_libraries" = ""; then
XLIBSW=-lX11
else
XLIBSW="-L$x_libraries -lX11"
fi
fi
if test -z "$XLIBSW" ; then
AC_CHECK_LIB(Xwindow, XCreateWindow, XLIBSW=-lXwindow)
fi
if test -z "$XLIBSW" ; then
AC_MSG_RESULT(couldn't find any! Using -lX11.)
XLIBSW=-lX11
fi
AC_SUBST(XINCLUDES)
AC_SUBST(XLIBSW)
#--------------------------------------------------------------------
# Try to locate the Tcl package
#--------------------------------------------------------------------
TCLINCLUDE=
TCLLIB=
TCLPACKAGE=
AC_ARG_WITH(tclconfig,[ --with-tclconfig=path Set location of tclConfig.sh],
with_tclconfig="$withval")
AC_ARG_WITH(tcl,[ --with-tcl=path Set location of Tcl package],[
TCLPACKAGE="$withval"], [TCLPACKAGE=])
AC_ARG_WITH(tclincl,[ --with-tclincl=path Set location of Tcl include directory],[
TCLINCLUDE="-I$withval"], [TCLINCLUDE=])
AC_ARG_WITH(tcllib,[ --with-tcllib=path Set location of Tcl library directory],[
TCLLIB="-L$withval"], [TCLLIB=])
AC_MSG_CHECKING([for Tcl configuration])
# First check to see if --with-tclconfig was specified.
if test x"${with_tclconfig}" != x ; then
if test -f "${with_tclconfig}/tclConfig.sh" ; then
TCLCONFIG=`(cd ${with_tclconfig}; pwd)`
else
AC_MSG_ERROR([${with_tcl} directory doesn't contain tclConfig.sh])
fi
fi
# check in a few common install locations
if test x"${TCLCONFIG}" = x ; then
for i in `ls -d /usr/lib 2>/dev/null` \
`ls -d ${prefix}/lib 2>/dev/null` \
`ls -d /usr/local/lib 2>/dev/null` ; do
if test -f "$i/tclConfig.sh" ; then
TCLCONFIG=`(cd $i; pwd)`
break
fi
done
fi
if test x"${TCLCONFIG}" = x ; then
AC_MSG_RESULT(no)
else
AC_MSG_RESULT(found $TCLCONFIG/tclConfig.sh)
. $TCLCONFIG/tclConfig.sh
TCLINCLUDE=-I$TCL_PREFIX/include
TCLLIB=$TCL_LIB_SPEC
fi
if test -z "$TCLINCLUDE"; then
if test -n "$TCLPACKAGE"; then
TCLINCLUDE="-I$TCLPACKAGE/include"
fi
fi
if test -z "$TCLLIB"; then
if test -n "$TCLPACKAGE"; then
TCLLIB="-L$TCLPACKAGE/lib -ltcl"
fi
fi
AC_MSG_CHECKING(for Tcl header files)
if test -z "$TCLINCLUDE"; then
AC_TRY_CPP([#include <tcl.h>], , TCLINCLUDE="")
if test -z "$TCLINCLUDE"; then
dirs="$prefix/include /usr/local/include /usr/include /opt/local/include /home/sci/local/include"
for i in $dirs ; do
if test -r $i/tcl.h; then
AC_MSG_RESULT($i)
TCLINCLUDE="-I$i"
break
fi
done
fi
if test -z "$TCLINCLUDE"; then
# TCLINCLUDE="-I/usr/local/include"
AC_MSG_RESULT(not found)
fi
else
AC_MSG_RESULT($TCLINCLUDE)
fi
AC_MSG_CHECKING(for Tcl library)
if test -z "$TCLLIB"; then
dirs="$prefix/lib /usr/local/lib /usr/lib /opt/local/lib /home/sci/local/lib"
for i in $dirs ; do
if test -r $i/libtcl.a; then
AC_MSG_RESULT($i)
TCLLIB="-L$i -ltcl"
break
fi
done
if test -z "$TCLLIB"; then
AC_MSG_RESULT(not found)
# TCLLIB="-L/usr/local/lib"
fi
else
AC_MSG_RESULT($TCLLIB)
fi
AC_SUBST(TCLINCLUDE)
AC_SUBST(TCLLIB)
#----------------------------------------------------------------
# Look for Python
#----------------------------------------------------------------
PYINCLUDE=
PYLIB=
PYPACKAGE=
PYLINK="-lModules -lPython -lObjects -lParser"
AC_ARG_WITH(py,[ --with-py=path Set location of Python],[
PYPACKAGE="$withval"], [PYPACKAGE=])
AC_ARG_WITH(pyincl,[ --with-pyincl=path Set location of Python include directory],[
PYINCLUDE="$withval"], [PYINCLUDE=])
AC_ARG_WITH(pylib,[ --with-pylib=path Set location of Python library directory],[
PYLIB="$withval"], [PYLIB=])
if test -z "$PYINCLUDE"; then
if test -n "$PYPACKAGE"; then
PYINCLUDE="$PYPACKAGE/include"
fi
fi
if test -z "$PYLIB"; then
if test -n "$PYPACKAGE"; then
PYLIB="$PYPACKAGE/lib"
fi
fi
AC_MSG_CHECKING(for Python header files)
dirs="$PYINCLUDE $PYINCLUDE/python2.1 $PYINCLUDE/python2.0 $PYINCLUDE/python1.6 $PYINCLUDE/python1.5 $PYINCLUDE/python1.4 $PYINCLUDE/Py $prefix/include/python2.1 $prefix/include/python2.0 $prefix/include/python1.6 $prefix/include/python1.5 $prefix/include/python1.4 /usr/local/include/python2.1 /usr/local/include/python2.0 /usr/local/include/python1.6 /usr/local/include/python1.5 /usr/include/python1.5 /usr/local/include/python1.4 /usr/include/python1.4 $prefix/include/Py /usr/local/include/Py /usr/include/Py"
for i in $dirs ; do
if test -r $i/Python.h; then
AC_MSG_RESULT($i)
PYINCLUDE="-I$i"
break
fi
done
if test -z "$PYINCLUDE"; then
# PYINCLUDE="-I/usr/local/include/Py"
AC_MSG_RESULT(not found)
fi
AC_MSG_CHECKING(for Python library)
dirs="$PYLIB $PYLIB/config $PYLIB/lib $PYLIB/python2.1/config $PYLIB/python2.0/config $PYLIB/python1.6/config $PYLIB/python1.5/config $PYLIB/python1.4/config $PYLIB/python/lib $prefix/lib/python2.1/config $prefix/lib/python2.0/config $prefix/lib/python1.6/config $prefix/lib/python1.5/config $prefix/lib/python1.4/config /usr/local/lib/python2.1/config /usr/local/lib/python2.0/config /usr/local/lib/python1.6/config /usr/local/lib/python1.5/config /usr/lib/python1.5/config /usr/lib/python1.5 /usr/local/lib/python1.4/config /usr/lib/python1.4/config /usr/lib/python1.4 $prefix/lib/python/lib /usr/local/lib/python/lib /usr/lib/python/lib /home/sci/local/lib/python"
for i in $dirs ; do
if test -r $i/libpython2.1.a; then
AC_MSG_RESULT($i)
PYLIB="$i"
PYINCLUDE="$PYINCLUDE -I$i"
PYLINK="-lpython2.1"
break
fi
if test -r $i/libpython2.0.a; then
AC_MSG_RESULT($i)
PYLIB="$i"
PYINCLUDE="$PYINCLUDE -I$i"
PYLINK="-lpython2.0"
break
fi
if test -r $i/libpython1.6.a; then
AC_MSG_RESULT($i)
PYLIB="$i"
PYINCLUDE="$PYINCLUDE -I$i"
PYLINK="-lpython1.6"
break
fi
if test -r $i/libpython1.5.a; then
AC_MSG_RESULT($i)
PYLIB="$i"
PYINCLUDE="$PYINCLUDE -I$i"
PYLINK="-lpython1.5"
break
fi
if test -r $i/libPython.a; then
AC_MSG_RESULT($i)
PYLIB="$i"
PYINCLUDE="$PYINCLUDE -I$i"
break
fi
done
if test -z "$PYLIB"; then
AC_MSG_RESULT(not found)
# PYLIB="/usr/local/lib/python/lib"
# PYINCLUDE="$PYINCLUDE -I$PYLIB"
fi
AC_SUBST(PYINCLUDE)
AC_SUBST(PYLIB)
AC_SUBST(PYLINK)
#----------------------------------------------------------------
# Look for Perl5
#----------------------------------------------------------------
PERLBIN=
AC_ARG_WITH(perl5,[ --with-perl5=path Set location of Perl5 executable],[ PERLBIN="$withval"], [PERLBIN=])
# First figure out what the name of Perl5 is
if test -z "$PERLBIN"; then
AC_CHECK_PROGS(PERL, perl5.6.1 perl5.6.0 perl5.004 perl5.003 perl5.002 perl5.001 perl5 perl)
else
PERL="$PERLBIN"
fi
AC_MSG_CHECKING(for Perl5 header files)
if test -n "$PERL"; then
PERL5DIR=`($PERL -e 'use Config; print $Config{archlib};') 2>/dev/null`
if test "$PERL5DIR" != ""; then
dirs="$PERL5DIR $PERL5DIR/CORE"
PERL5EXT=none
for i in $dirs; do
if test -r $i/perl.h; then
AC_MSG_RESULT($i)
PERL5EXT="$i"
break;
fi
done
if test "$PERL5EXT" = none; then
PERL5EXT="$PERL5DIR/CORE"
AC_MSG_RESULT(could not locate perl.h...using $PERL5EXT)
fi
else
AC_MSG_RESULT(unable to determine perl5 configuration)
PERL5EXT=$PERL5DIR
fi
else
AC_MSG_RESULT(could not figure out how to run perl5)
# PERL5EXT="/usr/local/lib/perl/archname/5.003/CORE"
fi
AC_SUBST(PERL5EXT)
#----------------------------------------------------------------
# Look for java
#----------------------------------------------------------------
AC_ARG_WITH(java, [ --with-java=path Set location of Java],[JAVABIN="$withval"], [JAVABIN=])
AC_ARG_WITH(javac, [ --with-javac=path Set location of Javac],[JAVACBIN="$withval"], [JAVACBIN=])
if test -z "$JAVABIN" ; then
AC_CHECK_PROGS(JAVA, java kaffe guavac)
else
JAVA="$JAVABIN"
fi
if test -z "$JAVACBIN" ; then
AC_CHECK_PROGS(JAVAC, javac)
else
JAVAC="$JAVACBIN"
fi
AC_MSG_CHECKING(for java include file jni.h)
AC_ARG_WITH(javaincl, [ --with-javaincl=path Set location of Java include directory], [JAVAINCDIR="$withval"], [JAVAINCDIR=])
if test -z "$JAVAINCDIR"; then
JAVAINCDIR="/usr/jdk*/include /usr/local/jdk*/include /opt/jdk*/include /usr/java/include /usr/local/java/include /opt/java/include /usr/include/java /usr/local/include/java /usr/include/kaffe /usr/local/include/kaffe /usr/include /usr/local/include"
fi
JAVAINC=""
for d in $JAVAINCDIR ; do
if test -r $d/jni.h ; then
AC_MSG_RESULT($d)
JAVAINCDIR=$d
JAVAINC="-I$d"
break
fi
done
if test "$JAVAINC" = "" ; then
AC_MSG_RESULT(not found)
else
# now look for <arch>/jni_md.h
AC_MSG_CHECKING(for java include file jni_md.h)
JAVAMDDIR=`find $JAVAINCDIR -name jni_md.h -print`
if test "$JAVAMDDIR" = "" ; then
AC_MSG_RESULT(not found)
else
JAVAMDDIR=`dirname $JAVAMDDIR`
JAVAINC="${JAVAINC} -I$JAVAMDDIR"
AC_MSG_RESULT($JAVAMDDIR)
fi
fi
AC_SUBST(JAVA)
AC_SUBST(JAVAC)
AC_SUBST(JAVAINC)
AC_SUBST(ROOT_DIR)ROOT_DIR=`pwd`
#----------------------------------------------------------------
# Look for Guile
#----------------------------------------------------------------
GUILEINCLUDE=
GUILELIB=
GUILELINK=
AC_PATH_PROG(GUILE_CONFIG, guile-config)
if test -n "$GUILE_CONFIG" ; then
GUILEPACKAGE=
AC_ARG_WITH(guile,[ --with-guile=path Set location of Guile],[
GUILEPACKAGE="$withval"], [GUILEPACKAGE=])
AC_ARG_WITH(guilencl,[ --with-guileincl=path Set location of Guile include directory],[
GUILEINCLUDE="$withval"], [GUILEINCLUDE=])
AC_ARG_WITH(guilelib,[ --with-guilelib=path Set location of Guile library directory],[
GUILELIB="$withval"], [GUILELIB=])
if test -z "$GUILEINCLUDE"; then
if test -n "$GUILEPACKAGE"; then
GUILEINCLUDE="$GUILEPACKAGE/include"
fi
fi
if test -z "$GUILELIB"; then
if test -n "$GUILEPACKAGE"; then
GUILELIB="$GUILEPACKAGE/lib"
fi
fi
AC_MSG_CHECKING(for Guile header files)
dirs="$GUILEINCLUDE `guile-config info includedir`"
for i in $dirs ; do
if test -r $i/guile/gh.h; then
AC_MSG_RESULT($i)
GUILEINCLUDE="-I$i"
break
fi
done
if test -z "$GUILEINCLUDE"; then
# GUILEINCLUDE="-I/usr/local/include"
AC_MSG_RESULT(not found)
fi
AC_MSG_CHECKING(for Guile library)
dirs="$GUILELIB `guile-config info libdir`"
for i in $dirs ; do
if test -r $i/libguile.so; then
AC_MSG_RESULT($i)
GUILELIB="$i"
break
fi
done
if test -z "$GUILELIB"; then
AC_MSG_RESULT(not found)
# GUILELIB="/usr/local/lib"
fi
GUILELINK="`guile-config link`"
fi # have GUILE_CONFIG
AC_SUBST(GUILEINCLUDE)
AC_SUBST(GUILELIB)
AC_SUBST(GUILELINK)
#----------------------------------------------------------------
# Look for MzScheme
#----------------------------------------------------------------
AC_PATH_PROG(MZC, mzc)
#----------------------------------------------------------------
# Look for Ruby
#----------------------------------------------------------------
RUBYBIN=
AC_ARG_WITH(ruby,[ --with-ruby=path Set location of Ruby executable],[ RUBYBIN="$withval"], [RUBYBIN=])
# First figure out what the name of Ruby is
if test -z "$RUBYBIN"; then
AC_CHECK_PROGS(RUBY, ruby)
else
RUBY="$RUBYBIN"
fi
AC_MSG_CHECKING(for Ruby header files)
RUBYLIBRUBYARG=""
if test -n "$RUBY"; then
RUBYDIR=`($RUBY -rmkmf -e 'print Config::CONFIG[["archdir"]] || $archdir') 2>/dev/null`
if test "$RUBYDIR" != ""; then
dirs="$RUBYDIR"
RUBYINCLUDE=none
for i in $dirs; do
if test -r $i/ruby.h; then
AC_MSG_RESULT($i)
RUBYINCLUDE="-I$i"
break;
fi
done
if test "$RUBYINCLUDE" = none; then
RUBYINCLUDE="-I$RUBYDIR"
AC_MSG_RESULT(could not locate ruby.h...using $RUBYINCLUDE)
fi
AC_MSG_CHECKING(for Ruby library)
RUBYLIB=none
for i in $dirs; do
# cygwin produces "librubys.a" instead of "libruby.a"
if ((test -r $i/libruby.a;) || (test -r $i/librubys.a;)) then
AC_MSG_RESULT($i)
RUBYLIB="$i"
break;
fi
done
if test "$RUBYLIB" = none; then
RUBYLIB="$RUBYDIR"
AC_MSG_RESULT(could not locate libruby.a...using $RUBYLIB)
fi
else
AC_MSG_RESULT(unable to determine ruby configuration)
RUBYINCLUDE="-I$RUBYDIR"
RUBYLIB="$RUBYDIR"
fi
RUBYLINK=`($RUBY -rrbconfig -e 'print Config::CONFIG[["RUBY_INSTALL_NAME"]]') 2>/dev/null`
RUBYLINK="-l$RUBYLINK"
RUBYLINK="$RUBYLINK `($RUBY -rrbconfig -e 'print Config::CONFIG[["LIBS"]]') 2>/dev/null`"
RUBYCCDLFLAGS=`($RUBY -rrbconfig -e 'print Config::CONFIG[["CCDLFLAGS"]]') 2>/dev/null`
# At least for cygwin the following arguments can be extracted from the CONFIG-hash
case $ac_sys_system/$ac_sys_release in
CYGWIN*) RUBYLIBRUBYARG=`($RUBY -rrbconfig -e 'print Config::CONFIG[["LIBRUBYARG"]]') 2>/dev/null`;;
*) RUBYLIBRUBYARG="";;
esac
else
AC_MSG_RESULT(could not figure out how to run ruby)
RUBYINCLUDE="-I/usr/local/lib/ruby/1.4/arch"
RUBYLIB="-I/usr/local/lib/ruby/1.4/arch"
RUBYLINK="-lruby -lm"
fi
AC_SUBST(RUBYINCLUDE)
AC_SUBST(RUBYLIB)
AC_SUBST(RUBYLINK)
AC_SUBST(RUBYCCDLFLAGS)
AC_SUBST(RUBYLIBRUBYARG)
# Configure SWIG_LIB path
AC_ARG_WITH(swiglibdir,[ --with-swiglibdir=DIR Put SWIG system-independent libraries into DIR.],
[swig_lib="$withval"], [swig_lib="\$(prefix)/lib/swig1.3"])
AC_SUBST(swig_lib)
# Configure RELEASESUFFIX (for setups having both SWIG 1.1 and 1.3 on a system...)
AC_ARG_WITH(release-suffix,
[ --with-release-suffix=SUFFIX Attach SUFFIX to the binary and the runtime libs. ],
[release_suffix="$withval"], [release_suffix=""])
AC_SUBST(release_suffix)
#----------------------------------------------------------------
# Miscellaneous
#----------------------------------------------------------------
# These commands are only intended for use in a development environment.
# When one makes a fresh CVS checkout, no 'configure' scripts exist. This
# Makes the CONFIG_SUBDIRS macro fail below. To fix this, one needs to
# generate the configure script by calling autoconf manually. This is
# not an issue in non-CVS releases--the mkdist.py script creates all
# of the configure scripts before making a tar-ball. -- beazley 2000/03/01
if test ! -r $srcdir/Source/DOH/configure; then
(cd $srcdir/Source/DOH ; autoconf)
fi
#if test -d $srcdir/Source/SWILL/SWILL; then
# if test ! -r $srcdir/Source/SWILL/configure; then
# (cd $srcdir/Source/SWILL ; autoconf)
# fi
#fi
if test ! -r $srcdir/Tools/configure ; then
(cd $srcdir/Tools ; autoconf)
fi
if test ! -r $srcdir/Examples/GIFPlot/configure ; then
(cd $srcdir/Examples/GIFPlot ; autoconf)
fi
#
#AC_OUTPUT_COMMANDS(test -f Examples/install-sh || cp install-sh Examples)
# DB: Maybe I'm missings something, but why is it necessary to put
# an 'install-sh' script in the Examples directory?
AC_CONFIG_SUBDIRS(Source/DOH Tools Examples/GIFPlot)
# NOTE: The following ref to `Source' should NOT be prefixed w/ `$srcdir/'.
# We can remove it if `Source' ever has a generated file but not before.
test -d Source || mkdir Source
dnl We use the following in `AC_OUTPUT' and "make distclean".
configure_substituted_files=`echo \
Examples/Makefile \
Examples/C++/test_conf.py \
Examples/guile/Makefile \
Examples/guile/test-suite/Makefile \
Makefile \
Runtime/Makefile \
Source/Include/swigver.h \
Source/LParse/Makefile \
Source/Modules/Makefile \
Source/Modules1.1/Makefile \
Source/Preprocessor/Makefile \
Source/SWIG1.1/Makefile \
Source/Swig/Makefile \
`
AC_SUBST(configure_substituted_files)
AC_OUTPUT([$configure_substituted_files])
dnl configure.in ends here