* vadz-msw-srcdir: SWIG_LIB fix for out of source MinGW builds Use "mixed" path to source directory under Cygwin.
2961 lines
88 KiB
Text
2961 lines
88 KiB
Text
dnl Process this file with autoconf to produce a configure script.
|
|
dnl The macros which aren't shipped with the autotools are stored in the
|
|
dnl Tools/config directory in .m4 files.
|
|
|
|
AC_INIT([swig],[3.0.7],[http://www.swig.org])
|
|
|
|
dnl NB: When this requirement is increased to 2.60 or later, AC_PROG_SED
|
|
dnl definition below can be removed
|
|
AC_PREREQ(2.58)
|
|
|
|
AC_CONFIG_SRCDIR([Source/Swig/swig.h])
|
|
AC_CONFIG_AUX_DIR([Tools/config])
|
|
AC_CONFIG_HEADERS([Source/Include/swigconfig.h])
|
|
AC_CANONICAL_HOST
|
|
AM_INIT_AUTOMAKE
|
|
|
|
dnl Some extra defines for the config file
|
|
AH_BOTTOM([
|
|
/* Default language */
|
|
#define SWIG_LANG "-tcl"
|
|
|
|
/* Deal with attempt by Microsoft to deprecate C standard runtime functions */
|
|
#if defined(_MSC_VER)
|
|
# define _CRT_SECURE_NO_DEPRECATE
|
|
#endif
|
|
])
|
|
|
|
dnl Check for programs that a user requires to build SWIG
|
|
AC_PROG_CC
|
|
AC_PROG_CXX
|
|
AC_EXEEXT
|
|
AC_OBJEXT
|
|
AM_PROG_CC_C_O # Needed for subdir-objects in AUTOMAKE_OPTIONS
|
|
|
|
AC_COMPILE_WARNINGS # Increase warning levels
|
|
|
|
AC_DEFINE_UNQUOTED(SWIG_CXX, ["$CXX"], [Compiler that built SWIG])
|
|
AC_DEFINE_UNQUOTED(SWIG_PLATFORM, ["$host"], [Platform that SWIG is built for])
|
|
|
|
dnl Checks for header files.
|
|
AC_HEADER_STDC
|
|
|
|
dnl Checks for types.
|
|
AC_LANG_PUSH([C++])
|
|
AC_CHECK_TYPES([bool])
|
|
AC_LANG_POP([C++])
|
|
|
|
dnl Look for popen
|
|
AC_ARG_WITH(popen, AS_HELP_STRING([--without-popen], [Disable popen]), with_popen="$withval")
|
|
if test x"${with_popen}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling popen])
|
|
else
|
|
AC_CHECK_FUNC(popen, AC_DEFINE(HAVE_POPEN, 1, [Define if popen is available]), AC_MSG_NOTICE([Disabling popen]))
|
|
fi
|
|
|
|
dnl PCRE
|
|
|
|
dnl AX_PATH_GENERIC() relies on AC_PROG_SED() but it is defined only in
|
|
dnl autoconf 2.60 so trivially predefine it ourselves for the older versions
|
|
m4_ifdef([AC_PROG_SED],, [AC_DEFUN([AC_PROG_SED], [AC_PATH_PROG([SED], sed)])])
|
|
|
|
AC_ARG_WITH([pcre],
|
|
[AS_HELP_STRING([--without-pcre],
|
|
[Disable support for regular expressions using PCRE])],
|
|
[],
|
|
[with_pcre=yes])
|
|
|
|
AC_MSG_CHECKING([whether to enable PCRE support])
|
|
AC_MSG_RESULT([$with_pcre])
|
|
|
|
dnl To make configuring easier, check for a locally built PCRE using the Tools/pcre-build.sh script
|
|
if test x"${with_pcre}" = xyes ; then
|
|
AC_MSG_CHECKING([whether to use local PCRE])
|
|
local_pcre_config=no
|
|
if test -z $PCRE_CONFIG; then
|
|
if test -f `pwd`/pcre/pcre-swig-install/bin/pcre-config; then
|
|
PCRE_CONFIG=`pwd`/pcre/pcre-swig-install/bin/pcre-config
|
|
local_pcre_config=$PCRE_CONFIG
|
|
fi
|
|
fi
|
|
AC_MSG_RESULT([$local_pcre_config])
|
|
fi
|
|
AS_IF([test "x$with_pcre" != xno],
|
|
[AX_PATH_GENERIC([pcre],
|
|
[], dnl Minimal version of PCRE we need -- accept any
|
|
[], dnl custom sed script for version parsing is not needed
|
|
[AC_DEFINE([HAVE_PCRE], [1], [Define if you have PCRE library])
|
|
LIBS="$LIBS $PCRE_LIBS"
|
|
CPPFLAGS="$CPPFLAGS $PCRE_CFLAGS"
|
|
],
|
|
[AC_MSG_FAILURE([
|
|
Cannot find pcre-config script from PCRE (Perl Compatible Regular Expressions)
|
|
library package. This dependency is needed for configure to complete,
|
|
Either:
|
|
- Install the PCRE developer package on your system (preferred approach).
|
|
- Download the PCRE source tarball, build and install on your system
|
|
as you would for any package built from source distribution.
|
|
- Use the Tools/pcre-build.sh script to build PCRE just for SWIG to statically
|
|
link against. Run 'Tools/pcre-build.sh --help' for instructions.
|
|
(quite easy and does not require privileges to install PCRE on your system)
|
|
- Use configure --without-pcre to disable regular expressions support in SWIG
|
|
(not recommended).])
|
|
])
|
|
])
|
|
|
|
|
|
dnl CCache
|
|
AC_ARG_ENABLE([ccache], AS_HELP_STRING([--disable-ccache], [disable building and installation of ccache-swig executable (default enabled)]), [enable_ccache=$enableval], [enable_ccache=yes])
|
|
AC_MSG_CHECKING([whether to enable ccache-swig])
|
|
AC_MSG_RESULT([$enable_ccache])
|
|
|
|
if test "$enable_ccache" = yes; then
|
|
AC_CONFIG_SUBDIRS(CCache)
|
|
ENABLE_CCACHE=1
|
|
fi
|
|
AC_SUBST(ENABLE_CCACHE)
|
|
|
|
|
|
echo ""
|
|
echo "Checking packages required for SWIG developers."
|
|
echo "Note : None of the following packages are required for users to compile and install SWIG from the distributed tarball"
|
|
echo ""
|
|
|
|
AC_PROG_YACC
|
|
AC_PROG_RANLIB
|
|
AC_CHECK_PROGS(AR, ar aal, ar)
|
|
AC_SUBST(AR)
|
|
AC_CHECK_PROGS(YODL2MAN, yodl2man)
|
|
AC_CHECK_PROGS(YODL2HTML, yodl2html)
|
|
|
|
if test -n "$YODL2MAN"; then
|
|
AC_MSG_CHECKING([yodl2man version >= 2.02])
|
|
[yodl_version=`$YODL2MAN --version 2>&1 | grep 'yodl version' | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.*[0-9]*\).*/\1/g'`]
|
|
AX_COMPARE_VERSION([$yodl_version],[ge],[2.02], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no - $yodl_version found])])
|
|
fi
|
|
|
|
if test -n "$YODL2HTML"; then
|
|
AC_MSG_CHECKING([yodl2html version >= 2.02])
|
|
[yodl_version=`$YODL2HTML --version 2>&1 | grep 'yodl version' | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`]
|
|
AX_COMPARE_VERSION([$yodl_version],[ge],[2.02], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no - $yodl_version found])])
|
|
fi
|
|
|
|
echo ""
|
|
echo "Checking for installed target languages and other information in order to compile and run"
|
|
echo "the examples and test-suite invoked by 'make check'."
|
|
echo "Note : None of the following packages are required for users to compile and install SWIG from the distributed tarball"
|
|
echo ""
|
|
|
|
dnl Some test cases require Boost
|
|
AX_BOOST_BASE(,,,)
|
|
AC_SUBST(BOOST_CPPFLAGS)
|
|
|
|
dnl How to specify include directories that may be system directories.
|
|
# -I should not be used on system directories (GCC)
|
|
if test "$GCC" = yes; then
|
|
ISYSTEM="-isystem "
|
|
else
|
|
ISYSTEM="-I"
|
|
fi
|
|
AC_MSG_NOTICE(ISYSTEM: $ISYSTEM)
|
|
|
|
dnl Info for building shared libraries ... in order to run the examples
|
|
|
|
# SO is the extension of shared libraries (including the dot!)
|
|
AC_MSG_CHECKING(SO)
|
|
if test -z "$SO"
|
|
then
|
|
case $host in
|
|
*-*-hp*) SO=.sl;;
|
|
*-*-darwin*) SO=.bundle;;
|
|
*-*-cygwin* | *-*-mingw*) SO=.dll;;
|
|
*) 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 $host in
|
|
*-*-aix*) LDSHARED="\$(srcdir)/ld_so_aix \$(CC)";;
|
|
*-*-cygwin* | *-*-mingw*)
|
|
if test "$GCC" = yes; then
|
|
LDSHARED="$CC -shared"
|
|
else
|
|
if test "cl" = $CC ; then
|
|
# Microsoft Visual C++ (MSVC)
|
|
LDSHARED="$CC -nologo -LD"
|
|
else
|
|
# Unknown compiler try gcc approach
|
|
LDSHARED="$CC -shared"
|
|
fi
|
|
fi ;;
|
|
*-*-irix5*) LDSHARED="ld -shared";;
|
|
*-*-irix6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
|
|
*-*-sunos4*) LDSHARED="ld";;
|
|
*-*-solaris*) LDSHARED="ld -G";;
|
|
*-*-hp*) LDSHARED="ld -b";;
|
|
*-*-osf*) LDSHARED="ld -shared -expect_unresolved \"*\"";;
|
|
*-sequent-sysv4) 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";;
|
|
*-*-freebsd3*) 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-sysv*) LDSHARED="cc -G -KPIC -Ki486 -belf -Wl,-Bexport";;
|
|
*-*-darwin*) LDSHARED="cc -bundle -undefined suppress -flat_namespace";;
|
|
*) 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
|
|
CXXSHARED="$LDSHARED"
|
|
fi
|
|
AC_MSG_RESULT($CXXSHARED)
|
|
|
|
#
|
|
AC_MSG_CHECKING(TRYLINKINGWITHCXX)
|
|
if test -z "$TRYLINKINGWITHCXX"
|
|
then
|
|
case $host in
|
|
*-*-solaris*) if test "$GCC" = yes
|
|
then TRYLINKINGWITHCXX="CXXSHARED= $CXX -Wl,-G"
|
|
else TRYLINKINGWITHCXX="CXXSHARED= $CXX -G -L/opt/SUNWspro/lib -lCrun -lCstd"
|
|
fi;;
|
|
*-*-hp*) TRYLINKINGWITHCXX="CXXSHARED= $CXX +z ";;
|
|
*-*-darwin*) TRYLINKINGWITHCXX="CXXSHARED= $CXX -bundle -undefined suppress -flat_namespace";;
|
|
*-*-cygwin* | *-*-mingw*)
|
|
if test "$GCC" = yes; then
|
|
TRYLINKINGWITHCXX="CXXSHARED= $CXX -shared "
|
|
else
|
|
if test "cl" = $CXX ; then
|
|
# Microsoft Visual C++ (MSVC)
|
|
TRYLINKINGWITHCXX="CXXSHARED= $CXX -nologo -LD"
|
|
else
|
|
TRYLINKINGWITHCXX="#unknown Windows compiler"
|
|
fi
|
|
fi ;;
|
|
*) 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 $host in
|
|
*-*-hp*) if test "$GCC" = yes
|
|
then CCSHARED="-fpic"
|
|
else CCSHARED="+z"
|
|
fi;;
|
|
s390x*-*-*) CCSHARED="-fpic" ;;
|
|
s390*-*-*) CCSHARED="-fPIC" ;;
|
|
*-*-linux*) CCSHARED="-fpic";;
|
|
*-*-freebsd* | *-*-openbsd*) CCSHARED="-fpic";;
|
|
*-*-netbsd*) CCSHARED="-fPIC";;
|
|
*-sco-sysv*) CCSHARED="-KPIC -dy -Bdynamic";;
|
|
*-*-irix6*) case $CC in
|
|
*gcc*) CCSHARED="-shared";;
|
|
*) CCSHARED="";;
|
|
esac;;
|
|
esac
|
|
fi
|
|
AC_MSG_RESULT($CCSHARED)
|
|
|
|
# RPATH is the path used to look for shared library files.
|
|
AC_MSG_CHECKING(RPATH)
|
|
if test -z "$RPATH"
|
|
then
|
|
case $host in
|
|
*-*-solaris*) 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)
|
|
|
|
# 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 $host in
|
|
*-*-aix*) LINKFORSHARED='-Wl,-bE:$(srcdir)/python.exp -lld';;
|
|
*-*-hp*)
|
|
LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";;
|
|
*-*-linux*) LINKFORSHARED="-Xlinker -export-dynamic";;
|
|
*-*-next*) LINKFORSHARED="-u libsys_s";;
|
|
*-sco-sysv*) LINKFORSHARED="-Bdynamic -dy -Wl,-Bexport";;
|
|
*-*-irix6*) LINKFORSHARED="-all";;
|
|
esac
|
|
fi
|
|
AC_MSG_RESULT($LINKFORSHARED)
|
|
|
|
# Optional CFLAGS used to silence/enhance compiler warnings on some platforms.
|
|
AC_MSG_CHECKING(PLATCFLAGS)
|
|
case $host in
|
|
*-*-solaris*) if test "$GCC" = yes
|
|
then PLATCFLAGS=
|
|
else PLATCFLAGS=
|
|
# else PLATCFLAGS="-errtags=yes" # Need more work as C examples use ld for linking
|
|
fi;;
|
|
*) PLATCFLAGS=
|
|
esac
|
|
AC_MSG_RESULT($PLATCFLAGS)
|
|
|
|
# Add switch if necessary to enable C++11 support - just for tests
|
|
AC_ARG_ENABLE([cpp11-testing], AS_HELP_STRING([--enable-cpp11-testing], [enable C++11 testing if supported by compiler (default disabled)]), [enable_cpp11_testing=$enableval], [enable_cpp11_testing=no])
|
|
AC_MSG_CHECKING([whether to enable C++11 testing])
|
|
AC_MSG_RESULT([$enable_cpp11_testing])
|
|
|
|
PLATCXXFLAGS="$PLATCFLAGS"
|
|
if test x"$enable_cpp11_testing" = xyes; then
|
|
AC_LANG_PUSH([C++])
|
|
CXXFLAGS_SAVED=$CXXFLAGS
|
|
CXXFLAGS=
|
|
AX_CXX_COMPILE_STDCXX_11([noext], [nostop])
|
|
CXXFLAGS=$CXXFLAGS_SAVED
|
|
AC_LANG_POP([C++])
|
|
if test x"$CXX11FLAGS" != x; then
|
|
PLATCXXFLAGS="$CXX11FLAGS $PLATCXXFLAGS"
|
|
fi
|
|
AC_MSG_CHECKING([for C++11 enabled compiler])
|
|
if test x"$HAVE_CXX11_COMPILER" = x; then
|
|
AC_MSG_RESULT([no])
|
|
else
|
|
AC_MSG_RESULT([$HAVE_CXX11_COMPILER])
|
|
fi
|
|
fi
|
|
|
|
# On darwin 10.7,10.8,10.9 using clang++, need to ensure using
|
|
# libc++ for tests and examples to run under mono. May affect
|
|
# other language targets as well - problem is an OSX incompatibility
|
|
# between libraries depending on libstdc++ and libc++.
|
|
CLANGXX=
|
|
$CXX -v 2>&1 | grep -i clang >/dev/null && CLANGXX=yes
|
|
case $host in
|
|
*-*-darwin11* | *-*-darwin12* |*-*-darwin13* ) if test "$CLANGXX" = "yes";
|
|
then PLATCXXFLAGS="$PLATCXXFLAGS -stdlib=libc++"
|
|
fi;;
|
|
*) ;;
|
|
esac
|
|
|
|
# Set info about shared libraries.
|
|
AC_SUBST(SO)
|
|
AC_SUBST(LDSHARED)
|
|
AC_SUBST(CCSHARED)
|
|
AC_SUBST(CXXSHARED)
|
|
AC_SUBST(TRYLINKINGWITHCXX)
|
|
AC_SUBST(RPATH)
|
|
AC_SUBST(PLATCFLAGS)
|
|
AC_SUBST(PLATCXXFLAGS)
|
|
AC_SUBST(HAVE_CXX11_COMPILER)
|
|
AC_SUBST(LINKFORSHARED)
|
|
|
|
# This variation is needed on OS-X because there is no (apparent) consistency in shared library naming.
|
|
# Sometimes .bundle works, but sometimes .so is needed. It depends on the target language
|
|
|
|
AC_SUBST(PYTHON_SO)
|
|
case $host in
|
|
*-*-mingw*) PYTHON_SO=.pyd;;
|
|
*-*-darwin*) PYTHON_SO=.so;;
|
|
*) PYTHON_SO=$SO;;
|
|
esac
|
|
|
|
AC_SUBST(TCL_SO)
|
|
case $host in
|
|
*-*-darwin*) TCL_SO=.dylib;;
|
|
*) TCL_SO=$SO;;
|
|
esac
|
|
|
|
AC_SUBST(GUILE_SO)
|
|
case $host in
|
|
*-*-darwin*) GUILE_SO=.so;;
|
|
*) GUILE_SO=$SO;;
|
|
esac
|
|
|
|
AC_SUBST(PHP_SO)
|
|
case $host in
|
|
*-*-darwin*) PHP_SO=.so;;
|
|
*) PHP_SO=$SO;;
|
|
esac
|
|
|
|
AC_SUBST(MZSCHEME_SO)
|
|
case $host in
|
|
*) MZSCHEME_SO=.so;;
|
|
esac
|
|
|
|
AC_SUBST(LUA_SO)
|
|
case $host in
|
|
*-*-darwin*) LUA_SO=.so;;
|
|
*) LUA_SO=$SO;;
|
|
esac
|
|
|
|
# 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
|
|
|
|
dnl The following three libraries (nsl,inet,socket) are needed on Sequent,
|
|
dnl and must be checked for in this order since each library depends on the
|
|
dnl preceding one.
|
|
dnl
|
|
dnl Most SVR4 platforms will need -lsocket and -lnsl. However on SGI IRIX 5,
|
|
dnl these exist but are broken, so we use AC_SEARCH_LIBS which will only try
|
|
dnl the library if the function isn't already available without it.
|
|
AC_SEARCH_LIBS(t_open, nsl) # SVR4
|
|
AC_SEARCH_LIBS(gethostbyname, inet) # Sequent
|
|
AC_SEARCH_LIBS(socket, socket) # SVR4 sockets
|
|
|
|
AC_CHECK_LIB(swill, swill_init, [SWIGLIBS="-lswill $LIBS" SWILL="-DSWIG_SWILL"])
|
|
AC_SUBST(SWIGLIBS)
|
|
AC_SUBST(SWILL)
|
|
|
|
# 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_MSG_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_MSG_ERROR([proper usage is --with-libc=STRING])
|
|
fi])
|
|
|
|
#--------------------------------------------------------------------
|
|
# Target languages
|
|
#--------------------------------------------------------------------
|
|
|
|
AC_ARG_WITH(alllang, AS_HELP_STRING([--without-alllang], [Disable all languages]), with_alllang="$withval")
|
|
|
|
AC_CHECK_PROGS(PKGCONFIG, [pkg-config])
|
|
|
|
#--------------------------------------------------------------------
|
|
# Look for Tcl
|
|
#--------------------------------------------------------------------
|
|
|
|
TCLINCLUDE=
|
|
TCLLIB=
|
|
TCLPACKAGE=
|
|
|
|
AC_ARG_WITH(tclconfig, AS_HELP_STRING([--without-tcl], [Disable Tcl])
|
|
AS_HELP_STRING([--with-tclconfig=path], [Set location of tclConfig.sh]), [with_tclconfig="$withval"], [with_tclconfig=])
|
|
AC_ARG_WITH(tcl,
|
|
[ --with-tcl=path Set location of Tcl package],[
|
|
TCLPACKAGE="$withval"], [TCLPACKAGE=yes])
|
|
AC_ARG_WITH(tclincl,[ --with-tclincl=path Set location of Tcl include directory],[
|
|
TCLINCLUDE="$ISYSTEM$withval"], [TCLINCLUDE=])
|
|
AC_ARG_WITH(tcllib,[ --with-tcllib=path Set location of Tcl library directory],[
|
|
TCLLIB="-L$withval"], [TCLLIB=])
|
|
|
|
# First, check for "--without-tcl" or "--with-tcl=no".
|
|
if test x"${TCLPACKAGE}" = xno -o x"${with_alllang}" = xno; then
|
|
AC_MSG_NOTICE([Disabling Tcl])
|
|
else
|
|
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 does not contain tclConfig.sh])
|
|
fi
|
|
fi
|
|
# check in a few common install locations
|
|
if test x"${TCLCONFIG}" = x ; then
|
|
for i in `ls -d -r /usr/lib*/ 2>/dev/null` \
|
|
`ls -d -r /usr/lib*/tcl*/ 2>/dev/null` \
|
|
`ls -d -r /usr/local/lib*/ 2>/dev/null` \
|
|
`ls -d -r /usr/local/lib*/tcl*/ 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
|
|
if test -z "$TCLINCLUDE"; then
|
|
TCLINCLUDE=`echo $TCL_INCLUDE_SPEC | sed "s/-I/$ISYSTEM/"`
|
|
fi
|
|
if test -z "$TCLLIB"; then
|
|
TCLLIB=$TCL_LIB_SPEC
|
|
fi
|
|
fi
|
|
|
|
if test -z "$TCLINCLUDE"; then
|
|
if test "x$TCLPACKAGE" != xyes; then
|
|
TCLINCLUDE="$ISYSTEM$TCLPACKAGE/include"
|
|
fi
|
|
fi
|
|
|
|
if test -z "$TCLLIB"; then
|
|
if test "x$TCLPACKAGE" != xyes; 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="/usr/local/include /usr/include /opt/local/include"
|
|
for i in $dirs ; do
|
|
if test -r $i/tcl.h; then
|
|
AC_MSG_RESULT($i)
|
|
TCLINCLUDE="$ISYSTEM$i"
|
|
break
|
|
fi
|
|
done
|
|
fi
|
|
if test -z "$TCLINCLUDE"; then
|
|
AC_MSG_RESULT(not found)
|
|
fi
|
|
else
|
|
AC_MSG_RESULT($TCLINCLUDE)
|
|
fi
|
|
|
|
AC_MSG_CHECKING(for Tcl library)
|
|
if test -z "$TCLLIB"; then
|
|
dirs="/usr/local/lib /usr/lib /opt/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)
|
|
fi
|
|
else
|
|
AC_MSG_RESULT($TCLLIB)
|
|
fi
|
|
|
|
# Cygwin (Windows) needs the library for dynamic linking
|
|
case $host in
|
|
*-*-cygwin* | *-*-mingw*) TCLDYNAMICLINKING="$TCLLIB";;
|
|
*)TCLDYNAMICLINKING="";;
|
|
esac
|
|
|
|
case $host in
|
|
*-*-darwin*)
|
|
TCLLDSHARED='$(CC) -dynamiclib -undefined suppress -flat_namespace'
|
|
TCLCXXSHARED='$(CXX) -dynamiclib -undefined suppress -flat_namespace'
|
|
;;
|
|
*)
|
|
TCLLDSHARED='$(LDSHARED)'
|
|
TCLCXXSHARED='$(CXXSHARED)'
|
|
;;
|
|
esac
|
|
|
|
fi
|
|
|
|
AC_SUBST(TCLINCLUDE)
|
|
AC_SUBST(TCLLIB)
|
|
AC_SUBST(TCLDYNAMICLINKING)
|
|
AC_SUBST(TCLLDSHARED)
|
|
AC_SUBST(TCLCXXSHARED)
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for Python
|
|
#----------------------------------------------------------------
|
|
|
|
PYINCLUDE=
|
|
PYLIB=
|
|
PYLINK=
|
|
PYPACKAGE=
|
|
|
|
AC_ARG_WITH(python, AS_HELP_STRING([--without-python], [Disable Python])
|
|
AS_HELP_STRING([--with-python=path], [Set location of Python executable]),[ PYBIN="$withval"], [PYBIN=yes])
|
|
|
|
# First, check for "--without-python" or "--with-python=no".
|
|
if test x"${PYBIN}" = xno -o x"${with_alllang}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling Python])
|
|
else
|
|
# First figure out the name of the Python executable
|
|
if test "x$PYBIN" = xyes; then
|
|
AC_CHECK_PROGS(PYTHON, [python python2.8 python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5 python1.4])
|
|
else
|
|
PYTHON="$PYBIN"
|
|
fi
|
|
|
|
PYVER=0
|
|
if test -n "$PYTHON"; then
|
|
AC_MSG_CHECKING([for $PYTHON major version number])
|
|
PYVER=`($PYTHON -c "import sys; sys.stdout.write(sys.version[[0]])") 2>/dev/null`
|
|
AC_MSG_RESULT($PYVER)
|
|
if test -z "$PYVER"; then
|
|
PYVER=0
|
|
fi
|
|
fi
|
|
|
|
if test $PYVER -eq 1 -o $PYVER -eq 2; then
|
|
AC_MSG_CHECKING(for Python prefix)
|
|
PYPREFIX=`($PYTHON -c "import sys; sys.stdout.write(sys.prefix)") 2>/dev/null`
|
|
AC_MSG_RESULT($PYPREFIX)
|
|
AC_MSG_CHECKING(for Python exec-prefix)
|
|
PYEPREFIX=`($PYTHON -c "import sys; sys.stdout.write(sys.exec_prefix)") 2>/dev/null`
|
|
AC_MSG_RESULT($PYEPREFIX)
|
|
AC_MSG_CHECKING(for Python os.name)
|
|
PYOSNAME=`($PYTHON -c "import sys, os; sys.stdout.write(os.name)")`
|
|
AC_MSG_RESULT($PYOSNAME)
|
|
|
|
if test x"$PYOSNAME" = x"nt"; then
|
|
# Windows installations are quite different to posix installations
|
|
PYPREFIX=`echo "$PYPREFIX" | sed -e 's,\\\\,/,g'` # Forward slashes are easier to use and even work on Windows most of the time
|
|
PYTHON_SO=.pyd
|
|
|
|
AC_MSG_CHECKING(for Python header files)
|
|
if test -r $PYPREFIX/include/Python.h; then
|
|
PYINCLUDE="-I$PYPREFIX/include"
|
|
fi
|
|
AC_MSG_RESULT($PYINCLUDE)
|
|
|
|
AC_MSG_CHECKING(for Python library directory)
|
|
if test -d $PYPREFIX/libs; then
|
|
PYLIB=$PYPREFIX/libs
|
|
PYLINKFILE=`ls $PYLIB/python*.lib | grep "python[[0-9]][[0-9]]\.lib"`
|
|
if test -r "$PYLINKFILE"; then
|
|
PYLINK=-l`basename $PYLINKFILE | sed -e 's/\.lib$//'`
|
|
else
|
|
PYLIB=
|
|
fi
|
|
fi
|
|
else
|
|
# Note: I could not think of a standard way to get the version string from different versions.
|
|
# This trick pulls it out of the file location for a standard library file.
|
|
|
|
AC_MSG_CHECKING(for Python version)
|
|
|
|
# Need to do this hack since autoconf replaces __file__ with the name of the configure file
|
|
filehack="file__"
|
|
PYVERSION=`($PYTHON -c "import sys,string,operator,os.path; sys.stdout.write(operator.getitem(os.path.split(operator.getitem(os.path.split(string.__$filehack),0)),1))")`
|
|
AC_MSG_RESULT($PYVERSION)
|
|
|
|
# Find the directory for libraries this is necessary to deal with
|
|
# platforms that can have apps built for multiple archs: e.g. x86_64
|
|
AC_MSG_CHECKING(for Python lib dir)
|
|
PYLIBDIR=`($PYTHON -c "import sys; sys.stdout.write(sys.lib)") 2>/dev/null`
|
|
if test -z "$PYLIBDIR"; then
|
|
# Fedora patch Python to add sys.lib, for other distros we assume "lib".
|
|
PYLIBDIR="lib"
|
|
fi
|
|
AC_MSG_RESULT($PYLIBDIR)
|
|
|
|
# Set the include directory
|
|
|
|
AC_MSG_CHECKING(for Python header files)
|
|
if test -r $PYPREFIX/include/$PYVERSION/Python.h; then
|
|
PYINCLUDE="-I$PYPREFIX/include/$PYVERSION -I$PYEPREFIX/$PYLIBDIR/$PYVERSION/config"
|
|
fi
|
|
if test -z "$PYINCLUDE"; then
|
|
if test -r $PYPREFIX/include/Py/Python.h; then
|
|
PYINCLUDE="-I$PYPREFIX/include/Py -I$PYEPREFIX/$PYLIBDIR/python/lib"
|
|
fi
|
|
fi
|
|
AC_MSG_RESULT($PYINCLUDE)
|
|
|
|
# Set the library directory blindly. This probably won't work with older versions
|
|
AC_MSG_CHECKING(for Python library directory)
|
|
dirs="$PYVERSION/config $PYVERSION/$PYLIBDIR python/$PYLIBDIR"
|
|
for i in $dirs; do
|
|
if test -d $PYEPREFIX/$PYLIBDIR/$i; then
|
|
PYLIB="$PYEPREFIX/$PYLIBDIR/$i"
|
|
break
|
|
fi
|
|
done
|
|
|
|
PYLINK="-l$PYVERSION"
|
|
fi
|
|
|
|
if test -z "$PYLIB"; then
|
|
AC_MSG_RESULT(Not found)
|
|
else
|
|
AC_MSG_RESULT($PYLIB)
|
|
fi
|
|
AC_MSG_CHECKING(for Python library)
|
|
if test -z "$PYLINK"; then
|
|
AC_MSG_RESULT(Not found)
|
|
else
|
|
AC_MSG_RESULT($PYLINK)
|
|
fi
|
|
fi
|
|
|
|
# Cygwin (Windows) needs the library for dynamic linking
|
|
case $host in
|
|
*-*-cygwin* | *-*-mingw*)
|
|
PYTHONDYNAMICLINKING="-L$PYLIB $PYLINK"
|
|
DEFS="-DUSE_DL_IMPORT $DEFS"
|
|
;;
|
|
*)PYTHONDYNAMICLINKING="";;
|
|
esac
|
|
fi
|
|
|
|
AC_SUBST(PYINCLUDE)
|
|
AC_SUBST(PYLIB)
|
|
AC_SUBST(PYLINK)
|
|
AC_SUBST(PYTHONDYNAMICLINKING)
|
|
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for Python 3.x
|
|
#----------------------------------------------------------------
|
|
|
|
PY3INCLUDE=
|
|
PY3LIB=
|
|
PY3LINK=
|
|
PY3PACKAGE=
|
|
|
|
AC_ARG_WITH(python3, AS_HELP_STRING([--without-python3], [Disable Python 3.x support])
|
|
AS_HELP_STRING([--with-python3=path], [Set location of Python 3.x executable]),[ PY3BIN="$withval"], [PY3BIN=yes])
|
|
|
|
# First, check for "--without-python3" or "--with-python3=no".
|
|
if test x"${PY3BIN}" = xno -o x"${with_alllang}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling Python 3.x support])
|
|
else
|
|
if test "x$PY3BIN" = xyes; then
|
|
for py_ver in 3 3.9 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0 ""; do
|
|
AC_CHECK_PROGS(PYTHON3, [python$py_ver])
|
|
if test -n "$PYTHON3"; then
|
|
AC_CHECK_PROGS(PY3CONFIG, [$PYTHON3-config])
|
|
if test -n "$PY3CONFIG"; then
|
|
break
|
|
fi
|
|
fi
|
|
done
|
|
else
|
|
PYTHON3="$PY3BIN"
|
|
AC_CHECK_PROGS(PY3CONFIG, [$PYTHON3-config])
|
|
fi
|
|
|
|
PYVER=0
|
|
if test -n "$PYTHON3"; then
|
|
AC_MSG_CHECKING([for $PYTHON3 major version number])
|
|
PYVER=`($PYTHON3 -c "import sys; sys.stdout.write(sys.version[[0]])") 2>/dev/null`
|
|
AC_MSG_RESULT($PYVER)
|
|
if test -z "$PYVER"; then
|
|
PYVER=0
|
|
fi
|
|
fi
|
|
|
|
if test $PYVER -ge 3; then
|
|
AC_MSG_CHECKING(for Python 3.x os.name)
|
|
PY3OSNAME=`($PYTHON3 -c "import sys, os; sys.stdout.write(os.name)")`
|
|
AC_MSG_RESULT($PY3OSNAME)
|
|
|
|
if test x"$PY3OSNAME" = x"nt"; then
|
|
# Windows installations are quite different to posix installations
|
|
# There is no python-config to use
|
|
AC_MSG_CHECKING(for Python 3.x prefix)
|
|
PY3PREFIX=`($PYTHON3 -c "import sys; sys.stdout.write(sys.prefix)") 2>/dev/null`
|
|
AC_MSG_RESULT($PY3PREFIX)
|
|
PY3PREFIX=`echo "$PY3PREFIX" | sed -e 's,\\\\,/,g'` # Forward slashes are easier to use and even work on Windows most of the time
|
|
PYTHON_SO=.pyd
|
|
|
|
AC_MSG_CHECKING(for Python 3.x header files)
|
|
if test -r $PY3PREFIX/include/Python.h; then
|
|
PY3INCLUDE="-I$PY3PREFIX/include"
|
|
fi
|
|
AC_MSG_RESULT($PY3INCLUDE)
|
|
|
|
AC_MSG_CHECKING(for Python 3.x library directory)
|
|
if test -d $PY3PREFIX/libs; then
|
|
PY3LIB=$PY3PREFIX/libs
|
|
PY3LINKFILE=`ls $PY3LIB/python*.lib | grep "python[[0-9]][[0-9]]\.lib"`
|
|
if test -r "$PY3LINKFILE"; then
|
|
PY3LINK=-l`basename $PY3LINKFILE | sed -e 's/\.lib$//'`
|
|
else
|
|
PY3LIB=
|
|
fi
|
|
fi
|
|
if test -z "$PY3LIB"; then
|
|
AC_MSG_RESULT([Not found])
|
|
else
|
|
AC_MSG_RESULT($PY3LIB)
|
|
fi
|
|
AC_MSG_CHECKING([for Python 3.x library])
|
|
if test -z "$PY3LINK"; then
|
|
AC_MSG_RESULT(Not found)
|
|
else
|
|
AC_MSG_RESULT($PY3LINK)
|
|
fi
|
|
elif test -n "$PY3CONFIG"; then
|
|
AC_MSG_CHECKING([for Python 3.x prefix])
|
|
PY3PREFIX=`($PY3CONFIG --prefix) 2>/dev/null`
|
|
AC_MSG_RESULT($PY3PREFIX)
|
|
AC_MSG_CHECKING(for Python 3.x exec-prefix)
|
|
PY3EPREFIX=`($PY3CONFIG --exec-prefix) 2>/dev/null`
|
|
AC_MSG_RESULT($PY3EPREFIX)
|
|
|
|
# Note: I could not think of a standard way to get the version string from different versions.
|
|
# This trick pulls it out of the file location for a standard library file.
|
|
|
|
AC_MSG_CHECKING([for Python 3.x version])
|
|
|
|
# Need to do this hack since autoconf replaces __file__ with the name of the configure file
|
|
filehack="file__"
|
|
PY3VERSION=`($PYTHON3 -c "import string,operator,os.path; print(operator.getitem(os.path.split(operator.getitem(os.path.split(string.__$filehack),0)),1))")`
|
|
AC_MSG_RESULT($PY3VERSION)
|
|
|
|
# Find the directory for libraries this is necessary to deal with
|
|
# platforms that can have apps built for multiple archs: e.g. x86_64
|
|
AC_MSG_CHECKING([for Python 3.x lib dir])
|
|
PY3LIBDIR=`($PYTHON3 -c "import sys; print(sys.lib)") 2>/dev/null`
|
|
if test -z "$PY3LIBDIR"; then
|
|
# some dists don't have sys.lib so the best we can do is assume lib
|
|
PY3LIBDIR="lib"
|
|
fi
|
|
AC_MSG_RESULT($PY3LIBDIR)
|
|
|
|
# Set the include directory
|
|
|
|
AC_MSG_CHECKING([for Python 3.x header files])
|
|
PY3INCLUDE=`($PY3CONFIG --includes) 2>/dev/null`
|
|
AC_MSG_RESULT($PY3INCLUDE)
|
|
|
|
# Set the library directory blindly. This probably won't work with older versions
|
|
AC_MSG_CHECKING([for Python 3.x library directory])
|
|
dirs="$PY3VERSION/config $PY3VERSION/$PY3LIBDIR python/$PY3LIBDIR"
|
|
for i in $dirs; do
|
|
if test -d $PY3EPREFIX/$PY3LIBDIR/$i; then
|
|
PY3LIB="$PY3EPREFIX/$PY3LIBDIR/$i"
|
|
break
|
|
fi
|
|
done
|
|
if test -z "$PY3LIB"; then
|
|
AC_MSG_RESULT([Not found])
|
|
else
|
|
AC_MSG_RESULT($PY3LIB)
|
|
fi
|
|
|
|
PY3LINK="-l$PY3VERSION"
|
|
|
|
AC_MSG_CHECKING([for Python 3.x library])
|
|
if test -z "$PY3LINK"; then
|
|
AC_MSG_RESULT(Not found)
|
|
else
|
|
AC_MSG_RESULT($PY3LINK)
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
# Cygwin (Windows) needs the library for dynamic linking
|
|
case $host in
|
|
*-*-cygwin* | *-*-mingw*)
|
|
PYTHON3DYNAMICLINKING="-L$PY3LIB $PY3LINK"
|
|
DEFS="-DUSE_DL_IMPORT $DEFS"
|
|
;;
|
|
*)PYTHON3DYNAMICLINKING="";;
|
|
esac
|
|
fi
|
|
|
|
AC_SUBST(PY3INCLUDE)
|
|
AC_SUBST(PY3LIB)
|
|
AC_SUBST(PY3LINK)
|
|
AC_SUBST(PYTHON3DYNAMICLINKING)
|
|
AC_CHECK_PROGS(PEP8, pep8)
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for Perl5
|
|
#----------------------------------------------------------------
|
|
|
|
PERLBIN=
|
|
|
|
AC_ARG_WITH(perl5, AS_HELP_STRING([--without-perl5], [Disable Perl5])
|
|
AS_HELP_STRING([--with-perl5=path], [Set location of Perl5 executable]),[ PERLBIN="$withval"], [PERLBIN=yes])
|
|
|
|
# First, check for "--without-perl5" or "--with-perl5=no".
|
|
if test x"${PERLBIN}" = xno -o x"${with_alllang}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling Perl5])
|
|
PERL=
|
|
else
|
|
|
|
# First figure out what the name of Perl5 is
|
|
|
|
if test "x$PERLBIN" = xyes; then
|
|
AC_CHECK_PROGS(PERL, perl perl5.6.1 perl5.6.0 perl5.004 perl5.003 perl5.002 perl5.001 perl5 perl)
|
|
else
|
|
PERL="$PERLBIN"
|
|
fi
|
|
|
|
|
|
# This could probably be simplified as for all platforms and all versions of Perl the following apparently should be run to get the compilation options:
|
|
# perl -MExtUtils::Embed -e ccopts
|
|
AC_MSG_CHECKING(for Perl5 header files)
|
|
if test -n "$PERL"; then
|
|
PERL5DIR=`($PERL -MConfig -le 'print $Config{archlibexp}') 2>/dev/null`
|
|
if test -n "$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
|
|
|
|
AC_MSG_CHECKING(for Perl5 library)
|
|
PERL5LIB=`($PERL -e 'use Config; $_=$Config{libperl}; s/^lib//; s/$Config{_a}$//; s/\.$Config{so}.*//; print $_, "\n"') 2>/dev/null`
|
|
if test -z "$PERL5LIB" ; then
|
|
AC_MSG_RESULT(not found)
|
|
else
|
|
AC_MSG_RESULT($PERL5LIB)
|
|
fi
|
|
AC_MSG_CHECKING(for Perl5 ccflags)
|
|
PERL5CCFLAGS=`($PERL -e 'use Config; print $Config{ccflags}, "\n"' | sed "s/-Wdeclaration-after-statement//" | sed "s/-I/$ISYSTEM/") 2>/dev/null`
|
|
if test -z "$PERL5CCFLAGS" ; then
|
|
AC_MSG_RESULT(not found)
|
|
else
|
|
AC_MSG_RESULT($PERL5CCFLAGS)
|
|
fi
|
|
AC_MSG_CHECKING(for Perl5 ccdlflags)
|
|
PERL5CCDLFLAGS=`($PERL -e 'use Config; print $Config{ccdlflags}, "\n"') 2>/dev/null`
|
|
if test -z "$PERL5CCDLFLAGS" ; then
|
|
AC_MSG_RESULT(not found)
|
|
else
|
|
AC_MSG_RESULT($PERL5CCDLFLAGS)
|
|
fi
|
|
AC_MSG_CHECKING(for Perl5 cccdlflags)
|
|
PERL5CCCDLFLAGS=`($PERL -e 'use Config; print $Config{cccdlflags}, "\n"') 2>/dev/null`
|
|
if test -z "$PERL5CCCDLFLAGS" ; then
|
|
AC_MSG_RESULT(not found)
|
|
else
|
|
AC_MSG_RESULT($PERL5CCCDLFLAGS)
|
|
fi
|
|
AC_MSG_CHECKING(for Perl5 ldflags)
|
|
PERL5LDFLAGS=`($PERL -e 'use Config; print $Config{ldflags}, "\n"') 2>/dev/null`
|
|
if test -z "$PERL5LDFLAGS" ; then
|
|
AC_MSG_RESULT(not found)
|
|
else
|
|
AC_MSG_RESULT($PERL5LDFLAGS)
|
|
fi
|
|
AC_MSG_CHECKING(for Perl5 Test::More module) # For test-suite
|
|
PERL5TESTMORE=`($PERL -e 'use Test::More; print "good";') 2>/dev/null`
|
|
if test -z "$PERL5TESTMORE" ; then
|
|
AC_MSG_RESULT(not found)
|
|
else
|
|
AC_MSG_RESULT(found)
|
|
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)
|
|
fi
|
|
|
|
# Cygwin (Windows) needs the library for dynamic linking
|
|
case $host in
|
|
*-*-cygwin* | *-*-mingw*) PERL5DYNAMICLINKING="-L$PERL5EXT -l$PERL5LIB";;
|
|
*)PERL5DYNAMICLINKING="";;
|
|
esac
|
|
fi
|
|
|
|
AC_SUBST(PERL)
|
|
AC_SUBST(PERL5EXT)
|
|
AC_SUBST(PERL5DYNAMICLINKING)
|
|
AC_SUBST(PERL5LIB)
|
|
AC_SUBST(PERL5CCFLAGS)
|
|
AC_SUBST(PERL5CCDLFLAGS)
|
|
AC_SUBST(PERL5CCCDLFLAGS)
|
|
AC_SUBST(PERL5LDFLAGS)
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for Octave
|
|
#----------------------------------------------------------------
|
|
|
|
OCTAVEBIN=
|
|
OCTAVE_SO=.oct
|
|
|
|
AC_ARG_WITH(octave, AS_HELP_STRING([--without-octave], [Disable Octave])
|
|
AS_HELP_STRING([--with-octave=path], [Set location of Octave executable]),[OCTAVEBIN="$withval"], [OCTAVEBIN=yes])
|
|
|
|
# First, check for "--without-octave" or "--with-octave=no".
|
|
if test x"${OCTAVEBIN}" = xno -o x"${with_alllang}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling Octave])
|
|
OCTAVE=
|
|
|
|
# First figure out what the name of Octave is
|
|
elif test "x$OCTAVEBIN" = xyes; then
|
|
AC_PATH_PROG(OCTAVE, [octave])
|
|
|
|
else
|
|
OCTAVE="$OCTAVEBIN"
|
|
fi
|
|
|
|
if test -n "$OCTAVE"; then
|
|
AC_MSG_CHECKING([for mkoctfile])
|
|
mkoctfile="$(dirname $OCTAVE)/$(basename $OCTAVE | sed -e 's/octave/mkoctfile/')"
|
|
AS_IF([test -x "${mkoctfile}"],[
|
|
AC_MSG_RESULT([${mkoctfile}])
|
|
],[
|
|
AC_MSG_RESULT([not found, disabling Octave])
|
|
OCTAVE=
|
|
])
|
|
fi
|
|
if test -n "$OCTAVE"; then
|
|
AC_MSG_CHECKING([for Octave preprocessor flags])
|
|
OCTAVE_CPPFLAGS=
|
|
for var in CPPFLAGS INCFLAGS ALL_CXXFLAGS; do
|
|
for flag in `env - ${mkoctfile} -p ${var}`; do
|
|
case ${flag} in
|
|
-D*|-I*) OCTAVE_CPPFLAGS="${OCTAVE_CPPFLAGS} ${flag}";;
|
|
*) ;;
|
|
esac
|
|
done
|
|
done
|
|
AC_MSG_RESULT([$OCTAVE_CPPFLAGS])
|
|
AC_MSG_CHECKING([for Octave compiler flags])
|
|
OCTAVE_CXXFLAGS=
|
|
for var in ALL_CXXFLAGS; do
|
|
for flag in `env - ${mkoctfile} -p ${var}`; do
|
|
case ${flag} in
|
|
-g*|-W*) OCTAVE_CXXFLAGS="${OCTAVE_CXXFLAGS} ${flag}";;
|
|
*) ;;
|
|
esac
|
|
done
|
|
done
|
|
save_CXXFLAGS="${CXXFLAGS}"
|
|
CXXFLAGS="-Werror -O0"
|
|
AC_COMPILE_IFELSE([
|
|
AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],[])
|
|
],[
|
|
OCTAVE_CXXFLAGS="${OCTAVE_CXXFLAGS} -O0"
|
|
])
|
|
CXXFLAGS="${save_CXXFLAGS}"
|
|
AC_MSG_RESULT([$OCTAVE_CXXFLAGS])
|
|
AC_MSG_CHECKING([for Octave linker flags])
|
|
OCTAVE_LDFLAGS=
|
|
for var in RDYNAMIC_FLAG LFLAGS RLD_FLAG OCTAVE_LIBS LIBS; do
|
|
OCTAVE_LDFLAGS="${OCTAVE_LDFLAGS} "`env - ${mkoctfile} -p ${var}`
|
|
done
|
|
AC_MSG_RESULT([$OCTAVE_LDFLAGS])
|
|
for octave_opt in --silent --norc --no-history --no-window-system; do
|
|
AC_MSG_CHECKING([if Octave option '${octave_opt}' is supported])
|
|
octave_out=`${OCTAVE} ${octave_opt} /dev/null 2>&1 | sed -n '1p' | sed -n '/unrecognized/p'`
|
|
AS_IF([test "x${octave_out}" = x],[
|
|
AC_MSG_RESULT([yes])
|
|
OCTAVE="${OCTAVE} ${octave_opt}"
|
|
],[
|
|
AC_MSG_RESULT([no])
|
|
])
|
|
done
|
|
fi
|
|
|
|
AC_SUBST(OCTAVE)
|
|
AC_SUBST(OCTAVE_SO)
|
|
AC_SUBST(OCTAVE_CPPFLAGS)
|
|
AC_SUBST(OCTAVE_CXXFLAGS)
|
|
AC_SUBST(OCTAVE_LDFLAGS)
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for Scilab
|
|
#----------------------------------------------------------------
|
|
|
|
AC_ARG_WITH(scilab, AS_HELP_STRING([--without-scilab], [Disable Scilab])
|
|
AS_HELP_STRING([--with-scilab=path], [Set location of Scilab executable]),[SCILABBIN="$withval"], [SCILABBIN=yes])
|
|
AC_ARG_WITH(scilab-inc, [ --with-scilab-inc=path Set location of Scilab include directory], [SCILABINCDIR="$withval"], [SCILABINCDIR=""])
|
|
|
|
# First, check for "--without-scilab" or "--with-scilab=no".
|
|
if test x"${SCILABBIN}" = xno -o x"${with_alllang}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling Scilab])
|
|
SCILAB=
|
|
else
|
|
# Check for Scilab executable
|
|
if test "x$SCILABBIN" = xyes; then
|
|
AC_CHECK_PROGS(SCILAB, scilab)
|
|
else
|
|
AC_MSG_CHECKING(for scilab)
|
|
if test -f "$SCILABBIN"; then
|
|
AC_MSG_RESULT($SCILABBIN)
|
|
SCILAB="$SCILABBIN"
|
|
else
|
|
AC_MSG_RESULT(not found)
|
|
fi
|
|
fi
|
|
|
|
if test -n "$SCILAB"; then
|
|
# Check for Scilab version (needs api_scilab so needs version 5.3.3 or higher)
|
|
SCILAB_FULL_VERSION=`$SCILAB -version | head -1 | sed -e 's|Scilab version \"\(.*\)\"|\1|g'`
|
|
|
|
AC_MSG_CHECKING(Scilab version is 5.3.3 or higher)
|
|
SCILAB_MAJOR_VERSION=`echo $SCILAB_FULL_VERSION | cut -d. -f1`
|
|
SCILAB_MINOR_VERSION=`echo $SCILAB_FULL_VERSION | cut -d. -f2`
|
|
SCILAB_MAINTENANCE_VERSION=`echo $SCILAB_FULL_VERSION | cut -d. -f3`
|
|
SCILAB_VERSION="$SCILAB_MAJOR_VERSION$SCILAB_MINOR_VERSION$SCILAB_MAINTENANCE_VERSION"
|
|
|
|
if test $SCILAB_VERSION -ge 533; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
SCILAB=
|
|
fi
|
|
|
|
if test -n "$SCILAB"; then
|
|
# Set Scilab startup options depending on version
|
|
AC_MSG_CHECKING(for Scilab startup options)
|
|
SCILABOPT="-nwni -nb"
|
|
if test $SCILAB_VERSION -ge 540; then
|
|
SCILABOPT+=" -noatomsautoload"
|
|
fi
|
|
AC_MSG_RESULT($SCILABOPT)
|
|
|
|
# Check for Scilab header files
|
|
AC_MSG_CHECKING(for Scilab header files)
|
|
if test "$SCILABINCDIR" != ""; then
|
|
dirs="$SCILABINCDIR"
|
|
elif test -n "$PKGCONFIG"; then
|
|
dirs=`$PKGCONFIG scilab --cflags-only-I | sed -e 's/-I//g'`
|
|
else
|
|
dirs=""
|
|
fi
|
|
for i in $dirs; do
|
|
if test -r $i/api_scilab.h; then
|
|
AC_MSG_RESULT($i)
|
|
SCILABINCLUDE="-I$i"
|
|
break;
|
|
fi
|
|
if test -r $i/scilab/api_scilab.h; then
|
|
AC_MSG_RESULT($i/scilab)
|
|
SCILABINCLUDE="-I$i/scilab"
|
|
break;
|
|
fi
|
|
done
|
|
if test "$SCILABINCLUDE" = "" ; then
|
|
AC_MSG_RESULT(not found)
|
|
SCILAB=
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(SCILAB)
|
|
AC_SUBST(SCILABINCLUDE)
|
|
AC_SUBST(SCILABOPT)
|
|
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for java
|
|
#----------------------------------------------------------------
|
|
|
|
AC_ARG_WITH(java, AS_HELP_STRING([--without-java], [Disable Java])
|
|
AS_HELP_STRING([--with-java=path], [Set location of java executable]),[JAVABIN="$withval"], [JAVABIN=yes])
|
|
AC_ARG_WITH(javac, [ --with-javac=path Set location of javac executable],[JAVACBIN="$withval"], [JAVACBIN=])
|
|
|
|
# First, check for "--without-java" or "--with-java=no".
|
|
if test x"${JAVABIN}" = xno -o x"${with_alllang}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling Java])
|
|
JAVA=
|
|
else
|
|
|
|
if test "x$JAVABIN" = xyes; 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=])
|
|
|
|
JAVAINC=""
|
|
if test -z "$JAVAINCDIR" ; then
|
|
JAVAINCDIR="/usr/j2sdk*/include /usr/local/j2sdk*/include /usr/jdk*/include /usr/local/jdk*/include /opt/j2sdk*/include /opt/jdk*/include /usr/java/include /usr/java/j2sdk*/include /usr/java/jdk*/include /usr/local/java/include /opt/java/include /usr/include/java /usr/local/include/java /usr/lib/java/include /usr/lib/jvm/java*/include /usr/lib64/jvm/java*/include /usr/include/kaffe /usr/local/include/kaffe /usr/include"
|
|
|
|
# Add in default installation directory on Windows for Cygwin
|
|
case $host in
|
|
*-*-cygwin* | *-*-mingw*) JAVAINCDIR="c:/Program*Files*/Java/jdk*/include d:/Program*Files*/Java/jdk*/include c:/j2sdk*/include d:/j2sdk*/include c:/jdk*/include d:/jdk*/include $JAVAINCDIR";;
|
|
*-*-darwin*) JAVAINCDIR="/System/Library/Frameworks/JavaVM.framework/Headers $JAVAINCDIR";;
|
|
*);;
|
|
esac
|
|
|
|
for d in $JAVAINCDIR ; do
|
|
if test -r "$d/jni.h" ; then
|
|
JAVAINCDIR=$d
|
|
JAVAINC=-I\"$d\"
|
|
break
|
|
fi
|
|
done
|
|
else
|
|
if test -r "$JAVAINCDIR/jni.h" ; then
|
|
JAVAINC=-I\"$JAVAINCDIR\"
|
|
fi
|
|
fi
|
|
|
|
if test "$JAVAINC" = "" ; then
|
|
AC_MSG_RESULT(not found)
|
|
else
|
|
AC_MSG_RESULT($JAVAINC)
|
|
# now look for <arch>/jni_md.h
|
|
AC_MSG_CHECKING(for java include file jni_md.h)
|
|
JAVAMDDIR=`find "$JAVAINCDIR" -follow -name jni_md.h -print`
|
|
if test "$JAVAMDDIR" = "" ; then
|
|
AC_MSG_RESULT(not found)
|
|
else
|
|
JAVAMDDIR=-I\"`dirname "$JAVAMDDIR" | tail -1`\"
|
|
AC_MSG_RESULT($JAVAMDDIR)
|
|
JAVAINC="${JAVAINC} ${JAVAMDDIR}"
|
|
fi
|
|
fi
|
|
|
|
case $host in
|
|
*-*-cygwin*)
|
|
# TODO: Only use this flag if the compiler supports it, later versions of gcc no longer have it
|
|
GCC_MNO_CYGWIN=" -mno-cygwin"
|
|
;;
|
|
*)
|
|
GCC_MNO_CYGWIN=""
|
|
;;
|
|
esac
|
|
|
|
# java.exe on Cygwin requires the Windows standard (Pascal) calling convention as it is a normal Windows executable and not a Cygwin built executable
|
|
case $host in
|
|
*-*-cygwin* | *-*-mingw*)
|
|
if test "$GCC" = yes; then
|
|
JAVADYNAMICLINKING="$GCC_MNO_CYGWIN -mthreads -Wl,--add-stdcall-alias"
|
|
JAVACFLAGS="$GCC_MNO_CYGWIN -mthreads"
|
|
else
|
|
JAVADYNAMICLINKING=""
|
|
JAVACFLAGS=""
|
|
fi ;;
|
|
*-*-darwin*)
|
|
JAVADYNAMICLINKING="-dynamiclib -framework JavaVM"
|
|
JAVACFLAGS=""
|
|
;;
|
|
*)
|
|
JAVADYNAMICLINKING=""
|
|
JAVACFLAGS=""
|
|
;;
|
|
esac
|
|
|
|
# Java on Windows platforms including Cygwin doesn't use libname.dll, rather name.dll when loading dlls
|
|
case $host in
|
|
*-*-cygwin* | *-*-mingw*) JAVALIBRARYPREFIX="";;
|
|
*)JAVALIBRARYPREFIX="lib";;
|
|
esac
|
|
|
|
# Java on Mac OS X tweaks
|
|
case $host in
|
|
*-*-darwin*)
|
|
JAVASO=".jnilib"
|
|
JAVALDSHARED='$(CC)'
|
|
JAVACXXSHARED='$(CXX)'
|
|
;;
|
|
*)
|
|
JAVASO=$SO
|
|
JAVALDSHARED='$(LDSHARED)'
|
|
JAVACXXSHARED='$(CXXSHARED)'
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
# Quote for spaces in path to executables
|
|
if test -n "$JAVA"; then
|
|
JAVA=\"$JAVA\"
|
|
fi
|
|
if test -n "$JAVAC"; then
|
|
JAVAC=\"$JAVAC\"
|
|
fi
|
|
|
|
|
|
AC_SUBST(JAVA)
|
|
AC_SUBST(JAVAC)
|
|
AC_SUBST(JAVAINC)
|
|
AC_SUBST(JAVADYNAMICLINKING)
|
|
AC_SUBST(JAVALIBRARYPREFIX)
|
|
AC_SUBST(JAVASO)
|
|
AC_SUBST(JAVALDSHARED)
|
|
AC_SUBST(JAVACXXSHARED)
|
|
AC_SUBST(JAVACFLAGS)
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for Javascript
|
|
#----------------------------------------------------------------
|
|
AC_ARG_WITH(javascript, AS_HELP_STRING([--without-javascript], [Disable Javascript]), [with_javascript="$withval"], [with_javascript=yes])
|
|
|
|
# First, check for "--without-javascript" or "--with-javascript=no".
|
|
if test x"${with_javascript}" = xno -o x"${with_alllang}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling Javascript])
|
|
JAVASCRIPT=
|
|
else
|
|
JAVASCRIPT=1
|
|
|
|
#----------------------------------------------------------------
|
|
# General Javascript settings shared by JSC and V8
|
|
#----------------------------------------------------------------
|
|
|
|
case $host in
|
|
*-*-darwin*)
|
|
JSSO=".dylib"
|
|
# HACK: didn't manage to get dynamic module loading working with a g++ compiled interpreter
|
|
JSINTERPRETERCXX='c++'
|
|
JSINTERPRETERLINKFLAGS='-g -Wl,-search_paths_first -Wl,-headerpad_max_install_names'
|
|
;;
|
|
*)
|
|
JSSO=$SO
|
|
JSINTERPRETERCXX='$(CXX)'
|
|
JSINTERPRETERLINKFLAGS='-ldl'
|
|
;;
|
|
esac
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for Node.js which is the default Javascript engine
|
|
#----------------------------------------------------------------
|
|
|
|
AC_CHECK_PROGS(NODEJS, node)
|
|
|
|
if test -n "$NODEJS"; then
|
|
# node-gyp is needed to run the test-suite/examples
|
|
AC_CHECK_PROGS(NODEGYP, node-gyp)
|
|
if test -z "$NODEGYP"; then
|
|
NODEJS=
|
|
fi
|
|
fi
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for JavascriptCore (Webkit) settings (JSCOREINCDIR, JSCOREDYNAMICLINKING)
|
|
#----------------------------------------------------------------
|
|
|
|
# check for include files
|
|
AC_MSG_CHECKING(for JavaScriptCore/JavaScript.h)
|
|
AC_ARG_WITH(jscoreinc, [ --with-jscinc=path Set location of Javascript include directory], [JSCOREINCDIR="$withval"], [JSCOREINCDIR=])
|
|
|
|
JSCOREVERSION=
|
|
|
|
if test -z "$JSCOREINCDIR"; then
|
|
JSCOREINCDIR="/usr/include/ /usr/local/include/"
|
|
|
|
# Add in default directory for JavaScriptCore headers for Linux and MacOSX
|
|
case $host in
|
|
*-*-linux*)
|
|
JSCOREINCDIR="/usr/include/webkit-1.0/ /usr/include/webkitgtk-1.0/ /usr/local/include/webkit-1.0/JavaScriptCore/ $JSCOREINCDIR"
|
|
;;
|
|
*-*-darwin*)
|
|
JSCOREINCDIR="/System/Library/Frameworks/JavaScriptCore.framework/Headers/ $JSCOREINCDIR"
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
for d in $JSCOREINCDIR ; do
|
|
if test -r "$d/JavaScriptCore/JavaScript.h" || test -r "$d/JavaScript.h" ; then
|
|
AC_MSG_RESULT($d)
|
|
JSCOREINCDIR=$d
|
|
JSCOREINC=-I\"$d\"
|
|
break
|
|
fi
|
|
done
|
|
|
|
if test "$JSCOREINC" = "" ; then
|
|
AC_MSG_RESULT(not found)
|
|
fi
|
|
|
|
# check for JavaScriptCore/Webkit libraries
|
|
AC_ARG_WITH(jscorelib,[ --with-jsclib =path Set location of the JavaScriptCore/Webkit library directory],[JSCORELIB="-L$withval"], [JSCORELIB=])
|
|
|
|
if test -z "$JSCORELIB" -a -n "$PKGCONFIG"; then
|
|
AC_MSG_CHECKING(for JavaScriptCore/Webkit library)
|
|
if pkg-config javascriptcoregtk-1.0; then
|
|
JSCORELIB=`$PKGCONFIG --libs javascriptcoregtk-1.0`
|
|
JSCOREVERSION=`$PKGCONFIG --modversion javascriptcoregtk-1.0`
|
|
fi
|
|
if test -z "$JSCORELIB"; then
|
|
AC_MSG_RESULT(not found)
|
|
JSCENABLED=
|
|
else
|
|
AC_MSG_RESULT([$JSCORELIB])
|
|
JSCOREDYNAMICLINKING="$JSCORELIB"
|
|
JSCENABLED=1
|
|
fi
|
|
fi
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for V8 settings (JSV8INCDIR, JSV8DYNAMICLINKING)
|
|
#----------------------------------------------------------------
|
|
|
|
# check for include files
|
|
AC_MSG_CHECKING(for V8 Javascript v8.h)
|
|
AC_ARG_WITH(jsv8inc, [ --with-jsv8inc=path Set location of Javascript v8 include directory], [JSV8INCDIR="$withval"])
|
|
|
|
# if not include dir is specified we try to find
|
|
if test -z "$JSV8INCDIR"; then
|
|
# Add in default directory for JavaScriptCore headers for Linux and MacOSX
|
|
case $host in
|
|
*-*-linux*)
|
|
JSV8INCDIR="/usr/include /usr/local/include/ $JSV8INCDIR"
|
|
;;
|
|
*-*-darwin*)
|
|
JSV8INCDIR="$JSV8INCDIR"
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
for d in $JSV8INCDIR ; do
|
|
if test -r "$d/v8.h" ; then
|
|
JSV8INCDIR=$d
|
|
JSV8INC=-I\"$d\"
|
|
break
|
|
fi
|
|
done
|
|
|
|
if test "$JSV8INC" = "" ; then
|
|
AC_MSG_RESULT(not found)
|
|
else
|
|
AC_MSG_RESULT($JSV8INCDIR)
|
|
fi
|
|
|
|
# check for V8 library
|
|
AC_MSG_CHECKING(for V8 Javascript library)
|
|
AC_ARG_WITH(jsv8lib,[ --with-jsv8lib=path Set location of V8 Javascript library directory],[JSV8LIBDIR="$withval"], [JSV8LIB=])
|
|
|
|
v8libdirs="$JSV8LIBDIR /usr/lib64/ /usr/local/lib64/ /usr/lib/ /usr/local/lib/"
|
|
for d in $v8libdirs ; do
|
|
if test -r $d/libv8$JSSO; then
|
|
JSV8LIBDIR=$d
|
|
JSV8LIB="-L$d -lv8"
|
|
break
|
|
fi
|
|
done
|
|
|
|
if test "$JSV8LIB" = "" ; then
|
|
AC_MSG_RESULT(not found)
|
|
JSV8ENABLED=
|
|
else
|
|
AC_MSG_RESULT($JSV8LIBDIR)
|
|
JSV8ENABLED=1
|
|
fi
|
|
|
|
|
|
# linking options
|
|
case $host in
|
|
*-*-darwin*)
|
|
JSV8DYNAMICLINKING="$JSV8LIB"
|
|
;;
|
|
*-*-linux*)
|
|
JSV8DYNAMICLINKING="$JSV8LIB"
|
|
;;
|
|
*)
|
|
JSV8DYNAMICLINKING=""
|
|
;;
|
|
esac
|
|
|
|
fi
|
|
|
|
AC_SUBST(JSINTERPRETERCXX)
|
|
AC_SUBST(JSINTERPRETERLINKFLAGS)
|
|
|
|
AC_SUBST(JSCOREINC)
|
|
AC_SUBST(JSCOREDYNAMICLINKING)
|
|
AC_SUBST(JSCOREVERSION)
|
|
AC_SUBST(JSV8INC)
|
|
AC_SUBST(JSV8DYNAMICLINKING)
|
|
|
|
AC_SUBST(JSCENABLED)
|
|
AC_SUBST(JSV8ENABLED)
|
|
|
|
AC_SUBST(NODEJS)
|
|
AC_SUBST(NODEGYP)
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for gcj
|
|
#----------------------------------------------------------------
|
|
|
|
AC_ARG_WITH(gcj, AS_HELP_STRING([--without-gcj], [Disable GCJ])
|
|
AS_HELP_STRING([--with-gcj=path], [Set location of gcj executable]),[GCJBIN="$withval"], [GCJBIN=yes])
|
|
AC_ARG_WITH(gcjh, [ --with-gcjh=path Set location of gcjh executable],[GCJHBIN="$withval"], [GCJHBIN=])
|
|
|
|
# First, check for "--without-gcj" or "--with-gcj=no".
|
|
if test x"${GCJBIN}" = xno -o x"${with_alllang}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling GCJ])
|
|
else
|
|
if test "x$GCJBIN" = xyes; then
|
|
AC_CHECK_PROGS(GCJ, gcj)
|
|
else
|
|
GCJ="$GCJBIN"
|
|
fi
|
|
|
|
if test -z "$GCJCBIN"; then
|
|
AC_CHECK_PROGS(GCJH, gcjh)
|
|
else
|
|
GCJH="$GCJHBIN"
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(GCJ)
|
|
AC_SUBST(GCJH)
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for Android
|
|
#----------------------------------------------------------------
|
|
|
|
AC_ARG_WITH(android, AS_HELP_STRING([--without-android], [Disable Android])
|
|
AS_HELP_STRING([--with-android=path], [Set location of android executable]),[ANDROIDBIN="$withval"], [ANDROIDBIN=yes])
|
|
AC_ARG_WITH(adb, [ --with-adb=path Set location of adb executable - Android Debug Bridge],[ADBBIN="$withval"], [ADBBIN=])
|
|
AC_ARG_WITH(ant, [ --with-ant=path Set location of ant executable for Android],[ANTBIN="$withval"], [ANTBIN=])
|
|
AC_ARG_WITH(ndk-build, [ --with-ndk-build=path Set location of Android ndk-build executable],[NDKBUILDBIN="$withval"], [NDKBUILDBIN=])
|
|
|
|
# First, check for "--without-android" or "--with-android=no".
|
|
if test x"${ANDROIDBIN}" = xno -o x"${with_alllang}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling Android])
|
|
ANDROID=
|
|
else
|
|
if test "x$ANDROIDBIN" = xyes; then
|
|
AC_CHECK_PROGS(ANDROID, android)
|
|
else
|
|
ANDROID="$ANDROIDBIN"
|
|
fi
|
|
|
|
if test -z "$ADBBIN"; then
|
|
AC_CHECK_PROGS(ADB, adb)
|
|
else
|
|
ADB="$ADBBIN"
|
|
fi
|
|
|
|
if test -z "$ANTBIN"; then
|
|
AC_CHECK_PROGS(ANT, ant)
|
|
else
|
|
ANT="$ANTBIN"
|
|
fi
|
|
|
|
if test -z "$NDKBUILDBIN"; then
|
|
AC_CHECK_PROGS(NDKBUILD, ndk-build)
|
|
else
|
|
NDKBUILD="$NDKBUILDBIN"
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(ANDROID)
|
|
AC_SUBST(ADB)
|
|
AC_SUBST(ANT)
|
|
AC_SUBST(NDKBUILD)
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for Guile
|
|
#----------------------------------------------------------------
|
|
|
|
GUILE=
|
|
GUILE_CFLAGS=
|
|
GUILE_LIBS=
|
|
|
|
AC_ARG_WITH(guile-config, AS_HELP_STRING([--without-guile], [Disable Guile])
|
|
AS_HELP_STRING([--with-guile-config=path], [Set location of guile-config]),[ GUILE_CONFIG="$withval"], [GUILE_CONFIG=])
|
|
AC_ARG_WITH(guile,[ --with-guile=path Set location of Guile executable],[
|
|
GUILE="$withval"], [GUILE=yes])
|
|
AC_ARG_WITH(guile-cflags,[ --with-guile-cflags=cflags Set cflags required to compile against Guile],[
|
|
GUILE_CFLAGS="$withval"])
|
|
AC_ARG_WITH(guile-libs,[ --with-guile-libs=ldflags Set ldflags needed to link with Guile],[
|
|
GUILE_LIBS="$withval"])
|
|
|
|
# First, check for "--without-guile" or "--with-guile=no".
|
|
if test x"${GUILE}" = xno -o x"${with_alllang}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling Guile])
|
|
else
|
|
if test -z "$GUILE_CONFIG" ; then
|
|
AC_PATH_PROG(GUILE_CONFIG, guile-config)
|
|
fi
|
|
if test -n "$GUILE_CONFIG" ; then
|
|
if test x"$GUILE" = xyes; then
|
|
AC_MSG_CHECKING([for guile bindir])
|
|
guile_bindir="`$GUILE_CONFIG info bindir`"
|
|
AC_MSG_RESULT([$guile_bindir])
|
|
GUILE=$guile_bindir/guile
|
|
if ! test -f "$GUILE" ; then
|
|
GUILE=
|
|
AC_PATH_PROG(GUILE, guile)
|
|
fi
|
|
fi
|
|
|
|
if test -f "$GUILE" ; then
|
|
AC_MSG_CHECKING([for guile version])
|
|
guile_version=`$GUILE -c '(display (effective-version))'`
|
|
AC_MSG_RESULT([$guile_version])
|
|
AC_MSG_CHECKING([for guile version >= 1.8])
|
|
guile_good_version=`$GUILE -c '(if (>= (string->number (effective-version)) 1.8) (display "yes") (display "no"))'`
|
|
AC_MSG_RESULT([$guile_good_version])
|
|
if test x"$guile_good_version" != xyes ; then
|
|
GUILE=
|
|
fi
|
|
fi
|
|
|
|
if test -z "$GUILE_CFLAGS" ; then
|
|
AC_MSG_CHECKING([for guile compile flags])
|
|
GUILE_CFLAGS="`$GUILE_CONFIG compile`" # Note that this can sometimes be empty
|
|
AC_MSG_RESULT([$GUILE_CFLAGS])
|
|
fi
|
|
|
|
if test -z "$GUILE_LIBS" ; then
|
|
AC_MSG_CHECKING([for guile link flags])
|
|
GUILE_LIBS="`$GUILE_CONFIG link`"
|
|
AC_MSG_RESULT([$GUILE_LIBS])
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(GUILE)
|
|
AC_SUBST(GUILE_CFLAGS)
|
|
AC_SUBST(GUILE_LIBS)
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for MzScheme
|
|
#----------------------------------------------------------------
|
|
|
|
AC_ARG_WITH(mzscheme, AS_HELP_STRING([--without-mzscheme], [Disable MzScheme])
|
|
AS_HELP_STRING([--with-mzscheme=path], [Set location of MzScheme executable]),[ MZSCHEMEBIN="$withval"], [MZSCHEMEBIN=yes])
|
|
AC_ARG_WITH(mzc, AS_HELP_STRING([--with-mzc=path], [Set location of MzScheme's mzc]), [ MZCBIN="$withval"], [MZCBIN=])
|
|
|
|
# First, check for "--without-mzscheme" or "--with-mzscheme=no".
|
|
if test x"${MZSCHEMEBIN}" = xno -o x"${with_alllang}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling MzScheme])
|
|
MZC=
|
|
else
|
|
if test "x$MZSCHEMEBIN" = xyes; then
|
|
AC_PATH_PROG(MZSCHEME, mzscheme)
|
|
else
|
|
MZSCHEME="$MZSCHEMEBIN"
|
|
fi
|
|
|
|
if test -z "$MZCBIN"; then
|
|
AC_PATH_PROG(MZC, mzc)
|
|
fi
|
|
|
|
if test -n "$MZSCHEME"; then
|
|
AC_MSG_CHECKING(for MzScheme dynext object)
|
|
MZDYNOBJ=`$MZSCHEME --eval '(begin (require dynext/link) (with-handlers (((lambda args #t) (lambda args #f))) (for-each (lambda (x) (printf "~a" x)) (expand-for-link-variant (current-standard-link-libraries)))))' 2>/dev/null`
|
|
if test -f "$MZDYNOBJ"; then
|
|
:
|
|
else
|
|
# older versions (3.72 approx and earlier)
|
|
MZDYNOBJ=`$MZSCHEME --mute-banner --version --eval '(begin (require (lib "link.ss" "dynext")) (with-handlers (((lambda args #t) (lambda args #f))) (for-each (lambda (x) (display x) (display " ")) ((current-make-standard-link-libraries)))) (with-handlers (((lambda args #t) (lambda args #f))) (for-each (lambda (x) (display x)) (expand-for-link-variant (current-standard-link-libraries)))))' 2>/dev/null`
|
|
fi
|
|
if test -f "$MZDYNOBJ"; then
|
|
AC_MSG_RESULT($MZDYNOBJ)
|
|
else
|
|
AC_MSG_RESULT(not found)
|
|
MZDYNOBJ=""
|
|
fi
|
|
fi
|
|
fi
|
|
AC_SUBST(MZDYNOBJ)
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for Ruby
|
|
#----------------------------------------------------------------
|
|
|
|
RUBYBIN=
|
|
|
|
AC_ARG_WITH(ruby, AS_HELP_STRING([--without-ruby], [Disable Ruby])
|
|
AS_HELP_STRING([--with-ruby=path], [Set location of Ruby executable]),[ RUBYBIN="$withval"], [RUBYBIN=yes])
|
|
|
|
# First, check for "--without-ruby" or "--with-ruby=no".
|
|
RUBYSO=$SO
|
|
if test x"${RUBYBIN}" = xno -o x"${with_alllang}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling Ruby])
|
|
RUBY=
|
|
else
|
|
|
|
# First figure out what the name of Ruby is
|
|
|
|
if test "x$RUBYBIN" = xyes; then
|
|
AC_CHECK_PROGS(RUBY, ruby)
|
|
else
|
|
RUBY="$RUBYBIN"
|
|
fi
|
|
|
|
AC_MSG_CHECKING(for Ruby header files)
|
|
if test -n "$RUBY"; then
|
|
# Try Ruby1.9+ first
|
|
RUBYDIR=`($RUBY -rrbconfig -e 'print RbConfig::CONFIG[["rubyhdrdir"]] || $rubyhdrdir') 2>/dev/null`
|
|
if test x"$RUBYDIR" = x"" || test x"$RUBYDIR" = x"nil"; then
|
|
RUBYDIR=`($RUBY -rrbconfig -e 'print RbConfig::CONFIG[["archdir"]] || $archdir') 2>/dev/null`
|
|
else
|
|
RUBYARCH=`($RUBY -rrbconfig -e 'print RbConfig::CONFIG[["arch"]] || $arch') 2>/dev/null`
|
|
fi
|
|
if test x"$RUBYDIR" != x""; then
|
|
dirs="$RUBYDIR"
|
|
RUBYINCLUDE=
|
|
for i in $dirs; do
|
|
if test -r $i/ruby.h; then
|
|
if test x"$RUBYARCH" = x""; then
|
|
RUBYINCLUDE="-I$i"
|
|
else
|
|
RUBYINCLUDE="-I$i -I$i/$RUBYARCH"
|
|
fi
|
|
AC_MSG_RESULT($RUBYINCLUDE)
|
|
break
|
|
fi
|
|
done
|
|
if test x"$RUBYINCLUDE" = x""; then
|
|
AC_MSG_RESULT(could not locate ruby.h)
|
|
fi
|
|
|
|
# Find library and path for linking.
|
|
AC_MSG_CHECKING(for Ruby library)
|
|
RUBYLIB=""
|
|
rb_libdir=`($RUBY -rrbconfig -e 'print RbConfig::CONFIG[["libdir"]]') 2>/dev/null`
|
|
rb_bindir=`($RUBY -rrbconfig -e 'print RbConfig::CONFIG[["bindir"]]') 2>/dev/null`
|
|
dirs="$dirs $rb_libdir $rb_bindir"
|
|
|
|
rb_libruby=`($RUBY -rrbconfig -e 'print RbConfig::CONFIG[["LIBRUBY_A"]]') 2>/dev/null`
|
|
RUBYLINK=`($RUBY -rrbconfig -e '
|
|
c = RbConfig::CONFIG
|
|
if c.has_key? "LIBRUBYARG_STATIC" # 1.8.x
|
|
if c[["LIBRUBY"]] == c[["LIBRUBY_A"]]
|
|
link = c[["LIBRUBYARG_STATIC"]]
|
|
else
|
|
link = c[["LIBRUBYARG_SHARED"]]
|
|
end
|
|
else # 1.6.x
|
|
link = "-l" + c[["RUBY_INSTALL_NAME"]]
|
|
end
|
|
|
|
# Get the target Ruby was built for
|
|
target = c[["target"]]
|
|
|
|
if target == "i386-pc-mswin32"
|
|
# Need to change msvcrt-ruby*.lib to -lmsvcrt-ruby*
|
|
ext = File.extname(link)
|
|
# Get index that counts backwards from end of string
|
|
index = -1 - ext.size
|
|
# Strip off the extension
|
|
link = link.slice(0..index)
|
|
puts "-l#{link}"
|
|
else
|
|
puts link
|
|
end') 2>/dev/null`
|
|
|
|
if test "$rb_libruby" != ""; then
|
|
for i in $dirs; do
|
|
if (test -r $i/$rb_libruby;) then
|
|
RUBYLIB="$i"
|
|
break
|
|
fi
|
|
done
|
|
fi
|
|
if test "$RUBYLIB" = ""; then
|
|
RUBYLIB="$RUBYDIR"
|
|
AC_MSG_RESULT(not found... using $RUBYDIR)
|
|
else
|
|
AC_MSG_RESULT($RUBYLINK in $RUBYLIB)
|
|
fi
|
|
else
|
|
AC_MSG_RESULT(unable to determine ruby configuration)
|
|
fi
|
|
|
|
case $host in
|
|
*-*-mingw*) ;; # do nothing, the default windows libraries are already included
|
|
*) RUBYLINK="$RUBYLINK `($RUBY -rrbconfig -e 'print RbConfig::CONFIG[["LIBS"]]') 2>/dev/null`";;
|
|
esac
|
|
|
|
RUBYCCDLFLAGS=`($RUBY -rrbconfig -e 'print RbConfig::CONFIG[["CCDLFLAGS"]]') 2>/dev/null`
|
|
RUBYSO=.`($RUBY -rrbconfig -e 'print RbConfig::CONFIG[["DLEXT"]]') 2>/dev/null`
|
|
else
|
|
AC_MSG_RESULT(could not figure out how to run ruby)
|
|
fi
|
|
|
|
case $host in
|
|
*-*-cygwin* | *-*-mingw*) RUBYDYNAMICLINKING="-L$RUBYLIB $RUBYLINK";;
|
|
*) RUBYDYNAMICLINKING="";;
|
|
esac
|
|
fi
|
|
|
|
AC_SUBST(RUBYINCLUDE)
|
|
AC_SUBST(RUBYLIB)
|
|
AC_SUBST(RUBYLINK)
|
|
AC_SUBST(RUBYCCDLFLAGS)
|
|
AC_SUBST(RUBYSO)
|
|
AC_SUBST(RUBYDYNAMICLINKING)
|
|
|
|
#-------------------------------------------------------------------------
|
|
# Look for PHP
|
|
#-------------------------------------------------------------------------
|
|
|
|
PHPBIN=
|
|
|
|
AC_ARG_WITH(php, AS_HELP_STRING([--without-php], [Disable PHP])
|
|
AS_HELP_STRING([--with-php=path], [Set location of PHP executable]),[ PHPBIN="$withval"], [PHPBIN=yes])
|
|
|
|
# First, check for "--without-php" or "--with-php=no".
|
|
if test x"${PHPBIN}" = xno -o x"${with_alllang}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling PHP])
|
|
PHP=
|
|
else
|
|
|
|
if test "x$PHPBIN" = xyes; then
|
|
AC_CHECK_PROGS(PHP, [php5 php])
|
|
else
|
|
PHP=$PHPBIN
|
|
fi
|
|
|
|
AC_MSG_CHECKING(for PHP header files)
|
|
dnl /usr/bin/php5 -> /usr/bin/php-config5
|
|
case $PHP in
|
|
*5)
|
|
PHPCONFIG=`echo "$PHP"|sed 's/5$/-config5/'` ;;
|
|
*)
|
|
PHPCONFIG=$PHP-config ;;
|
|
esac
|
|
php_version=`$PHPCONFIG --version 2>/dev/null`
|
|
case $php_version in
|
|
5*)
|
|
PHPINC=`$PHPCONFIG --includes 2>/dev/null`
|
|
if test -n "$PHPINC"; then
|
|
AC_MSG_RESULT($PHPINC)
|
|
else
|
|
AC_MSG_RESULT(not found)
|
|
fi
|
|
;;
|
|
*)
|
|
AC_MSG_RESULT([found PHP $version, but only PHP 5 is supported]) ;;
|
|
esac
|
|
fi
|
|
AC_SUBST(PHP)
|
|
AC_SUBST(PHPINC)
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for ocaml
|
|
#----------------------------------------------------------------
|
|
|
|
AC_ARG_WITH(ocaml, AS_HELP_STRING([--without-ocaml], [Disable OCaml]), [with_ocaml="$withval"], [with_ocaml=yes])
|
|
AC_ARG_WITH(ocamlc,[ --with-ocamlc=path Set location of ocamlc executable],[ OCAMLC="$withval"], [OCAMLC=])
|
|
AC_ARG_WITH(ocamldlgen,[ --with-ocamldlgen=path Set location of ocamldlgen],[ OCAMLDLGEN="$withval" ], [OCAMLDLGEN=])
|
|
AC_ARG_WITH(ocamlfind,[ --with-ocamlfind=path Set location of ocamlfind],[OCAMLFIND="$withval"],[OCAMLFIND=])
|
|
AC_ARG_WITH(ocamlmktop,[ --with-ocamlmktop=path Set location of ocamlmktop executable],[ OCAMLMKTOP="$withval"], [OCAMLMKTOP=])
|
|
AC_ARG_WITH(camlp4,[ --with-camlp4=path Set location of camlp4 executable],[ CAMLP4="$withval"], [CAMLP4=])
|
|
|
|
# First, check for "--without-ocaml" or "--with-ocaml=no".
|
|
if test x"${with_ocaml}" = xno -o x"${with_alllang}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling OCaml])
|
|
OCAMLC=
|
|
else
|
|
AC_MSG_CHECKING(for Ocaml DL load generator)
|
|
if test -z "$OCAMLDLGEN"; then
|
|
AC_CHECK_PROGS(OCAMLDLGEN, ocamldlgen)
|
|
fi
|
|
|
|
AC_MSG_CHECKING(for Ocaml package tool)
|
|
if test -z "$OCAMLFIND"; then
|
|
AC_CHECK_PROGS(OCAMLFIND, ocamlfind)
|
|
fi
|
|
|
|
AC_MSG_CHECKING(for Ocaml compiler)
|
|
if test -z "$OCAMLC"; then
|
|
AC_CHECK_PROGS(OCAMLC, ocamlc)
|
|
fi
|
|
|
|
AC_MSG_CHECKING(for Ocaml toplevel creator)
|
|
if test -z "$OCAMLMKTOP"; then
|
|
AC_CHECK_PROGS(OCAMLMKTOP, ocamlmktop)
|
|
fi
|
|
|
|
AC_MSG_CHECKING(for Ocaml Pre-Processor-Pretty-Printer)
|
|
if test -z "$CAMLP4"; then
|
|
AC_CHECK_PROGS(CAMLP4, camlp4)
|
|
fi
|
|
fi # Disabling ocaml
|
|
|
|
AC_SUBST(OCAMLC)
|
|
AC_SUBST(OCAMLDLGEN)
|
|
AC_SUBST(OCAMLFIND)
|
|
AC_SUBST(OCAMLMKTOP)
|
|
AC_SUBST(CAMLP4)
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for Pike
|
|
#----------------------------------------------------------------
|
|
|
|
# Identify the name of the Pike executable
|
|
# Priority: configure option, automatic search
|
|
PIKEBIN=
|
|
AC_ARG_WITH(pike, AS_HELP_STRING([--without-pike], [Disable Pike])
|
|
AS_HELP_STRING([--with-pike=path], [Set location of Pike executable]),[PIKEBIN="$withval"], [PIKEBIN=yes])
|
|
|
|
# First, check for "--without-pike" or "--with-pike=no".
|
|
if test x"${PIKEBIN}" = xno -o x"${with_alllang}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling Pike])
|
|
PIKEBIN=
|
|
else
|
|
|
|
if test "x$PIKEBIN" = xyes; then
|
|
AC_CHECK_PROGS(PIKE, pike pike7.8 pike7.6 pike7.4 pike7.2)
|
|
else
|
|
PIKE="$PIKEBIN"
|
|
fi
|
|
|
|
|
|
# Check for pike-config
|
|
# Priority: configure option, guessed from $PIKE, search from list
|
|
AC_ARG_WITH(pike-config, AS_HELP_STRING([--with-pike-config=path],
|
|
[Set location of pike-config script]),
|
|
[PIKECONFIG="$withval"], [PIKECONFIG=""])
|
|
|
|
if test -z "$PIKECONFIG" -a -n "$PIKE"; then
|
|
AC_CHECK_PROGS(PIKECONFIG, $PIKE-config pike-config \
|
|
pike7.6-config pike7.4-config pike7.2-config)
|
|
fi
|
|
|
|
# Check for a --with-pikeincl option to configure
|
|
# Priority: configure option, info from $PIKECONFIG, guessed by pike script
|
|
AC_ARG_WITH(pikeincl, AS_HELP_STRING([--with-pikeincl=path],
|
|
[Set location of Pike include directory]),
|
|
[PIKEINCLUDE="-I$withval"], [PIKEINCLUDE=])
|
|
|
|
if test -n "$PIKE"; then
|
|
AC_MSG_CHECKING([for Pike header files])
|
|
if test -z "$PIKEINCLUDE" -a -n "$PIKECONFIG"; then
|
|
PIKEINCLUDE=`$PIKECONFIG --cflags`
|
|
fi
|
|
if test -z "$PIKEINCLUDE" -a -n "$PIKE"; then
|
|
PIKEINCLUDE=`$PIKE -x cflags`
|
|
if test -z "$PIKEINCLUDE"; then
|
|
PIKEPATH=`which $PIKE`
|
|
PIKEINCLUDE=`$PIKE Tools/check-include-path.pike $PIKEPATH`
|
|
PIKEINCLUDE="-I$PIKEINCLUDE"
|
|
fi
|
|
fi
|
|
|
|
if test -z "$PIKEINCLUDE"; then
|
|
AC_MSG_RESULT(not found)
|
|
else
|
|
AC_MSG_RESULT($PIKEINCLUDE)
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(PIKEINCLUDE)
|
|
AC_SUBST(PIKECCDLFLAGS) dnl XXX: where is this used/defined?
|
|
AC_SUBST(PIKEDYNAMICLINKING) dnl XXX: where is this used/defined?
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for CHICKEN
|
|
#----------------------------------------------------------------
|
|
|
|
CHICKEN=
|
|
CHICKEN_CONFIG=
|
|
CHICKENHOME=
|
|
CHICKENOPTS=
|
|
CHICKENLIB=
|
|
|
|
|
|
AC_ARG_WITH(chicken, AS_HELP_STRING([--without-chicken], [Disable CHICKEN])
|
|
AS_HELP_STRING([--with-chicken=path], [Set location of CHICKEN executable]),[ CHICKENBIN="$withval"], [CHICKENBIN=yes])
|
|
|
|
# First, check for "--without-chicken" or "--with-chicken=no".
|
|
if test x"${CHICKENBIN}" = xno -o x"${with_alllang}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling CHICKEN])
|
|
else
|
|
|
|
if test "x$CHICKENBIN" = xyes; then
|
|
AC_CHECK_PROGS(CHICKEN, chicken)
|
|
else
|
|
CHICKEN="$CHICKENBIN"
|
|
fi
|
|
|
|
AC_ARG_WITH(chickencsc,[ --with-chickencsc=path Set location of csc executable],[ CHICKEN_CSC="$withval"], [CHICKEN_CSC=])
|
|
|
|
if test -z "$CHICKEN_CSC"; then
|
|
AC_CHECK_PROGS(CHICKEN_CSC, csc)
|
|
# Both the Microsoft C# compiler and chicken have an executable called csc, so check that this csc is really the chicken one
|
|
if test -n "$CHICKEN_CSC" ; then
|
|
AC_MSG_CHECKING(whether csc is the chicken compiler)
|
|
$CHICKEN_CSC -version 2>/dev/null | grep "chicken" > /dev/null || CHICKEN_CSC=""
|
|
if test -z "$CHICKEN_CSC"; then
|
|
AC_MSG_RESULT(no)
|
|
else
|
|
AC_MSG_RESULT(yes)
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
AC_ARG_WITH(chickencsi,[ --with-chickencsi=path Set location of csi executable],[ CHICKEN_CSI="$withval"], [CHICKEN_CSI=])
|
|
|
|
if test -z "$CHICKEN_CSI"; then
|
|
AC_CHECK_PROGS(CHICKEN_CSI, csi)
|
|
fi
|
|
|
|
if test -n "$CHICKEN_CSC" ; then
|
|
|
|
AC_ARG_WITH(chickenopts,[ --with-chickenopts=args Set compiler options for static CHICKEN generated code],[
|
|
CHICKENOPTS="$withval"], [CHICKENOPTS=])
|
|
AC_ARG_WITH(chickensharedlib,[ --with-chickensharedlib=args Set linker options for shared CHICKEN generated code],[
|
|
CHICKENSHAREDLIB="$withval"], [CHICKENSHAREDLIB=])
|
|
AC_ARG_WITH(chickenlib,[ --with-chickenlib=args Set linker options for static CHICKEN generated code],[
|
|
CHICKENLIB="$withval"], [CHICKENLIB=])
|
|
|
|
AC_MSG_CHECKING(for compiler options for static CHICKEN generated code)
|
|
if test -z "$CHICKENOPTS"; then
|
|
CHICKENOPTS="`$CHICKEN_CSC -cflags`"
|
|
else
|
|
CHICKENOPTS="`$CHICKEN_CSC -cflags` $CHICKENOPTS"
|
|
fi
|
|
if test -z "$CHICKENOPTS"; then
|
|
AC_MSG_RESULT(not found)
|
|
else
|
|
AC_MSG_RESULT($CHICKENOPTS)
|
|
fi
|
|
|
|
AC_MSG_CHECKING(for linker options for shared CHICKEN generated code)
|
|
if test -z "$CHICKENSHAREDLIB"; then
|
|
CHICKENSHAREDLIB="`$CHICKEN_CSC -shared -libs`"
|
|
else
|
|
CHICKENSHAREDLIB="`$CHICKEN_CSC -shared -libs` $CHICKENSHAREDLIB"
|
|
fi
|
|
if test -z "$CHICKENSHAREDLIB"; then
|
|
AC_MSG_RESULT(not found)
|
|
else
|
|
AC_MSG_RESULT($CHICKENSHAREDLIB)
|
|
fi
|
|
|
|
AC_MSG_CHECKING(for linker options for static CHICKEN generated code)
|
|
if test -z "$CHICKENLIB"; then
|
|
CHICKENLIB="`$CHICKEN_CSC -libs`"
|
|
else
|
|
CHICKENLIB="`$CHICKEN_CSC -libs` $CHICKENLIB"
|
|
fi
|
|
if test -z "$CHICKENLIB"; then
|
|
AC_MSG_RESULT(not found)
|
|
else
|
|
AC_MSG_RESULT($CHICKENLIB)
|
|
fi
|
|
|
|
fi # have CHICKEN_CONFIG
|
|
fi # Check for --without-chicken
|
|
|
|
AC_SUBST(CHICKEN)
|
|
AC_SUBST(CHICKEN_CSC)
|
|
AC_SUBST(CHICKEN_CSI)
|
|
AC_SUBST(CHICKENOPTS)
|
|
AC_SUBST(CHICKENLIB)
|
|
AC_SUBST(CHICKENSHAREDLIB)
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for C#
|
|
#----------------------------------------------------------------
|
|
|
|
AC_ARG_WITH(csharp, AS_HELP_STRING([--without-csharp], [Disable CSharp]), [with_csharp="$withval"], [with_csharp=yes])
|
|
AC_ARG_WITH(cil-interpreter, [ --with-cil-interpreter=path Set location of CIL interpreter for CSharp],[CSHARPBIN="$withval"], [CSHARPBIN=])
|
|
AC_ARG_WITH(csharp-compiler, [ --with-csharp-compiler=path Set location of CSharp compiler],[CSHARPCOMPILERBIN="$withval"], [CSHARPCOMPILERBIN=])
|
|
|
|
# First, check for "--without-csharp" or "--with-csharp=no".
|
|
if test x"${with_csharp}" = xno -o x"${with_alllang}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling CSharp])
|
|
CSHARPCOMPILER=
|
|
else
|
|
|
|
if test -z "$CSHARPCOMPILERBIN" ; then
|
|
case $host in
|
|
*-*-cygwin* | *-*-mingw*)
|
|
# prefer Mono gmcs (.NET 2.0) over mcs (.NET 1.1) - note mcs-1.2.3 has major pinvoke bug
|
|
AC_CHECK_PROGS(CSHARPCOMPILER, csc mono-csc gmcs mcs cscc)
|
|
if test -n "$CSHARPCOMPILER" && test "$CSHARPCOMPILER" = "csc" ; then
|
|
AC_MSG_CHECKING(whether csc is the Microsoft CSharp compiler)
|
|
csc 2>/dev/null | grep "C#" > /dev/null || CSHARPCOMPILER=""
|
|
if test -z "$CSHARPCOMPILER" ; then
|
|
AC_MSG_RESULT(no)
|
|
AC_CHECK_PROGS(CSHARPCOMPILER, mono-csc gmcs mcs cscc)
|
|
else
|
|
AC_MSG_RESULT(yes)
|
|
fi
|
|
fi
|
|
;;
|
|
*)AC_CHECK_PROGS(CSHARPCOMPILER, mono-csc gmcs mcs cscc);;
|
|
esac
|
|
else
|
|
CSHARPCOMPILER="$CSHARPCOMPILERBIN"
|
|
fi
|
|
|
|
CSHARPCONVERTPATH="Tools/convertpath -u"
|
|
if test -z "$CSHARPBIN" ; then
|
|
CSHARPCILINTERPRETER=""
|
|
CSHARPCILINTERPRETER_FLAGS=""
|
|
if test "cscc" = "$CSHARPCOMPILER" ; then
|
|
AC_CHECK_PROGS(CSHARPCILINTERPRETER, ilrun)
|
|
else
|
|
if test "mcs" = "$CSHARPCOMPILER"; then
|
|
# Check that mcs is the C# compiler and not the Unix mcs utility by examining the output of 'mcs --version'
|
|
# The Mono compiler should emit: Mono C# compiler version a.b.c.d
|
|
csharp_version_raw=`(mcs --version) 2>/dev/null`
|
|
csharp_version_searched=`(mcs --version | sed -e "/C#/b" -e "/Mono/b" -e d) 2>/dev/null` # return string if contains 'Mono' or 'C#'
|
|
CSHARPCOMPILER=""
|
|
if test -n "$csharp_version_raw" ; then
|
|
if test "$csharp_version_raw" = "$csharp_version_searched" ; then
|
|
CSHARPCOMPILER="mcs"
|
|
fi
|
|
fi
|
|
if test "mcs" != "$CSHARPCOMPILER" ; then
|
|
echo "mcs is not a working Mono C# compiler"
|
|
fi
|
|
fi
|
|
if test "mcs" = "$CSHARPCOMPILER" || test "gmcs" = "$CSHARPCOMPILER" || test "mono-csc" = "$CSHARPCOMPILER"; then
|
|
AC_CHECK_PROGS(CSHARPCILINTERPRETER, mono) # Mono JIT
|
|
CSHARPCILINTERPRETER_FLAGS="--debug"
|
|
else
|
|
if test "csc" = "$CSHARPCOMPILER"; then
|
|
CSHARPCONVERTPATH="Tools/convertpath -w"
|
|
fi
|
|
fi
|
|
fi
|
|
else
|
|
CSHARPCILINTERPRETER="$CSHARPBIN"
|
|
fi
|
|
|
|
# Cygwin requires the Windows standard (Pascal) calling convention as it is a Windows executable and not a Cygwin built executable
|
|
case $host in
|
|
*-*-cygwin* | *-*-mingw*)
|
|
if test "$GCC" = yes; then
|
|
CSHARPDYNAMICLINKING="$GCC_MNO_CYGWIN -mthreads -Wl,--add-stdcall-alias"
|
|
CSHARPCFLAGS="$GCC_MNO_CYGWIN -mthreads"
|
|
else
|
|
CSHARPDYNAMICLINKING=""
|
|
CSHARPCFLAGS=""
|
|
fi ;;
|
|
*)
|
|
CSHARPDYNAMICLINKING=""
|
|
CSHARPCFLAGS=""
|
|
;;
|
|
esac
|
|
|
|
# CSharp on Windows platforms including Cygwin doesn't use libname.dll, rather name.dll when loading dlls
|
|
case $host in
|
|
*-*-cygwin* | *-*-mingw*) CSHARPLIBRARYPREFIX="";;
|
|
*)CSHARPLIBRARYPREFIX="lib";;
|
|
esac
|
|
|
|
# C#/Mono on Mac OS X tweaks
|
|
case $host in
|
|
*-*-darwin*)
|
|
CSHARPSO=".so"
|
|
;;
|
|
*)
|
|
CSHARPSO=$SO
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
AC_SUBST(CSHARPCILINTERPRETER_FLAGS)
|
|
AC_SUBST(CSHARPCILINTERPRETER)
|
|
AC_SUBST(CSHARPCONVERTPATH)
|
|
AC_SUBST(CSHARPCOMPILER)
|
|
AC_SUBST(CSHARPDYNAMICLINKING)
|
|
AC_SUBST(CSHARPLIBRARYPREFIX)
|
|
AC_SUBST(CSHARPCFLAGS)
|
|
AC_SUBST(CSHARPSO)
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for Lua
|
|
#----------------------------------------------------------------
|
|
|
|
LUABIN=
|
|
LUAINCLUDE=
|
|
LUALIB=
|
|
LUADYNAMICLOADLIB=
|
|
LUAFLAGS=
|
|
LUALINK=
|
|
# note: if LUABIN is empty then lua tests will not be done
|
|
# LUABIN will be cleared if certain dependencies cannot be found
|
|
|
|
AC_ARG_WITH(lua, AS_HELP_STRING([--without-lua], [Disable Lua])
|
|
AS_HELP_STRING([--with-lua=path], [Set location of Lua executable]),[ LUABIN="$withval"], [LUABIN=yes])
|
|
AC_ARG_WITH(luaincl,[ --with-luaincl=path Set location of Lua include directory],[
|
|
LUAINCLUDE="$withval"], [LUAINCLUDE=])
|
|
AC_ARG_WITH(lualib,[ --with-lualib=path Set location of Lua library directory],[
|
|
LUALIB="$withval"], [LUALIB=])
|
|
|
|
# First, check for "--without-lua" or "--with-lua=no".
|
|
if test x"${LUABIN}" = xno -o x"${with_alllang}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling Lua])
|
|
else
|
|
|
|
# can we find lua?
|
|
if test "x$LUABIN" = xyes; then
|
|
# We look for a versioned Lua binary first, as there can be
|
|
# multiple versions of Lua installed on some systems (like Debian).
|
|
# The search order should match the include-file and library search
|
|
# orders below (a Lua shared library built for one version may not
|
|
# work with a Lua binary of a different version).
|
|
AC_PATH_PROGS(LUABIN, [lua5.2 lua5.1 lua])
|
|
fi
|
|
|
|
# check version: we need Lua 5.x
|
|
if test "$LUABIN"; then
|
|
AC_MSG_CHECKING(Lua version)
|
|
# if version 5.x
|
|
LUAV5=`$LUABIN -e 'if string.sub(_VERSION,5,5)=="5" then print "1" end'`
|
|
# if not version 5.0
|
|
LUAV51=`$LUABIN -e 'if string.sub(_VERSION,5,7)~="5.0" then print "1" end'`
|
|
|
|
if test -z "$LUAV5"; then
|
|
AC_MSG_WARN(Not Lua 5.x, SWIG does not support this version of Lua)
|
|
LUABIN=""
|
|
elif test -z "$LUAV51"; then
|
|
AC_MSG_RESULT(Lua 5.0.x)
|
|
else
|
|
AC_MSG_RESULT(Lua 5.1 or later)
|
|
fi
|
|
fi
|
|
|
|
if test "$LUABIN"; then
|
|
AC_MSG_CHECKING(whether Lua dynamic loading is enabled)
|
|
# using Lua to check Lua
|
|
# lua 5.0 & 5.1 have different fn names
|
|
if test -z "$LUAV51"; then
|
|
LUADYNAMICLOADLIB=`$LUABIN -e '_,_,c=loadlib("no_such_lib","") if c~="absent" then print "1" end'`
|
|
else
|
|
LUADYNAMICLOADLIB=`$LUABIN -e '_,_,c=package.loadlib("no_such_lib","") if c~="absent" then print "1" end'`
|
|
fi
|
|
|
|
if test -z "$LUADYNAMICLOADLIB"; then
|
|
AC_MSG_RESULT(no)
|
|
else
|
|
AC_MSG_RESULT(yes)
|
|
fi
|
|
|
|
# look for the header files & set LUAFLAGS accordingly
|
|
# will clear LUABIN if not present
|
|
if test -n "$LUAINCLUDE"; then
|
|
AC_CHECK_FILE($LUAINCLUDE/lua.h,[LUAFLAGS="$ISYSTEM$LUAINCLUDE"],[LUABIN=])
|
|
else
|
|
LUA_OK="1"
|
|
AC_CHECK_HEADER(lua.h,[LUAFLAGS=""],[LUA_OK=""])
|
|
# if we didn't get it, going to have to look elsewhere (the hard way)
|
|
if test -z "$LUA_OK"; then
|
|
AC_MSG_CHECKING(for lua.h in other locations)
|
|
# note: Debian/Ubuntu seem to like /usr/include/lua5.1/lua.h
|
|
# The ordering of the include directories to search should match
|
|
# the ordering of libraries to search in the library test below.
|
|
inc=/usr/include
|
|
dirs="$inc/lua5.2 $inc/lua5.1 $inc/lua51 $inc/lua5.0 $inc/lua50 /usr/local/include"
|
|
for i in $dirs; do
|
|
#echo "$i"
|
|
if test -r $i/lua.h; then
|
|
AC_MSG_RESULT($i/lua.h)
|
|
LUAFLAGS="$ISYSTEM$i"
|
|
break
|
|
fi
|
|
done
|
|
if test -z "$LUAFLAGS"; then
|
|
AC_MSG_RESULT(not found)
|
|
LUABIN="" # clear the bin
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
# look for the library files & set LUALINK accordingly
|
|
# will clear LUABIN if not present
|
|
lua_save_LIBS=$LIBS # the code seems to disrupt LIBS, so saving
|
|
|
|
if test -n "$LUALIB"; then
|
|
AC_CHECK_FILE($LUALIB/liblua.a,[LUALINK="-L$LUALIB -llua"],[LUABIN=])
|
|
else
|
|
AC_SEARCH_LIBS(lua_close, [lua lua5.2 lua5.1 lua51 lua5.0 lua50], [LUALINK="-l$ac_lib"],[LUABIN=])
|
|
fi
|
|
|
|
# adding lualib for lua 5.0
|
|
if test -z "$LUAV51"; then # extra for lua 5.0
|
|
LUALINK="$LUALINK -llualib"
|
|
fi
|
|
|
|
LIBS=$lua_save_LIBS # restore LIBS
|
|
fi
|
|
|
|
fi # if not disabled
|
|
|
|
AC_SUBST(LUADYNAMICLINKING)
|
|
AC_SUBST(LUAFLAGS)
|
|
AC_SUBST(LUALINK)
|
|
AC_SUBST(LUABIN)
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for Allegro Common Lisp
|
|
#----------------------------------------------------------------
|
|
|
|
ALLEGROCLBIN=
|
|
|
|
AC_ARG_WITH(allegrocl, AS_HELP_STRING([--without-allegrocl], [Disable Allegro CL])
|
|
AS_HELP_STRING([--with-allegrocl=path], [Set location of Allegro CL executable (alisp)]),[ ALLEGROCLBIN="$withval"], [ALLEGROCLBIN=yes])
|
|
|
|
# First, check for "--without-allegrocl" or "--with-allegrocl=no".
|
|
if test x"${ALLEGROCLBIN}" = xno -o x"${with_alllang}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling Allegro CL])
|
|
ALLEGROCLBIN=
|
|
else
|
|
|
|
# can we find allegrocl?
|
|
if test "x$ALLEGROCLBIN" = xyes; then
|
|
AC_PATH_PROG(ALLEGROCLBIN, alisp)
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(ALLEGROCLBIN)
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for GNU CLISP
|
|
#----------------------------------------------------------------
|
|
|
|
CLISPBIN=
|
|
|
|
AC_ARG_WITH(clisp, AS_HELP_STRING([--without-clisp], [Disable CLISP])
|
|
AS_HELP_STRING([--with-clisp=path], [Set location of CLISP executable (clisp)]),[ CLISPBIN="$withval"], [CLISPBIN=yes])
|
|
|
|
# First, check for "--without-clisp" or "--with-clisp=no".
|
|
if test x"${CLISPBIN}" = xno -o x"${with_alllang}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling CLISP])
|
|
CLISPBIN=
|
|
else
|
|
|
|
# can we find clisp?
|
|
if test "x$CLISPBIN" = xyes; then
|
|
AC_PATH_PROG(CLISPBIN, clisp)
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(CLISPBIN)
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for GNU R
|
|
#----------------------------------------------------------------
|
|
|
|
RBIN=
|
|
|
|
AC_ARG_WITH(r, AS_HELP_STRING([--without-r], [Disable R])
|
|
AS_HELP_STRING([--with-r=path], [Set location of R executable (r)]),[ RBIN="$withval"], [RBIN=yes])
|
|
|
|
# First, check for "--without-r" or "--with-r=no".
|
|
if test x"${RBIN}" = xno -o x"${with_alllang}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling R])
|
|
RBIN=
|
|
else
|
|
|
|
# can we find R?
|
|
if test "x$RBIN" = xyes; then
|
|
AC_PATH_PROG(RBIN, R)
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(RBIN)
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for Go compilers
|
|
#----------------------------------------------------------------
|
|
|
|
AC_ARG_WITH(go, AS_HELP_STRING([--without-go], [Disable Go])
|
|
AS_HELP_STRING([--with-go=path], [Set location of Go compiler]),[GOBIN="$withval"], [GOBIN=yes])
|
|
|
|
if test x"${GOBIN}" = xno -o x"${with_alllang}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling Go])
|
|
GO=
|
|
GOC=
|
|
GO1=false
|
|
GO12=false
|
|
GO13=false
|
|
GO15=false
|
|
GOGCC=false
|
|
GCCGO=
|
|
GOOPT=
|
|
GCCGOOPT=
|
|
GOVERSIONOPTION=
|
|
else
|
|
|
|
if test "x$GOBIN" = xyes; then
|
|
AC_CHECK_PROGS(GO, go)
|
|
else
|
|
GO="$GOBIN"
|
|
fi
|
|
|
|
GOGCC=false
|
|
GCCGO=
|
|
GO1=false
|
|
GO12=false
|
|
GO13=false
|
|
GO15=false
|
|
GOOPT=
|
|
GCCGOOPT=
|
|
GOVERSIONOPTION=
|
|
|
|
if test -n "$GO" ; then
|
|
GO1=true
|
|
GOVERSIONOPTION=version
|
|
go_version=$($GO $GOVERSIONOPTION | sed -e 's/go version //')
|
|
case "$go_version" in
|
|
go1 | go1.[[01234]]*)
|
|
GOC=$(sh -c "$(go env) && echo \$GOCHAR")c
|
|
;;
|
|
*)
|
|
GOC=compile
|
|
;;
|
|
esac
|
|
AC_MSG_CHECKING([whether go version is too old])
|
|
case $go_version in
|
|
go1.0* | go1 )
|
|
AC_MSG_RESULT([yes - minimum version is 1.1])
|
|
GO=
|
|
GOOPT="-intgosize 32"
|
|
;;
|
|
*)
|
|
AC_MSG_RESULT([no])
|
|
case "$(go env GOARCH)" in
|
|
amd64 | arm64 | ppc64*)
|
|
GOOPT="-intgosize 64"
|
|
;;
|
|
*)
|
|
GOOPT="-intgosize 32"
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
case $go_version in
|
|
go1.0* | go1 | go1.1*)
|
|
GOOPT="$GOOPT -use-shlib"
|
|
;;
|
|
go1.2*)
|
|
GO12=true
|
|
;;
|
|
go1.3* | go1.4*)
|
|
GO13=true
|
|
;;
|
|
*)
|
|
GO15=true
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
AC_CHECK_PROGS(GCCGO, gccgo)
|
|
|
|
if test -n "$GCCGO" ; then
|
|
if $GCCGO --help 2>/dev/null | grep gccgo >/dev/null 2>&1 ; then
|
|
AC_MSG_CHECKING([whether gccgo version is too old])
|
|
go_version=[`$GO $GOVERSIONOPTION | sed -n '1p' | sed -e 's/^.* \([0-9.]*\) *$/\1/' -e 's/[.]//g'`]
|
|
if test "x$go_version" = x; then
|
|
AC_MSG_RESULT([could not determine gccgo version])
|
|
GCCGO=
|
|
elif test "$go_version" -lt 470; then
|
|
AC_MSG_RESULT([yes - minimum version is 4.7.0])
|
|
GCCGO=
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
if test "$go_version" -lt 480; then
|
|
GCCGOOPT="-intgosize 32"
|
|
else
|
|
AC_CHECK_SIZEOF([void *], [4])
|
|
if test "$ac_cv_sizeof_void_p" = "8"; then
|
|
GCCGOOPT="-intgosize 64"
|
|
else
|
|
GCCGOOPT="-intgosize 32"
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(GOGCC)
|
|
AC_SUBST(GCCGO)
|
|
AC_SUBST(GO)
|
|
AC_SUBST(GOC)
|
|
AC_SUBST(GO1)
|
|
AC_SUBST(GO12)
|
|
AC_SUBST(GO13)
|
|
AC_SUBST(GO15)
|
|
AC_SUBST(GOOPT)
|
|
AC_SUBST(GCCGOOPT)
|
|
AC_SUBST(GOVERSIONOPTION)
|
|
|
|
#----------------------------------------------------------------
|
|
# Look for D
|
|
#----------------------------------------------------------------
|
|
|
|
AC_ARG_WITH(d, AS_HELP_STRING([--without-d], [Disable D]), [with_d="$withval"], [with_d=yes])
|
|
AC_ARG_WITH(d1-compiler, [ --with-d1-compiler=path Set location of D1/Tango compiler (DMD compatible)],[D1COMPILERBIN="$withval"], [D1COMPILERBIN=])
|
|
AC_ARG_WITH(d2-compiler, [ --with-d2-compiler=path Set location of D2 compiler (DMD compatible)],[D2COMPILERBIN="$withval"], [D2COMPILERBIN=])
|
|
|
|
|
|
# First, check for "--without-d" or "--with-d=no".
|
|
if test x"${with_d}" = xno -o x"${with_alllang}" = xno ; then
|
|
AC_MSG_NOTICE([Disabling D])
|
|
D1COMPILER=
|
|
D2COMPILER=
|
|
else
|
|
old_ac_ext=$ac_ext
|
|
ac_ext=d
|
|
|
|
if test -z "$D1COMPILERBIN" ; then
|
|
AC_CHECK_PROGS(D1COMPILER, dmd ldmd gdmd)
|
|
|
|
if test -n "$D1COMPILER" ; then
|
|
AC_MSG_CHECKING(whether the D1/Tango compiler works)
|
|
cat > conftest.$ac_ext <<_ACEOF
|
|
import tango.io.Stdout;
|
|
void main() {
|
|
}
|
|
_ACEOF
|
|
rm -f conftest.$ac_objext
|
|
AS_IF(
|
|
[_AC_DO_STDERR($D1COMPILER conftest.$ac_ext) && test ! -s conftest.err && test -s conftest.$ac_objext],
|
|
[AC_MSG_RESULT([yes])],
|
|
[_AC_MSG_LOG_CONFTEST AC_MSG_RESULT([no])
|
|
D1COMPILER=]
|
|
)
|
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
|
fi
|
|
else
|
|
D1COMPILER="$D1COMPILERBIN"
|
|
fi
|
|
|
|
if test -z "$D2COMPILERBIN" ; then
|
|
AC_CHECK_PROGS(D2COMPILER, dmd gdmd)
|
|
|
|
if test -n "$D2COMPILER" ; then
|
|
AC_MSG_CHECKING(whether the D2 compiler works)
|
|
cat > conftest.$ac_ext <<_ACEOF
|
|
import std.algorithm;
|
|
void main() {
|
|
}
|
|
_ACEOF
|
|
rm -f conftest.$ac_objext
|
|
AS_IF(
|
|
[_AC_DO_STDERR($D2COMPILER conftest.$ac_ext) && test ! -s conftest.err && test -s conftest.$ac_objext],
|
|
[AC_MSG_RESULT([yes])],
|
|
[_AC_MSG_LOG_CONFTEST AC_MSG_RESULT([no])
|
|
D2COMPILER=]
|
|
)
|
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
|
fi
|
|
else
|
|
D2COMPILER="$D2COMPILERBIN"
|
|
fi
|
|
|
|
ac_ext=$old_ac_ext
|
|
fi
|
|
|
|
if test -n "$D1COMPILER"; then
|
|
DDEFAULTVERSION=1
|
|
elif test -n "$D2COMPILER"; then
|
|
DDEFAULTVERSION=2
|
|
fi
|
|
|
|
# Do not prefix library file names with "lib" on Windows.
|
|
case $host in
|
|
*-*-cygwin* | *-*-mingw*) DLIBPREFIX="";;
|
|
*)DLIBPREFIX="lib";;
|
|
esac
|
|
|
|
AC_SUBST(D1COMPILER)
|
|
AC_SUBST(D2COMPILER)
|
|
AC_SUBST(DDEFAULTVERSION)
|
|
AC_SUBST(DLIBPREFIX)
|
|
|
|
#----------------------------------------------------------------
|
|
# Determine which languages to use for examples/test-suite
|
|
#----------------------------------------------------------------
|
|
|
|
SKIP_TCL=
|
|
if test -z "$TCLINCLUDE" || test -z "$TCLLIB" ; then
|
|
SKIP_TCL="1"
|
|
fi
|
|
AC_SUBST(SKIP_TCL)
|
|
|
|
|
|
SKIP_PERL5=
|
|
if test -z "$PERL" || test -z "$PERL5EXT" || test -z "$PERL5TESTMORE"; then
|
|
SKIP_PERL5="1"
|
|
fi
|
|
AC_SUBST(SKIP_PERL5)
|
|
|
|
|
|
SKIP_OCTAVE=
|
|
if test -z "$OCTAVE" ; then
|
|
SKIP_OCTAVE="1"
|
|
fi
|
|
AC_SUBST(SKIP_OCTAVE)
|
|
|
|
|
|
SKIP_PYTHON=
|
|
if (test -z "$PYINCLUDE" || test -z "$PYLINK") &&
|
|
(test -z "$PY3INCLUDE" || test -z "$PY3LINK") ; then
|
|
SKIP_PYTHON="1"
|
|
fi
|
|
AC_SUBST(SKIP_PYTHON)
|
|
|
|
SKIP_PYTHON3=
|
|
if test -z "$PY3INCLUDE" || test -z "$PY3LINK" ; then
|
|
SKIP_PYTHON3="1"
|
|
fi
|
|
AC_SUBST(SKIP_PYTHON3)
|
|
|
|
SKIP_JAVA=
|
|
if test -z "$JAVA" || test -z "$JAVAC" || test -z "$JAVAINC" ; then
|
|
SKIP_JAVA="1"
|
|
fi
|
|
AC_SUBST(SKIP_JAVA)
|
|
|
|
SKIP_JAVASCRIPT=
|
|
if test -z "$JAVASCRIPT" || ( test -z "$NODEJS" && test -z "$JSCENABLED" && test -z "$JSV8ENABLED" ) ; then
|
|
SKIP_JAVASCRIPT="1"
|
|
fi
|
|
AC_SUBST(SKIP_JAVASCRIPT)
|
|
|
|
SKIP_GUILE=
|
|
if test -z "$GUILE" || test -z "$GUILE_LIBS" ; then
|
|
SKIP_GUILE="1"
|
|
fi
|
|
AC_SUBST(SKIP_GUILE)
|
|
|
|
|
|
SKIP_MZSCHEME=
|
|
if test -z "$MZC" || test -z "$MZDYNOBJ" ; then
|
|
SKIP_MZSCHEME="1"
|
|
fi
|
|
AC_SUBST(SKIP_MZSCHEME)
|
|
|
|
|
|
SKIP_RUBY=
|
|
if test -z "$RUBY" || test -z "$RUBYINCLUDE" || test -z "$RUBYLIB" ; then
|
|
SKIP_RUBY="1"
|
|
fi
|
|
AC_SUBST(SKIP_RUBY)
|
|
|
|
|
|
SKIP_PHP=
|
|
if test -z "$PHP" || test -z "$PHPINC" ; then
|
|
SKIP_PHP="1"
|
|
fi
|
|
AC_SUBST(SKIP_PHP)
|
|
|
|
|
|
SKIP_OCAML=
|
|
if test -z "$OCAMLC" ; then
|
|
SKIP_OCAML="1"
|
|
fi
|
|
AC_SUBST(SKIP_OCAML)
|
|
|
|
|
|
SKIP_PIKE=
|
|
if test -z "$PIKE" || test -z "$PIKEINCLUDE" ; then
|
|
SKIP_PIKE="1"
|
|
fi
|
|
AC_SUBST(SKIP_PIKE)
|
|
|
|
|
|
SKIP_CHICKEN=
|
|
if test -z "$CHICKEN_CSC" || test -z "$CHICKEN"; then
|
|
SKIP_CHICKEN="1"
|
|
fi
|
|
AC_SUBST(SKIP_CHICKEN)
|
|
|
|
|
|
SKIP_CSHARP=
|
|
if test -z "$CSHARPCOMPILER" ; then
|
|
SKIP_CSHARP="1"
|
|
else
|
|
if test "cscc" = "$CSHARPCOMPILER" && test -z "$CSHARPCILINTERPRETER" ; then
|
|
SKIP_CSHARP="1"
|
|
fi
|
|
fi
|
|
AC_SUBST(SKIP_CSHARP)
|
|
|
|
SKIP_MODULA3="1" # Always skipped!
|
|
AC_SUBST(SKIP_MODULA3)
|
|
|
|
SKIP_LUA=
|
|
# we need LUABIN & dynamic loading
|
|
if test -z "$LUABIN" || test -z "$LUADYNAMICLOADLIB"; then
|
|
SKIP_LUA="1"
|
|
fi
|
|
AC_SUBST(SKIP_LUA)
|
|
|
|
SKIP_ALLEGROCL=
|
|
if test -z "$ALLEGROCLBIN" ; then
|
|
SKIP_ALLEGROCL="1"
|
|
fi
|
|
AC_SUBST(SKIP_ALLEGROCL)
|
|
|
|
SKIP_CLISP=
|
|
if test -z "$CLISPBIN" ; then
|
|
SKIP_CLISP="1"
|
|
fi
|
|
AC_SUBST(SKIP_CLISP)
|
|
|
|
SKIP_R=
|
|
if test -z "$RBIN" ; then
|
|
SKIP_R="1"
|
|
fi
|
|
AC_SUBST(SKIP_R)
|
|
|
|
SKIP_CFFI=
|
|
#if test -z "$CFFIBIN" ; then
|
|
SKIP_CFFI="1"
|
|
#fi
|
|
AC_SUBST(SKIP_CFFI)
|
|
|
|
SKIP_UFFI=
|
|
#if test -z "$UFFIBIN" ; then
|
|
SKIP_UFFI="1"
|
|
#fi
|
|
AC_SUBST(SKIP_UFFI)
|
|
|
|
SKIP_SCILAB=
|
|
if test -z "$SCILAB"; then
|
|
SKIP_SCILAB="1"
|
|
fi
|
|
AC_SUBST(SKIP_SCILAB)
|
|
|
|
SKIP_GO=
|
|
if test -z "$GO" ; then
|
|
SKIP_GO="1"
|
|
fi
|
|
AC_SUBST(SKIP_GO)
|
|
|
|
SKIP_D=
|
|
if test -z "$DDEFAULTVERSION" ; then
|
|
SKIP_D="1"
|
|
fi
|
|
AC_SUBST(SKIP_D)
|
|
|
|
#----------------------------------------------------------------
|
|
# Additional language dependencies
|
|
#----------------------------------------------------------------
|
|
SKIP_GCJ=
|
|
if test -z "$GCJ" || test -z "$GCJH" ; then
|
|
SKIP_GCJ="1"
|
|
else
|
|
if test "$GCC" != yes; then
|
|
SKIP_GCJ="1"
|
|
fi
|
|
fi
|
|
AC_SUBST(SKIP_GCJ)
|
|
|
|
|
|
SKIP_ANDROID=
|
|
if test -z "$ANDROID" || test -z "$ADB" || test -z "$ANT" || test -z "$NDKBUILD" ; then
|
|
SKIP_ANDROID="1"
|
|
fi
|
|
AC_SUBST(SKIP_ANDROID)
|
|
|
|
|
|
|
|
#----------------------------------------------------------------
|
|
# Miscellaneous
|
|
#----------------------------------------------------------------
|
|
|
|
ABS_SRCDIR=`(cd ${srcdir} && pwd)`
|
|
|
|
dnl Under Cygwin, we may need native absolute path as it is used by SWIG, which
|
|
dnl may be a native, and not a Cygwin, program (this is the case when it's
|
|
dnl built using MinGW or cccl compiler in Cygwin environment). However it may,
|
|
dnl although this is probably more rare, also be built as a Cygwin program.
|
|
dnl Using "mixed" path like we do here allows the path to work in both cases.
|
|
case $host in
|
|
*-*-mingw* ) ABS_SRCDIR=`${srcdir}/Tools/convertpath -m $ABS_SRCDIR` ;;
|
|
*-*-cygwin* ) ABS_SRCDIR=`cygpath --mixed $ABS_SRCDIR` ;;
|
|
esac
|
|
|
|
# Root directory
|
|
ROOT_DIR=`pwd`
|
|
case $host in
|
|
*-*-cygwin*)
|
|
# Translate path for native Windows compilers for use with 'make check'
|
|
if (cygpath --mixed $ROOT_DIR) >/dev/null 2>/dev/null; then
|
|
ROOT_DIR=`cygpath --mixed $ROOT_DIR`
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
case $host in
|
|
*-*-cygwin* | *-*-mingw*)
|
|
# Extra files generated by some Windows compilers
|
|
EXTRA_CLEAN="*.stackdump *.exp *.lib *.pdb *.ilk"
|
|
;;
|
|
esac
|
|
|
|
AC_SUBST(ROOT_DIR)
|
|
AC_SUBST(EXTRA_CLEAN)
|
|
AC_SUBST(ac_aux_dir)
|
|
|
|
# Configure SWIG_LIB path
|
|
|
|
AC_ARG_WITH(swiglibdir,[ --with-swiglibdir=DIR Put SWIG system-independent libraries into DIR.],
|
|
[swig_lib="$withval"], [swig_lib="${datadir}/swig/${PACKAGE_VERSION}"])
|
|
AC_SUBST(swig_lib)
|
|
AC_DEFINE_DIR(SWIG_LIB, swig_lib, [Directory for SWIG system-independent libraries])
|
|
|
|
case $build in
|
|
# Windows does not understand unix directories. Convert into a windows directory with drive letter.
|
|
*-*-mingw*) SWIG_LIB_WIN_UNIX=`${srcdir}/Tools/convertpath -m $SWIG_LIB`;;
|
|
*-*-cygwin*) SWIG_LIB_WIN_UNIX=`cygpath --mixed "$SWIG_LIB"`;;
|
|
*) SWIG_LIB_WIN_UNIX="";;
|
|
esac
|
|
AC_DEFINE_UNQUOTED(SWIG_LIB_WIN_UNIX, ["$SWIG_LIB_WIN_UNIX"], [Directory for SWIG system-independent libraries (Unix install on native Windows)])
|
|
|
|
dnl For testing purposes, don't set SWIG_LIB_PREINST when building SWIG in the
|
|
dnl source directory under Windows because it is supposed to work without
|
|
dnl SWIG_LIB being set at all in this particular case.
|
|
if test "${srcdir}" = "."; then
|
|
AC_EGREP_CPP([yes],
|
|
[#ifdef _WIN32
|
|
yes
|
|
#endif
|
|
], [SWIG_LIB_PREINST=], [SWIG_LIB_PREINST=$ABS_SRCDIR/Lib])
|
|
else
|
|
dnl When not building in source directory, we must always set SWIG_LIB,
|
|
dnl even under Windows, as things couldn't work without it.
|
|
SWIG_LIB_PREINST=$ABS_SRCDIR/Lib
|
|
fi
|
|
AC_SUBST(SWIG_LIB_PREINST)
|
|
|
|
AC_CONFIG_FILES([
|
|
Makefile
|
|
swig.spec
|
|
Examples/Makefile
|
|
Examples/d/example.mk
|
|
Examples/xml/Makefile
|
|
Examples/test-suite/errors/Makefile
|
|
Examples/test-suite/chicken/Makefile
|
|
Examples/test-suite/csharp/Makefile
|
|
Examples/test-suite/d/Makefile
|
|
Examples/test-suite/guile/Makefile
|
|
Examples/test-suite/java/Makefile
|
|
Examples/test-suite/javascript/Makefile
|
|
Examples/test-suite/mzscheme/Makefile
|
|
Examples/test-suite/ocaml/Makefile
|
|
Examples/test-suite/octave/Makefile
|
|
Examples/test-suite/perl5/Makefile
|
|
Examples/test-suite/php/Makefile
|
|
Examples/test-suite/pike/Makefile
|
|
Examples/test-suite/python/Makefile
|
|
Examples/test-suite/ruby/Makefile
|
|
Examples/test-suite/scilab/Makefile
|
|
Examples/test-suite/tcl/Makefile
|
|
Examples/test-suite/lua/Makefile
|
|
Examples/test-suite/allegrocl/Makefile
|
|
Examples/test-suite/clisp/Makefile
|
|
Examples/test-suite/cffi/Makefile
|
|
Examples/test-suite/uffi/Makefile
|
|
Examples/test-suite/r/Makefile
|
|
Examples/test-suite/go/Makefile
|
|
Source/Makefile
|
|
Tools/javascript/Makefile
|
|
])
|
|
AC_CONFIG_FILES([preinst-swig], [chmod +x preinst-swig])
|
|
AC_CONFIG_FILES([CCache/ccache_swig_config.h])
|
|
|
|
#--------------------------------------------------------------------
|
|
# Building Examples/ out of source directory
|
|
#--------------------------------------------------------------------
|
|
|
|
# If building out of source tree, replicate Examples/ source tree in
|
|
# build directory, and copy over Makefiles from source directory.
|
|
# Prefix each Makefile with a header which sets SRCDIR to the relative
|
|
# source directory, and provides a rule for updating the Makefile from
|
|
# its original source.
|
|
AC_CONFIG_COMMANDS([Examples],[
|
|
if test "x${srcdir}" != "x." ; then
|
|
AC_MSG_NOTICE([generating Examples build tree])
|
|
for mkfile in `cd ${srcdir} && find Examples/ -type f -name Makefile`; do
|
|
dir=`dirname ${mkfile}`
|
|
d=${dir}
|
|
reldir="";
|
|
while test "x$d" != "x." ; do
|
|
d=`dirname $d`
|
|
reldir="${reldir}../"
|
|
done
|
|
relsrcdir=${reldir}${srcdir}/
|
|
AS_MKDIR_P([${dir}])
|
|
cat <<EOF >${mkfile}
|
|
# DO NOT EDIT: instead edit ${relsrcdir}${mkfile}
|
|
# and run (cd ${reldir} && ./config.status) to regenerate
|
|
SRCDIR = ${relsrcdir}${dir}/
|
|
|
|
EOF
|
|
cat ${srcdir}/${mkfile} >>${mkfile}
|
|
done
|
|
fi
|
|
])
|
|
|
|
#--------------------------------------------------------------------
|
|
|
|
AC_OUTPUT
|
|
|
|
langs=""
|
|
test -n "$SKIP_ALLEGROCL" || langs="${langs}allegrocl "
|
|
test -n "$SKIP_CFFI" || langs="${langs}cffi "
|
|
test -n "$SKIP_CHICKEN" || langs="${langs}chicken "
|
|
test -n "$SKIP_CLISP" || langs="${langs}clisp "
|
|
test -n "$SKIP_CSHARP" || langs="${langs}csharp "
|
|
test -n "$SKIP_D" || langs="${langs}d "
|
|
test -n "$SKIP_GO" || langs="${langs}go "
|
|
test -n "$SKIP_GUILE" || langs="${langs}guile "
|
|
test -n "$SKIP_JAVA" || langs="${langs}java "
|
|
test -n "$SKIP_JAVASCRIPT" || langs="${langs}javascript "
|
|
test -n "$SKIP_LUA" || langs="${langs}lua "
|
|
test -n "$SKIP_MODULA3" || langs="${langs}modula3 "
|
|
test -n "$SKIP_MZSCHEME" || langs="${langs}mzscheme "
|
|
test -n "$SKIP_OCAML" || langs="${langs}ocaml "
|
|
test -n "$SKIP_OCTAVE" || langs="${langs}octave "
|
|
test -n "$SKIP_PERL5" || langs="${langs}perl5 "
|
|
test -n "$SKIP_PHP" || langs="${langs}php "
|
|
test -n "$SKIP_PIKE" || langs="${langs}pike "
|
|
test -n "$SKIP_PYTHON" || langs="${langs}python "
|
|
test -n "$SKIP_R" || langs="${langs}r "
|
|
test -n "$SKIP_RUBY" || langs="${langs}ruby "
|
|
test -n "$SKIP_SCILAB" || langs="${langs}scilab "
|
|
test -n "$SKIP_TCL" || langs="${langs}tcl "
|
|
test -n "$SKIP_UFFI" || langs="${langs}uffi "
|
|
|
|
echo "
|
|
The SWIG test-suite and examples are configured for the following languages:
|
|
$langs
|
|
"
|
|
|
|
dnl configure.ac ends here
|