893 lines
28 KiB
Plaintext
893 lines
28 KiB
Plaintext
dnl -*- Mode: sh -*-
|
|
dnl
|
|
dnl configure.ac - top level autoconf file for Lasso
|
|
dnl (Process this file with autoconf to produce a configure script.)
|
|
dnl
|
|
dnl
|
|
dnl See COPYING at the top of this package for the full license terms.
|
|
dnl
|
|
dnl
|
|
|
|
dnl Declare package and package version.
|
|
dnl (r-c).a.r
|
|
dnl - First number is the lowest supported API version number.
|
|
dnl - Second number is the number of supported API versions where API version >
|
|
dnl first number.
|
|
dnl - Third number is the current API version implementation version number.
|
|
dnl See libtool explanations about current, age and release, later in this file.
|
|
AC_INIT([lasso], 2.3.5, lasso-devel@lists.labs.libre-entreprise.org)
|
|
dnl Check if autoconf ver > 2.53
|
|
AC_PREREQ(2.53)
|
|
AC_CONFIG_MACRO_DIR([m4])
|
|
dnl Perform only subset commands and variable relevant to the host type.
|
|
AC_CANONICAL_HOST
|
|
AC_CANONICAL_SYSTEM
|
|
dnl Check existence of a relative pathed source file.
|
|
AC_CONFIG_SRCDIR(lasso/lasso.c)
|
|
dnl Copy stamp REVISIO-INFO in the configure script.
|
|
AC_REVISION($Revision$)
|
|
|
|
dnl Run many macros mostly needed by configure.ac.
|
|
AM_INIT_AUTOMAKE([foreign tar-pax])
|
|
dnl Support automake 1.11 silent mode
|
|
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
|
m4_ifdef([AM_SILENT_RULES],[HAVE_AM_SILENT_RULES=yes])
|
|
AM_CONDITIONAL(HAVE_AM_SILENT_RULES, test x$HAVE_AM_SILENT_RULES != x)
|
|
dnl Create rules to automaticaly regenerate the config header.
|
|
AM_CONFIG_HEADER([config.h lasso/lasso_config.h])
|
|
dnl Add --enable-maintainer-mode option to configure.
|
|
AM_MAINTAINER_MODE
|
|
|
|
dnl ==========================================================================
|
|
dnl Perform host specific configuration
|
|
dnl ==========================================================================
|
|
NULL=
|
|
|
|
### Sun Java environment needs to be told about platform...
|
|
SUN_EXTRA_INCLUDE=
|
|
case "${host}" in
|
|
*-pc-mingw32)
|
|
SUN_EXTRA_INCLUDE="win32"
|
|
;;
|
|
*-pc-cygwin)
|
|
SUN_EXTRA_INCLUDE="win32"
|
|
;;
|
|
*linux*)
|
|
SUN_EXTRA_INCLUDE="linux"
|
|
;;
|
|
esac
|
|
|
|
### adapting build environment for different platforms...
|
|
MINGW=0
|
|
DARWIN=0
|
|
case "${host}" in
|
|
*aix*)
|
|
CFLAGS="${CFLAGS} -D_ALL_SOURCE"
|
|
;;
|
|
*-pc-mingw32)
|
|
case "${build}" in
|
|
*-pc-cygwin)
|
|
CC="gcc -mno-cygwin"
|
|
CFLAGS="${CFLAGS} -D_MSC_VER -DIN_LASSO -DMINGW -DWIN32 -D_WIN32 -I/usr/local/include"
|
|
LDFLAGS="${LDFLAGS} -L/usr/local/lib"
|
|
MINGW=1
|
|
;;
|
|
esac
|
|
;;
|
|
*-darwin*)
|
|
DARWIN=1
|
|
;;
|
|
esac
|
|
|
|
# OSX Fink
|
|
if test -d /sw/bin ; then
|
|
PATH=$PATH:/sw/bin
|
|
fi
|
|
|
|
dnl
|
|
dnl Check for programs
|
|
dnl
|
|
AC_PROG_CC
|
|
CFLAGS=""
|
|
AM_CFLAGS=""
|
|
AC_HEADER_STDC
|
|
LT_AC_PROG_RC
|
|
AC_EXEEXT
|
|
AC_PROG_CC_C_O
|
|
AM_SANITY_CHECK
|
|
AC_PROG_AWK
|
|
AC_PROG_LN_S
|
|
AC_LIBTOOL_WIN32_DLL
|
|
AM_PROG_LIBTOOL
|
|
AC_SUBST(LIBTOOL_DEPS)
|
|
AS_COMPILER_FLAGS(WARNING_FLAGS, "-Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wold-style-definition -Wdeclaration-after-statement -Wmissing-declarations -Wredundant-decls -Wmissing-noreturn -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Winline -Wformat-nonliteral -Wformat-security -Wswitch-enum -Wswitch-default -Winit-self -Wmissing-include-dirs -Wundef -Waggregate-return -Wmissing-format-attribute -Wnested-externs")
|
|
|
|
dnl Find tar command for make dist
|
|
AC_CHECK_PROGS(TAR, gnutar gtar tar)
|
|
|
|
dnl Check existence of binding programs
|
|
AC_CHECK_CLASSPATH
|
|
AC_PROG_JAVAC
|
|
AC_PROG_JAVA
|
|
AC_PROG_JAVAH
|
|
AC_PROG_JAR
|
|
DPS_XTRA_CLASSPATH(CLASSPATH_JUNIT, junit.framework.Test, junit.jar)
|
|
old_cp=$CLASSPATH
|
|
export CLASSPATH=${CLASSPATH}:${CLASSPATH_JUNIT}
|
|
AC_CHECK_JUNIT
|
|
if test "x$old_cp" = "x"; then
|
|
unset CLASSPATH
|
|
else
|
|
$CLASSPATH=$old_cp
|
|
fi
|
|
unset old_cp
|
|
dnl AC_CHECK_PROGS(JAVA, gij java)
|
|
dnl AC_CHECK_PROGS(JAVAC, gcj javac)
|
|
dnl AC_CHECK_PROGS(JAVAH, gjavah gcjh javah)
|
|
dnl AC_CHECK_PROGS(JAR, fastjar jar)
|
|
|
|
AC_CHECK_PROGS(PERL, perl)
|
|
AC_CHECK_PROGS(PHP5, php5 php)
|
|
AC_CHECK_PROGS(PHP5_CONFIG, php-config5 php-config)
|
|
AC_CHECK_PROGS(PYTHON, python)
|
|
AC_CHECK_PROGS(SWIG, swig)
|
|
|
|
dnl Make sure we have an ANSI compiler
|
|
AM_C_PROTOTYPES
|
|
test "z$U" != "z" && AC_MSG_ERROR(Compiler not ANSI compliant)
|
|
|
|
dnl Check for variadic macros
|
|
AC_CACHE_CHECK([for variadic cpp macros],
|
|
[ac_cv_cpp_variadic_macros],
|
|
[AC_TRY_COMPILE(
|
|
[#include <stdio.h>
|
|
#define a(b,c...) printf(b,##c)],
|
|
[a("foo");a("%s","bar");a("%s%s","baz","quux");],
|
|
ac_cv_cpp_variadic_macros=yes,
|
|
ac_cv_cpp_variadic_macros=no)])
|
|
if test "x${ac_cv_cpp_variadic_macros}" != "xno"; then
|
|
AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
|
|
fi
|
|
|
|
|
|
dnl ==========================================================================
|
|
dnl Version Super.Size.Me.L
|
|
dnl ==========================================================================
|
|
|
|
changequote(<<, >>)dnl
|
|
VERSION_MAJOR=`echo $VERSION | $SED -e 's/^\([^\.]*\)\.\([^\.]*\)\.\(.*\)$/\1/'`
|
|
VERSION_MINOR=`echo $VERSION | $SED -e 's/^\([^\.]*\)\.\([^\.]*\)\.\(.*\)$/\2/'`
|
|
VERSION_RELEASE=`echo $VERSION | $SED -e 's/^\([^\.]*\)\.\([^\.]*\)\.\(.*\)$/\3/'`
|
|
changequote([, ])dnl
|
|
VERSION_UNDERSCORED=`echo $VERSION | $SED -e 's/\./_/g'`
|
|
AC_SUBST(VERSION_UNDERSCORED)
|
|
|
|
|
|
dnl Add versionning & package defines to lasso_.h
|
|
AC_DEFINE_UNQUOTED(LASSO_VERSION_MAJOR, $VERSION_MAJOR, [Major version number])
|
|
AC_DEFINE_UNQUOTED(LASSO_VERSION_MINOR, $VERSION_MINOR, [Minor version number])
|
|
AC_DEFINE_UNQUOTED(LASSO_VERSION_SUBMINOR, $VERSION_RELEASE, [Release version number])
|
|
|
|
dnl Dirty hack in order to have dynamic resource version numbering.
|
|
WINDOWS_VERSION=`echo $VERSION_MAJOR,$VERSION_MINOR,$VERSION_RELEASE,0`
|
|
AC_SUBST(WINDOWS_VERSION)
|
|
|
|
dnl CURRENT, REVISION, AGE
|
|
dnl - library source changed -> increment REVISION
|
|
dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
|
|
dnl - interfaces added -> increment AGE
|
|
dnl - interfaces removed -> AGE = 0
|
|
|
|
# syntax: CURRENT[:REVISION[:AGE]]
|
|
# So if M=major, m=minor, r=release:
|
|
# c = M + a = M + m;
|
|
# m = a
|
|
# r = r
|
|
current=`expr $VERSION_MAJOR + $VERSION_MINOR`
|
|
LASSO_VERSION_INFO="12:3:9"
|
|
AC_SUBST(LASSO_VERSION_INFO)
|
|
|
|
dnl Compute the minimal supported ABI version for Win32 scripts and resources files.
|
|
minimal_version=`echo $LASSO_VERSION_INFO | $AWK -F: '{printf("%d\n",$1-$3)};'`
|
|
UPCASED_DLL_FILENAME="LIBLASSO-$minimal_version.DLL"
|
|
DLL_FILENAME="liblasso-$minimal_version.dll"
|
|
AC_SUBST(UPCASED_DLL_FILENAME)
|
|
AC_SUBST(DLL_FILENAME)
|
|
|
|
dnl ==========================================================================
|
|
dnl Swig
|
|
dnl ==========================================================================
|
|
SWIG_MIN_VERSION=1.3.28
|
|
AC_MSG_CHECKING(SWIG support)
|
|
if test "X$SWIG" != "X"; then
|
|
SWIG_VERSION=`$SWIG -version 2>&1 | $SED -ne 's/^SWIG Version //p'`
|
|
SWIG_VERSION_DEC=`echo $SWIG_VERSION | $AWK -F. '{printf("%d\n", 10000*$1 + 100*$2 + $3)};'`
|
|
|
|
if test $SWIG_VERSION_DEC -ge 010314; then
|
|
SWIG_PYTHON_ARGS=-noproxy
|
|
fi
|
|
|
|
SWIG_MIN_VERSION_DEC=`echo $SWIG_MIN_VERSION | $AWK -F. '{printf("%d\n", 10000*$1 + 100*$2 + $3)};'`
|
|
|
|
if test $SWIG_VERSION_DEC -ge $SWIG_MIN_VERSION_DEC; then
|
|
AC_MSG_RESULT($SWIG_VERSION - OK)
|
|
else
|
|
AC_MSG_RESULT($SWIG_VERSION - too old to generate language interfaces)
|
|
if test -r $srcdir/python/lasso_wrap.c ; then
|
|
AC_MSG_WARN(Pre-generated language interface files are present)
|
|
AC_MSG_WARN(If you want to change the interfaces you will need)
|
|
AC_MSG_WARN(SWIG version $SWIG_MIN_VERSION from http://www.swig.org/)
|
|
else
|
|
AC_MSG_WARN(There are no pre-generated language interface files)
|
|
AC_MSG_WARN(lasso language interfaces will NOT build.)
|
|
AC_MSG_WARN(If you want to build them you will need)
|
|
AC_MSG_WARN(SWIG version $SWIG_MIN_VERSION from http://www.swig.org/)
|
|
AC_MSG_WARN(Alternatively copy the pre-generated interface)
|
|
AC_MSG_WARN(files from a released version)
|
|
fi
|
|
fi
|
|
else
|
|
AC_MSG_RESULT(not present - using pre-generated interface files)
|
|
SWIG="echo"
|
|
fi
|
|
AC_SUBST(SWIG_PYTHON_ARGS)
|
|
|
|
dnl Detect available languages binding.
|
|
languages_available=
|
|
|
|
|
|
# ------------
|
|
# JAVA binding
|
|
# ------------
|
|
|
|
dnl Check if java is explicitly disabled.
|
|
AC_ARG_ENABLE(java, [ --disable-java disable the Java binding],,
|
|
enable_java="yes")
|
|
AC_ARG_WITH(java-home,
|
|
[ --with-java-home=(JAVA_HOME) set the full path to the java home directory.])
|
|
SUN=no
|
|
|
|
dnl If the java compiler seems to be a Sun JDK-like compile (Kaffe, Sun JDK...)
|
|
if test "x$JAVAC" = "xjavac"; then
|
|
JAVAC_PATH=`which $JAVAC`
|
|
if test "x$with_java_home" = "x"; then
|
|
with_java_home=`readlink -f $JAVAC_PATH | sed s#/bin/.*##`
|
|
fi
|
|
dnl If we have a java compiler
|
|
dnl need to change quotes to allow square brackets
|
|
changequote(<<, >>)dnl
|
|
JAVA_VERSION=`$JAVA -version 2>&1 | $SED -ne 's/java version "\([^"]*\)".*/\1/p' 2>/dev/null`
|
|
changequote([, ])dnl
|
|
dnl If no java version found, perphas it is a kaffee environment...
|
|
if test "x$JAVA_VERSION" = x; then
|
|
JAVA_VERSION=`$JAVA -version 2>&1 | grep "Java Version" | $SED 's/^.*Java Version: //g'`
|
|
dnl If the java environment is kaffe, specify the JAVA_INCLUDE directory.
|
|
else
|
|
dnl We assume it is a SUN environment.
|
|
SUN=yes
|
|
fi
|
|
JAVAC_FLAGS="-target 1.4 -source 1.4"
|
|
CLASSPATH_OPT="-classpath"
|
|
fi
|
|
|
|
if test "x$with_java_home" != x; then
|
|
JAVA_INCLUDE="$with_java_home/include"
|
|
fi
|
|
|
|
if ! test -f "$JAVA_INCLUDE/jni.h"; then
|
|
JAVA_VERSION=""
|
|
fi
|
|
|
|
dnl GNU java environment
|
|
if test "x$JAVAH" = "xgcjh" || test "x$JAVAH" = "xgjavah" ; then
|
|
dnl JNI compatible header files. (not used with SWIG.)
|
|
JAVAH_FLAGS="-jni"
|
|
JAVA_INCLUDE=""
|
|
fi
|
|
|
|
dnl If the java compiler is the GNU Java Compiler.
|
|
if echo "$JAVAC" | grep -q "gcj"; then
|
|
changequote(<<, >>)dnl
|
|
JAVA_VERSION=`$JAVAC --version 2>&1 | $SED -ne 's/gcj[^[:blank:]]* ([^)]*) \([^ ]*\).*/\1/p' 2>/dev/null`
|
|
MAJOR=`echo $JAVA_VERSION | sed 's/.*[^[:digit:]]\?\([[:digit:]]\+\)\.[[:digit:]]\+\.[[:digit:]]\+/\1/'`
|
|
MINOR=`echo $JAVA_VERSION | sed 's/.*[^[:digit:]]\?[[:digit:]]\+\.\([[:digit:]]\+\)\.[[:digit:]]\+/\1/'`
|
|
RELEASE=`echo $JAVA_VERSION | sed 's/.*[^[:digit:]]\?[[:digit:]]\+\.[[:digit:]]\+\.\([[:digit:]]\+\).*/\1/'`
|
|
changequote([, ])dnl
|
|
dnl Byte-compiled .class file
|
|
if test $MAJOR -gt 4 -o \( $MAJOR -eq 4 -a $MINOR -gt 1 \) -o \( $MAJOR -eq 4 -a $MINOR -eq 1 -a $RELEASE -ge 3 \); then
|
|
JAVAC_FLAGS="-fsource=1.4 -ftarget=1.4"
|
|
fi
|
|
unset MAJOR
|
|
unset MINOR
|
|
unset RELEASE
|
|
dnl Checking for jni.h if gcj is the java interpreter.
|
|
AC_CHECK_HEADERS([jni.h], [], [JAVA_VERSION=""])
|
|
CLASSPATH_OPT="--classpath"
|
|
fi
|
|
|
|
dnl Now transform JAVA_INCLUDE in CFLAG option if applicable.
|
|
if test "X$JAVA_INCLUDE" != "X"; then
|
|
dnl If it is a sun environment
|
|
if test "x$SUN" = "xyes"; then
|
|
JAVA_INCLUDE="$JAVA_INCLUDE -I$JAVA_INCLUDE/$SUN_EXTRA_INCLUDE"
|
|
fi
|
|
JAVA_INCLUDE=-I$JAVA_INCLUDE
|
|
fi
|
|
|
|
dnl If we found a java version information, we have java compilation environment.
|
|
if test "X$JAVA_VERSION" != "X" && test "X$JAR" != "X" && test "x$JAVAH" != "x"; then
|
|
languages_available="$languages_available $JAVA($JAVA_VERSION)"
|
|
else
|
|
enable_java=no
|
|
JAVA_VERSION=""
|
|
fi
|
|
|
|
dnl Conditional java sub dir test.
|
|
AM_CONDITIONAL([JAVA_ENABLED],[test "x$enable_java" = "xyes"])
|
|
AM_CONDITIONAL([JUNIT_ENABLED],[test "x$JUNIT" != "x"])
|
|
AC_SUBST(JAVA_VERSION)
|
|
AC_SUBST(JAVAC_FLAGS)
|
|
AC_SUBST(JAVAH_FLAGS)
|
|
AC_SUBST(JAVA_INCLUDE)
|
|
AC_SUBST(CLASSPATH_OPT)
|
|
JDK_INCLUDE=$JAVA_INCLUDE
|
|
AC_SUBST(JDK_INCLUDE)
|
|
|
|
|
|
# --------------
|
|
# Python binding
|
|
# --------------
|
|
|
|
dnl Check if python is explicitly disabled.
|
|
AC_ARG_ENABLE(python, [ --disable-python disable the Python binding],,
|
|
enable_python="yes")
|
|
|
|
dnl Check if user passed a specific python program.
|
|
AC_ARG_WITH(python,
|
|
[ --with-python=(PYTHON) set the full path to the python program to use.])
|
|
|
|
dnl specific program passed, set PYTHON to it.
|
|
if test "X$with_python" != "X"; then
|
|
PYTHON=$with_python
|
|
fi
|
|
|
|
|
|
dnl need to change quotes to allow square brackets
|
|
changequote(<<, >>)dnl
|
|
PYTHON_VERSION=`$PYTHON -c 'import sys; print sys.version[:3]' 2>/dev/null`
|
|
changequote([, ])dnl
|
|
|
|
test "x$PYTHON" != "x" || AC_MSG_ERROR(Python must be installed to compile lasso)
|
|
|
|
AC_MSG_CHECKING(for Python development files)
|
|
dnl Check if we were be able to extract a good version number.
|
|
if test "X$PYTHON_VERSION" != "X"; then
|
|
PY_PREFIX=`$PYTHON -c 'import sys ; print sys.prefix'`
|
|
PY_EXEC_PREFIX=`$PYTHON -c 'import sys ; print sys.exec_prefix'`
|
|
changequote(<<, >>)dnl
|
|
PY_VERSION=`$PYTHON -c 'import sys ; print sys.version[0:3]'`
|
|
changequote([, ])dnl
|
|
PYTHON_H=$PY_PREFIX/include/python$PY_VERSION/Python.h
|
|
LIBPYTHON_SO=$PY_PREFIX/lib/libpython$PY_VERSION.so
|
|
if test -f $PYTHON_H; then
|
|
dnl Not useful unless we make a test on the python version.
|
|
PYTHON="python$PY_VERSION"
|
|
PY_CFLAGS="-I$PY_PREFIX/include/python$PY_VERSION"
|
|
PY_MAKEFILE="$PY_EXEC_PREFIX/lib/python$PY_VERSION/config/Makefile"
|
|
PY_OTHER_LIBS=`$SED -n -e 's/^LIBS=\(.*\)/\1/p' $PY_MAKEFILE`
|
|
PY_EXTRA_LIBS="$PY_LOCALMODLIBS $PY_BASEMODLIBS $PY_OTHER_LIBS"
|
|
PY_SITE_PACKAGES="\${prefix}/lib/python$PY_VERSION/site-packages"
|
|
AC_SUBST(PYTHON)
|
|
AC_SUBST(PY_LIB_LOC)
|
|
AC_SUBST(PY_CFLAGS)
|
|
AC_SUBST(PY_EXTRA_LIBS)
|
|
AC_SUBST(PY_DYNLOAD)
|
|
AC_SUBST(PY_LIB_A)
|
|
AC_SUBST(PY_SITE_PACKAGES)
|
|
languages_available="$languages_available python($PYTHON_VERSION)"
|
|
else
|
|
enable_python=no
|
|
fi
|
|
else
|
|
enable_python=no
|
|
fi
|
|
AM_CONDITIONAL([PYTHON_ENABLED],[test "x$enable_python" = "xyes"])
|
|
AC_MSG_RESULT($enable_python)
|
|
AC_SUBST(PYTHON_VERSION)
|
|
|
|
# -----------
|
|
# PHP 5 binding
|
|
# -----------
|
|
|
|
dnl Check if php is explicitly enabled.
|
|
AC_ARG_ENABLE(php5, [ --enable-php5 enable the PHP 5 binding],,
|
|
enable_php5="yes")
|
|
|
|
AC_ARG_WITH(php5-config,
|
|
[ --with-php5-config=(PHP5_CONFIG) Specify full path to php-config5.])
|
|
|
|
AC_ARG_ENABLE(php5-force, [ --enable-php5-force always enable of the PHP 5 binding (win32)],
|
|
[ENABLE_PHP5_FORCE="yes"],
|
|
[ENABLE_PHP5_FORCE="no"])
|
|
|
|
|
|
dnl Check if user passed a specific php-config program.
|
|
if test "X$with_php5_config" != "X" ; then
|
|
PHP5_CONFIG=$with_php5_config
|
|
fi
|
|
|
|
if test "X$PHP5_CONFIG" != "X" ; then
|
|
PHP5_INCLUDES=`$PHP5_CONFIG --includes`
|
|
PHP5_LDFLAGS=`$PHP5_CONFIG --ldflags`
|
|
PHP5_LIBS=`$PHP5_CONFIG --libs`
|
|
PHP5_PREFIX=`$PHP5_CONFIG --prefix`
|
|
PHP5_QUOTED_PREFIX=$(echo $PHP5_PREFIX | $SED 's/\//\\\//g')
|
|
PHP5_UNPREFIXED_EXTENSION_DIR=$($PHP5_CONFIG --extension-dir | $SED "s/$PHP5_QUOTED_PREFIX//g")
|
|
else
|
|
# We assume PHP are in /usr/local directory.
|
|
if test $MINGW -eq 1; then
|
|
CFLAGS="$CFLAGS -DZTS -DZEND_WIN32 -DWIN32 -D_MBCS"
|
|
fi
|
|
PHP5_INCLUDES="-I/usr/local/include/php5 -I/usr/local/include/php5/main -I/usr/local/include/php5/Zend -I/usr/local/include/php5/TSRM -I/usr/local/include/php5/win32"
|
|
PHP5_LDFLAGS=
|
|
PHP5_LIBS="-lphp5ts -lxmlparse -lxmltok"
|
|
PHP5_UNPREFIXED_EXTENSION_DIR=
|
|
PHP5_PREFIX=
|
|
fi
|
|
|
|
AC_ARG_WITH(php5-include-dir,
|
|
[ --with-php5-include-dir=(PHP5_INCLUDE_DIR) Specify full path to php 5 include dir.],
|
|
[PHP5_INCLUDE_DIR="$withval"],[PHP5_INCLUDE_DIR=${datadir}/php])
|
|
|
|
AC_ARG_WITH(php5-config-dir,
|
|
[ --with-php5-config-dir=(PHP5_CONFIG_DIR) Specify full path to php 5 config dir.],
|
|
[PHP5_CONFIG_DIR="$withval"],[PHP5_CONFIG_DIR=${sysconfdir}/php5/conf.d/])
|
|
|
|
AC_SUBST(PHP5_INCLUDES)
|
|
AC_SUBST(PHP5_LDFLAGS)
|
|
AC_SUBST(PHP5_LIBS)
|
|
AC_SUBST(PHP5_UNPREFIXED_EXTENSION_DIR)
|
|
AC_SUBST(PHP5_EXTENSION_DIR)
|
|
AC_SUBST(PHP5_PREFIX)
|
|
AC_SUBST(PHP5_INCLUDE_DIR)
|
|
AC_SUBST(PHP5_CONFIG_DIR)
|
|
|
|
dnl Check for expat
|
|
have_expat_include=no
|
|
if test $MINGW -eq 1; then
|
|
AC_CHECK_LIB(xmlparse, XML_ParserCreate, have_expat_lib=yes, have_expat_lib=no)
|
|
else
|
|
AC_CHECK_LIB(expat, XML_ParserCreate, have_expat_lib=yes, have_expat_lib=no)
|
|
fi
|
|
|
|
if test x$have_expat_lib = xno; then
|
|
enable_php5=no
|
|
fi
|
|
|
|
AC_MSG_CHECKING(for PHP 5 development files)
|
|
if $PHP5_CONFIG --version | grep -q "^5" || test "x$ENABLE_PHP5_FORCE" = "xyes"
|
|
then
|
|
PHP5_VERSION=`$PHP5_CONFIG --version 2> /dev/null`
|
|
languages_available="$languages_available php5($PHP5_VERSION)"
|
|
else
|
|
enable_php5=no
|
|
fi
|
|
|
|
AC_MSG_RESULT($enable_php5)
|
|
AM_CONDITIONAL([PHP5_ENABLED], [test "x$enable_php5" = "xyes"])
|
|
AC_SUBST(PHP5_VERSION)
|
|
|
|
|
|
### # ----------
|
|
### # C# binding (disabled for the moment)
|
|
### # ----------
|
|
###
|
|
### AC_ARG_ENABLE(csharp, [ --disable-csharp disable the C Sharp binding],,
|
|
### enable_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=])
|
|
###
|
|
### if test -z "$CSHARPCOMPILERBIN" ; then
|
|
### case $host in
|
|
### *-*-cygwin* | *-*-mingw*)
|
|
### AC_CHECK_PROGS(CSHARPCOMPILER, mcs.bat cscc csc);;
|
|
### *)AC_CHECK_PROGS(CSHARPCOMPILER, mcs cscc);;
|
|
### esac
|
|
### else
|
|
### CSHARPCOMPILER="$CSHARPCOMPILERBIN"
|
|
### fi
|
|
###
|
|
### CSHARPPATHSEPARATOR="/"
|
|
### CSHARPCYGPATH_W=echo
|
|
### if test -z "$CSHARPBIN" ; then
|
|
### #languages_available="$languages_available C#($CSHARPCOMPILER)"
|
|
### CSHARPCILINTERPRETER=""
|
|
### 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 -n "/C#\|Mono/p") 2>/dev/null`
|
|
### CSHARPCOMPILER="";
|
|
### if test -n "$csharp_version_raw" ; then
|
|
### if test "$csharp_version_raw" = "$csharp_version_searched" ; then
|
|
### CSHARPCOMPILER="mcs"
|
|
### fi
|
|
### fi
|
|
###
|
|
### # mono interpreter (ver 0.26 doesn't seem to work on Windows platforms)
|
|
### case $host in
|
|
### *-*-cygwin* | *-*-mingw*)
|
|
### ;;
|
|
### *)AC_CHECK_PROGS(CSHARPCILINTERPRETER, mint);;
|
|
### esac
|
|
### else
|
|
### if test "csc" = "$CSHARPCOMPILER"; then
|
|
### CSHARPPATHSEPARATOR="\\\\"
|
|
### CSHARPCYGPATH_W='cygpath -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=" -Wl,--add-stdcall-alias"
|
|
else
|
|
CSHARPDYNAMICLINKING=""
|
|
fi ;;
|
|
*)CSHARPDYNAMICLINKING="";;
|
|
esac
|
|
|
|
AC_CHECK_PROGS(GACUTIL, gacutil)
|
|
|
|
AC_SUBST(CSHARPCILINTERPRETER)
|
|
AC_SUBST(CSHARPCYGPATH_W)
|
|
AC_SUBST(CSHARPCOMPILER)
|
|
AC_SUBST(CSHARPDYNAMICLINKING)
|
|
AC_SUBST(CSHARPLIBRARYPREFIX) # Is this going to be used?
|
|
AC_SUBST(GACUTIL)
|
|
|
|
if test "X$CSHARPCOMPILER" = X; then
|
|
enable_csharp=no
|
|
fi
|
|
if test "X$GACUTIL" = X; then
|
|
enable_csharp=no
|
|
fi
|
|
AM_CONDITIONAL([CSHARP_ENABLED], [test "x$enable_csharp" = "xyes"])
|
|
|
|
|
|
# ------------
|
|
# Perl binding
|
|
# ------------
|
|
|
|
AC_ARG_ENABLE(perl, [ --disable-perl disable the Perl binding],,
|
|
enable_perl="yes")
|
|
|
|
if test "X$PERL" != "X"; then
|
|
PERLINSTALLSITEARCH=`$PERL -MConfig -e 'print $Config{installsitearch};'`
|
|
PERLMAN3DIR=`$PERL -MConfig -e 'print $Config{man3dir};'`
|
|
else
|
|
PERLINSTALLSITEARCH=none
|
|
PERLMAN3DIR=none
|
|
fi
|
|
AC_SUBST(PERLINSTALLSITEARCH)
|
|
AC_SUBST(PERLMAN3DIR)
|
|
|
|
AC_MSG_CHECKING(for Perl API)
|
|
if test "X$enable_perl" != "Xno" ; then
|
|
if test "X$enable_perl" != "Xyes"; then
|
|
PERL=$enable_perl
|
|
fi
|
|
enable_perl=yes
|
|
fi
|
|
|
|
PERL_VERSION=`$PERL -MConfig -e 'print $Config{version}' 2>/dev/null`
|
|
if test "X$PERL_VERSION" != "X"; then
|
|
languages_available="$languages_available perl($PERL_VERSION)"
|
|
if test $enable_perl = yes; then
|
|
languages="$languages perl"
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL([PERL_ENABLED],[test "x$enable_perl" = "xyes"])
|
|
AC_MSG_RESULT($enable_perl)
|
|
AC_SUBST(PERL_VERSION)
|
|
|
|
|
|
dnl Checks for zlib library (code adapted from libxml2 configure.in)
|
|
_cppflags="${CPPFLAGS}"
|
|
_ldflags="${LDFLAGS}"
|
|
|
|
AC_ARG_WITH(zlib,
|
|
[ --with-zlib[[=DIR]] use libz in DIR],[
|
|
if test "$withval" != "no" -a "$withval" != "yes"; then
|
|
Z_DIR=$withval
|
|
CPPFLAGS="${CPPFLAGS} -I$withval/include"
|
|
LDFLAGS="${LDFLAGS} -L$withval/lib"
|
|
fi
|
|
])
|
|
saved_LIB=$LIBS
|
|
LIBS=
|
|
AC_CHECK_HEADERS(zlib.h,
|
|
AC_SEARCH_LIBS(gzread, [z zlib1],[
|
|
AC_DEFINE([HAVE_LIBZ], [], [Have compression library])
|
|
if test "x${Z_DIR}" != "x"; then
|
|
Z_CFLAGS="-I${Z_DIR}/include"
|
|
Z_LIBS="-L${Z_DIR}/lib $LIBS"
|
|
[case ${host} in
|
|
*-*-solaris*)
|
|
Z_LIBS="-L${Z_DIR}/lib -R${Z_DIR}/lib $LIBS"
|
|
;;
|
|
esac]
|
|
else
|
|
Z_LIBS="$LIBS"
|
|
fi]))
|
|
LIBS=$saved_LIB
|
|
test "z$Z_LIBS" != "z" || AC_MSG_ERROR(missing zlib)
|
|
|
|
AC_SUBST(Z_CFLAGS)
|
|
AC_SUBST(Z_LIBS)
|
|
|
|
CPPFLAGS=${_cppflags}
|
|
LDFLAGS=${_ldflags}
|
|
|
|
dnl ==========================================================================
|
|
dnl Test suite (requires check)
|
|
dnl ==========================================================================
|
|
dnl Check if user disabled the tests.
|
|
AC_ARG_ENABLE(tests, [ --disable-tests disable the test suite],,
|
|
enable_tests="yes")
|
|
if test "x$enable_tests" = xyes ; then
|
|
AC_CHECK_LIB(check, srunner_set_log, enable_tests="yes", enable_tests="no")
|
|
CHECK_CFLAGS=""
|
|
CHECK_LIBS="-lcheck"
|
|
AC_SUBST(CHECK_CFLAGS)
|
|
AC_SUBST(CHECK_LIBS)
|
|
AC_CHECK_LIB(check, srunner_set_xml, [AC_DEFINE(CHECK_IS_XML, [], [Define if check available with XML support])])
|
|
fi
|
|
|
|
AM_CONDITIONAL(WITH_TESTS, [test "x$enable_tests" = "xyes"])
|
|
|
|
dnl Final step, add missing programs.
|
|
AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
|
|
AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
|
|
AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
|
|
AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
|
|
|
|
dnl Check if wsf is explicitly disabled.
|
|
AC_ARG_ENABLE(wsf, [ --enable-wsf enable experimental ID-WSF],
|
|
enable_wsf="yes", enable_wsf="no")
|
|
|
|
AM_CONDITIONAL([WSF_ENABLED],[test "x$enable_wsf" = "xyes"])
|
|
LASSO_WSF_SUPPORT=0
|
|
if test "x$enable_wsf" = "xyes"; then
|
|
AC_DEFINE(LASSO_WSF_ENABLED, [], [Define if ID-WSF support is enabled])
|
|
LASSO_WSF_SUPPORT=1
|
|
fi
|
|
AC_SUBST(LASSO_WSF_SUPPORT)
|
|
|
|
|
|
dnl API Reference documentation support
|
|
GTK_DOC_CHECK(1.9)
|
|
if test "z$with_html_dir" != "z" ; then
|
|
LASSO_DOCDIR=$with_html_dir
|
|
else
|
|
LASSO_DOCDIR='$(datadir)/doc/lasso'
|
|
fi
|
|
AC_SUBST(LASSO_DOCDIR)
|
|
|
|
AC_ARG_WITH(html-dir, [ --with-html-dir=PATH path to installed docs ])
|
|
|
|
if test "x$with_html_dir" = "x" ; then
|
|
HTML_DIR='${datadir}/gtk-doc/html'
|
|
else
|
|
HTML_DIR=$with_html_dir
|
|
fi
|
|
AC_SUBST(HTML_DIR)
|
|
|
|
|
|
dnl pkg-config path
|
|
AC_ARG_WITH(pkg-config, [ --with-pkg-config=PATH set pkg-config metadata search path.],
|
|
PKG_CONFIG_PATH="${withval}", PKG_CONFIG_PATH="")
|
|
if test "z$PKG_CONFIG_PATH" != "z"; then
|
|
export PKG_CONFIG_PATH
|
|
fi
|
|
|
|
PKG_CHECK_MODULES(LASSO, glib-2.0 >= 2.4.0 gobject-2.0 >= 2.4.0 libxml-2.0 xmlsec1 >= 1.2.6 xmlsec1-openssl >= 1.2.6 openssl)
|
|
|
|
AC_ARG_WITH(sasl2, [ --with-sasl2[=PFX] Use Cyrus SASL library version 2 for WSF-Auth])
|
|
if test "x$enable_wsf" = "xyes"; then
|
|
if test "$with_sasl2" != "no" && test "$with_sasl2" != "yes"
|
|
then
|
|
CPPFLAGS="$CPPFLAGS -I$with_sasl2/include"
|
|
LDFLAGS="$LDFLAGS -L$with_sasl2/lib"
|
|
fi
|
|
|
|
saved_LIBS="$LIBS"
|
|
AC_CHECK_LIB(sasl2, sasl_server_init,,
|
|
AC_MSG_ERROR([libsasl must be installed for WSF support]),)
|
|
LIBS="$saved_LIBS"
|
|
LASSO_LIBS="$LASSO_LIBS -lsasl2"
|
|
fi
|
|
|
|
AC_CHECK_PROGS(REST2HTML, rest2html rst2html)
|
|
AM_CONDITIONAL(HAVE_REST2HTML, test -n "$ac_cv_prog_REST2HTML")
|
|
|
|
AC_CHECK_PROGS(XSLTPROC, xsltproc)
|
|
AM_CONDITIONAL(HAVE_XSLTPROC, test -n "$ac_cv_prog_XSLTPROC")
|
|
|
|
AC_CHECK_PROGS(INKSCAPE, inkscape)
|
|
AM_CONDITIONAL(HAVE_INKSCAPE, test -n "$ac_cv_prog_INKSCAPE")
|
|
|
|
|
|
dnl Debug
|
|
AC_MSG_CHECKING(for debugging)
|
|
AC_ARG_ENABLE(debugging, [ --enable-debugging enable debuging optimization flags (no)])
|
|
if test "z$enable_debugging" = "zyes" ; then
|
|
enable_debugging=yes
|
|
LASSO_DEFINES="$LASSO_DEFINES -DLASSO_DEBUG"
|
|
AM_CFLAGS="-O0 -g -Wall -Wextra -Werror"
|
|
else
|
|
enable_debugging=no
|
|
fi
|
|
AM_CONDITIONAL([DEBUGGING],[test "x$enable_debugging" = "xyes"])
|
|
AC_MSG_RESULT($enable_debugging)
|
|
AC_SUBST(DEBUGGING)
|
|
AC_SUBST(AM_CFLAGS)
|
|
|
|
dnl Profiling
|
|
AC_MSG_CHECKING(for profiling)
|
|
AC_ARG_ENABLE(profiling, [ --enable-profiling enable profiling compilation flags (no)])
|
|
if test "z$enable_profiling" = "zyes" ; then
|
|
AM_CFLAGS="$AM_CFLAGS -pg"
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
|
|
dnl ==========================================================================
|
|
dnl Pedantic compilation
|
|
dnl ==========================================================================
|
|
AC_MSG_CHECKING(for pedantic)
|
|
AC_ARG_ENABLE(pedantic, [ --enable-pedantic enable pedantic compilation flags (no)])
|
|
if test "z$enable_pedantic" = "zyes" ; then
|
|
CFLAGS="$CFLAGS -O -pedantic -Wall -ansi -fno-inline -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls"
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
|
|
dnl ==========================================================================
|
|
dnl Static linking
|
|
dnl ==========================================================================
|
|
LASSO_STATIC_BINARIES=""
|
|
AC_MSG_CHECKING(for static linking)
|
|
AC_ARG_ENABLE(static_linking, [ --enable-static-linking enable static linking (no)])
|
|
if test "z$enable_static_linking" = "zyes" ; then
|
|
LASSO_STATIC_BINARIES="-static"
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
AC_SUBST(LASSO_STATIC_BINARIES)
|
|
|
|
dnl ==========================================================================
|
|
dnl Final steps: lasso config
|
|
dnl ==========================================================================
|
|
LASSO_PUB_CFLAGS="$LASSO_DEFINES"
|
|
LASSO_CORE_CFLAGS="$LASSO_CFLAGS $LASSO_DEFINES $Z_CFLAGS -DLASSO_INTERNALS"
|
|
if test $MINGW -eq 1; then
|
|
LASSO_CORE_LIBS="-llasso-0"
|
|
else
|
|
LASSO_CORE_LIBS="-llasso "
|
|
fi
|
|
AC_SUBST(LASSO_CORE_CFLAGS)
|
|
AC_SUBST(LASSO_CORE_LIBS)
|
|
|
|
LASSO_CFLAGS="$LASSO_CFLAGS"
|
|
LASSO_LIBS="-L${libdir} $Z_LIBS $LASSO_LIBS"
|
|
AC_SUBST(LASSO_CFLAGS)
|
|
AC_SUBST(LASSO_LIBS)
|
|
|
|
AC_SUBST(LASSO_PUB_CFLAGS)
|
|
AC_SUBST(LASSO_DEFINES)
|
|
AC_SUBST(LASSO_APP_DEFINES)
|
|
AC_SUBST(CFLAGS)
|
|
AC_SUBST(CPPFLAGS)
|
|
AC_SUBST(LDFLAGS)
|
|
AC_SUBST(CLASSPATH_JUNIT)
|
|
AC_SUBST(SWIG_VERSION)
|
|
|
|
dnl Dirty system often means dirty hacks...
|
|
AM_CONDITIONAL(MINGW, test $MINGW -eq 1)
|
|
AM_CONDITIONAL(DARWIN, test $DARWIN -eq 1)
|
|
|
|
dnl bindings
|
|
|
|
|
|
dnl ==========================================================================
|
|
dnl Writing result files
|
|
dnl ==========================================================================
|
|
AC_CONFIG_FILES([lasso-src-config], [chmod +x lasso-src-config])
|
|
AC_OUTPUT(
|
|
[Makefile
|
|
docs/Makefile
|
|
docs/lasso-book/Makefile
|
|
docs/lasso-book/figures/Makefile
|
|
docs/reference/Makefile
|
|
docs/reference/lasso/version.xml
|
|
docs/reference/lasso/Makefile
|
|
lasso/Makefile
|
|
lasso/id-ff/Makefile
|
|
lasso/id-wsf/Makefile
|
|
lasso/saml-2.0/Makefile
|
|
lasso/id-wsf-2.0/Makefile
|
|
lasso/xml/Makefile
|
|
lasso/xml/saml-2.0/Makefile
|
|
lasso/xml/soap-1.1/Makefile
|
|
lasso/xml/id-wsf-2.0/Makefile
|
|
lasso/xml/ws/Makefile
|
|
tests/Makefile
|
|
tests/data/Makefile
|
|
lasso.pc
|
|
win32/Makefile
|
|
win32/lasso.rc
|
|
win32/msvc/Makefile
|
|
win32/msvc/lasso.dsp
|
|
win32/msvc/lasso_config.h
|
|
win32/msvc/java/Makefile
|
|
win32/msvc/php/Makefile
|
|
win32/msvc/python/Makefile
|
|
win32/nsis/Makefile
|
|
win32/nsis/jlasso-lite.nsi
|
|
win32/nsis/lasso-deps.nsi
|
|
win32/nsis/lasso-full.nsi
|
|
win32/nsis/lasso-lite.nsi
|
|
win32/nsis/python.nsi
|
|
bindings/Makefile
|
|
bindings/java/Makefile
|
|
bindings/python/Makefile
|
|
bindings/python/tests/Makefile
|
|
bindings/php5/Makefile
|
|
bindings/php5/examples/Makefile
|
|
bindings/php5/tests/Makefile
|
|
bindings/perl/Makefile
|
|
])
|
|
|
|
languages_available=`echo $languages_available | sed -e "s/^ //" `
|
|
AC_MSG_RESULT(
|
|
|
|
=============
|
|
Configuration
|
|
=============
|
|
|
|
Main
|
|
----
|
|
|
|
Compiler: ${CC}
|
|
CFLAGS: ${AM_CFLAGS} ${CFLAGS}
|
|
Install prefix: ${prefix}
|
|
Debugging: $enable_debugging
|
|
Experimental ID-WSF: $enable_wsf
|
|
|
|
Optionals builds
|
|
----------------
|
|
|
|
Available languages: ${languages_available}
|
|
|
|
Java binding: ${enable_java}
|
|
Perl binding: ${enable_perl}
|
|
PHP 5 binding: ${enable_php5}
|
|
Python binding: ${enable_python}
|
|
|
|
C API references: ${enable_gtk_doc}
|
|
Tests suite: ${enable_tests}
|
|
)
|