summaryrefslogtreecommitdiffstats
path: root/kig/configure.in.in
diff options
context:
space:
mode:
Diffstat (limited to 'kig/configure.in.in')
-rw-r--r--kig/configure.in.in251
1 files changed, 251 insertions, 0 deletions
diff --git a/kig/configure.in.in b/kig/configure.in.in
new file mode 100644
index 00000000..fa4cd0c7
--- /dev/null
+++ b/kig/configure.in.in
@@ -0,0 +1,251 @@
+kig_version=0.10.7
+
+kde_save_LIBS=$LIBS
+LIBS="$LIBS -lm"
+KDE_CHECK_FUNC_EXT(trunc)
+LIBS="$kde_save_LIBS"
+
+KDE_LANG_CPLUSPLUS
+
+# this variable is set to true if we need to warn the user that Python
+# scripting support has been disabled due to missing headers or libs
+# or whatever.. It's not set if the user explicitly disabled python
+# scripting ( "./configure --disable-kig-python-scripting" ). We
+# complain about this at the end of the ./configure script. Check out
+# configure.in.bot for the code..
+kig_warn_about_disabling_python="no"
+
+# this var is set to yes if we want to compile python scripting, and to
+# no otherwise
+kig_enable_python_scripting="yes"
+
+# this var is set to no if we want to disable support for compressed files
+# (for compatibility reasons with kde 3.1)
+kig_enable_compressed_files="yes"
+
+AC_DEFUN([KIG_PYTHON_NOT_FOUND], [
+ AC_MSG_WARN(
+ [[Kig needs the Python and Boost.Python libraries and their headers \
+installed for its Python scripting support. One of both was not \
+found, or the versions were incompatible, and Python scripting will be disabled.]] );
+ kig_warn_about_disabling_python="yes"
+ kig_enable_python_scripting="no" ] )
+
+AC_ARG_ENABLE( kig-python-scripting,
+ [ --disable-kig-python-scripting Disable Kig Python Scripting support],
+ [ kig_enable_python_scripting=$enableval ],
+ [ kig_enable_python_scripting=yes] )
+
+AC_ARG_ENABLE( kig-compressed-files,
+ [ --disable-kig-compressed-files Disable Kig Compressed Files support],
+ [ kig_enable_compressed_files=$enableval ],
+ [ kig_enable_compressed_files=yes] )
+
+dnl domi: we use some macro's by Ben Burton from the Regina program,
+dnl to check for the availability of a good python+boost.python
+dnl combination. They are included here, the end is marked at the
+dnl bottom. I have changed it only by removing some macro's, and by
+dnl making the other call KIG_PYTHON_NOT_FOUND instead of
+dnl REGINA_DO_NOT_COMPILE, and REGINA_WARN_*.
+dnl
+dnl Regina - A Normal Surface Theory Calculator
+dnl Configure Script Macros
+dnl
+dnl Copyright (c) 2002-2003, Ben Burton
+dnl For further details contact Ben Burton (bab@debian.org).
+dnl
+dnl This file is free software; you can redistribute it and/or
+dnl modify it under the terms of the GNU General Public License as
+dnl published by the Free Software Foundation; either version 2 of the
+dnl License, or (at your option) any later version.
+dnl
+dnl This file is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+dnl General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public
+dnl License along with this program; if not, write to the Free
+dnl Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+dnl MA 02110-1301, USA.
+dnl
+dnl Note that this copyright notice applies only to macros beginning
+dnl with REGINA_. Other macros found in acinclude.m4 have been taken
+dnl from external sources; these macros are stored in separate files
+dnl in the admin/ subdirectory and copyright notices can be found in
+dnl these separate files (and in the comments provided with the macros
+dnl themselves).
+dnl
+
+dnl -----------------------------------------------------------------
+dnl
+dnl Macros written for Regina
+dnl
+dnl -----------------------------------------------------------------
+
+dnl
+dnl REGINA_LIB_BOOST_PYTHON(TARGET-LIST, REQUIRED-BY)
+dnl
+dnl Checks for a usable boost.python installation.
+dnl Issues a warning and adds <TARGET-LIST> (which may consist of
+dnl several targets) to $DO_NOT_COMPILE if boost.python is missing.
+dnl
+dnl AC_SUBST()s the following variables:
+dnl
+dnl BOOST_PYTHON_INCLUDES: The compiler flags required for
+dnl building against boost.python,
+dnl including flags for building against
+dnl python itself.
+dnl BOOST_PYTHON_LIBS: The linker flags required for building
+dnl against boost.python.
+dnl PYTHON_LIBS: The linker flags required for building against
+dnl python itself.
+dnl
+dnl AC_DEFINE()s the following variables:
+dnl
+dnl HAVE_BOOST_PYTHON: Defined as 1 if we have a usable boost.python
+dnl installation, or remains undefined otherwise.
+dnl
+dnl Example: REGINA_LIB_BOOST_PYTHON(PYTHON, [the Python interface])
+dnl
+AC_DEFUN([REGINA_LIB_BOOST_PYTHON], [
+ AC_LANG_PUSH(C++)
+ KDE_CHECK_HEADERS([boost/shared_ptr.hpp], [
+ __regina_py_save_cxxflags="$CXXFLAGS"
+ __regina_py_save_ldflags="$LDFLAGS"
+ __regina_py_save_libs="$LIBS"
+ __regina_py_ok=0
+ for pyver in python python2.5 python2.4 python2.3 python2.2; do
+ for incdir in "/usr/include/$pyver" "/usr/local/include/$pyver" \
+ "/usr/$pyver/include" "/usr/local/$pyver/include" \
+ "$prefix/include/$pyver" "$prefix/$pyver/include"; do
+ CXXFLAGS="$__regina_py_save_cxxflags -I$incdir"
+ LDFLAGS="$__regina_py_save_ldflags -shared"
+
+ # Check for python includes.
+ AC_TRY_COMPILE([
+ #include <Python.h>
+ ], [
+ PyObject obj;
+ ], [
+ # Check for compatibility with boost.python.
+ AC_MSG_CHECKING([for boost.python with $incdir/Python.h])
+ AC_TRY_COMPILE([
+ #include <boost/python.hpp>
+ const char* greet() { return "Hello world!"; }
+ BOOST_PYTHON_MODULE(hello) { boost::python::def("greet", greet); }
+ ], [
+ /* No main body. */
+ ], [
+ AC_MSG_RESULT([yes])
+
+ # Check for -lpython.
+ for pylib in "$pyver" python python2.3 python2.2; do
+ for pylibdir in "/usr/lib" "/usr/local/lib" "/usr/lib/$pyver/config" \
+ "/usr/local/lib/$pyver/config"; do
+ for extralibs in "" "-lpthread -lm -lutil -ldl"; do
+ AC_MSG_CHECKING([for $pylibdir/lib$pylib and $extralibs with $incdir/Python.h])
+ LDFLAGS="$__regina_py_save_ldflags -L$pylibdir"
+ LIBS="-l$pylib $extralibs"
+ AC_TRY_LINK([
+ #include <Python.h>
+ ], [
+ Py_Initialize(); Py_Finalize();
+ ], [
+ AC_MSG_RESULT([yes])
+ for bplib in "-lboost_python-mt" "-lboost_python-gcc-mt-1_32" "-lboost_python-gcc-mt-1_31" "-lboost_python-gcc-mt" "-lboost_python"; do
+ AC_MSG_CHECKING([compilation of a boost.python program with $bplib])
+ LDFLAGS="$__regina_py_save_ldflags -L$pylibdir"
+ LIBS="-l$pylib $bplib $extralibs"
+ AC_TRY_LINK([
+ #include <boost/python.hpp>
+ const char* greet() { return "Hello world!"; }
+ BOOST_PYTHON_MODULE(hello) { boost::python::def("greet", greet); }
+ ], [
+ /* No main body. */
+ ], [
+ AC_MSG_RESULT([yes])
+ # And we're done!
+ BOOST_PYTHON_INCLUDES="-I$incdir"
+ BOOST_PYTHON_LIBS="$bplib"
+ PYTHON_LIBS="-l$pylib $extralibs"
+ PYTHON_LDFLAGS="-L$pylibdir"
+ __regina_py_ok=1
+ ], [
+ AC_MSG_RESULT([no])
+ ])
+ if test "$__regina_py_ok" = "1"; then break; fi
+ done
+ ], [
+ AC_MSG_RESULT([no])
+ ])
+ if test "$__regina_py_ok" = "1"; then break; fi
+ done
+ if test "$__regina_py_ok" = "1"; then break; fi
+ done
+ if test "$__regina_py_ok" = "1"; then break; fi
+ done
+ ], [
+ AC_MSG_RESULT([no])
+ ])
+ ])
+ if test "$__regina_py_ok" = "1"; then break; fi
+ done
+ if test "$__regina_py_ok" = "1"; then break; fi
+ done
+
+ CXXFLAGS="$__regina_py_save_cxxflags"
+ LDFLAGS="$__regina_py_save_ldflags"
+ LIBS="$__regina_py_save_libs"
+
+ if test "$__regina_py_ok" = "1"; then
+ AC_DEFINE(HAVE_BOOST_PYTHON, 1,
+ [Define to 1 if you have a usable boost.python installation.])
+ else
+ BOOST_PYTHON_INCLUDES=
+ BOOST_PYTHON_LIBS=
+ KIG_PYTHON_NOT_FOUND
+ fi
+ ], [
+ KIG_PYTHON_NOT_FOUND
+ ])
+ AC_LANG_POP(C++)
+ AC_SUBST(BOOST_PYTHON_INCLUDES)
+ AC_SUBST(BOOST_PYTHON_LIBS)
+ AC_SUBST(PYTHON_LDFLAGS)
+ AC_SUBST(PYTHON_LIBS)
+])
+
+dnl This is the end of the macro's copied from Ben Burton's Regina
+dnl program.
+
+if test "x$kig_enable_python_scripting" != xno; then
+ kig_enable_python_scripting="yes" # either yes or no..
+
+ kig_save_CXXFLAGS="$CXXFLAGS"
+ CXXFLAGS=`echo $CXXFLAGS | sed -e 's/-fno-exceptions//g'`
+ REGINA_LIB_BOOST_PYTHON( PYTHON, Kig Python Scripting )
+ CXXFLAGS="$kig_save_CXXFLAGS"
+fi
+
+if test "x$kig_enable_python_scripting" != xno; then
+ AC_DEFINE( KIG_ENABLE_PYTHON_SCRIPTING, 1, [Defined if Kig Python scripting is enabled] )
+fi
+
+AM_CONDITIONAL(KIG_COMPILE_PYTHON_SCRIPTING, test x$kig_enable_python_scripting != xno)
+
+if test "x$kig_enable_compressed_files" = xno; then
+ CXXFLAGS="$CXXFLAGS -DKIG_NO_COMPRESSED_FILES"
+fi
+
+AC_SUBST( KIGVERSION, $kig_version )
+AC_DEFINE_UNQUOTED( KIGVERSION, "$kig_version", [The current Kig version as a string] )
+
+KDE_CHECK_HEADERS([ieeefp.h])
+
+# apparently the KDE build system wants to see "dnl AC_OUTPUT( ... )",
+# not a normal AC_OUTPUT
+dnl AC_OUTPUT( kig/kig.lsm )
+dnl AC_OUTPUT( kig/README )
+dnl AC_OUTPUT( kig/package-kig.sh )
+dnl AC_OUTPUT( kig/VERSION )