From 12babeda63deaf8cd38a62bc2f3d3e3458b71d86 Mon Sep 17 00:00:00 2001 From: Romain Chantereay Date: Tue, 3 Aug 2004 15:12:45 +0000 Subject: [PATCH] New Autotools infrastructure. Don't hesitate to report bug (if any). Main changes: - No more, or so few AM_CONDITIONAL. - Binding compilation use AC_SUBST top level Makefile SUBDIRS. - Change order of AM Macro. - Added Macro. - Fix Windows Compilation. - New way to handle version number. - Use of lasso_config.h - more ? I do not remember. --- Makefile.am | 2 +- autogen.sh | 237 ++++++++--- configure.ac | 600 +++++++++++++++++---------- java/Makefile | 60 --- java/Makefile.am | 79 ++++ java/coldfusion/Makefile | 525 ++++++++++++++++++++++- java/src/Makefile.am | 1 + java/src/c/{Makefile => Makefile.am} | 19 +- java/tests/LoginTest.java | 3 +- lasso/Makefile.am | 22 +- lasso/export.h | 4 +- lasso/lasso.h | 6 +- python/Makefile.am | 2 - 13 files changed, 1194 insertions(+), 366 deletions(-) delete mode 100644 java/Makefile create mode 100644 java/Makefile.am create mode 100644 java/src/Makefile.am rename java/src/c/{Makefile => Makefile.am} (50%) diff --git a/Makefile.am b/Makefile.am index 6703b41d..a7dcc20a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS = lasso docs python tests +SUBDIRS = lasso docs @SD_LANG@ tests ABS_BUILDDIR = $(shell pwd) diff --git a/autogen.sh b/autogen.sh index e53ed54c..70cfc0a2 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,42 +1,147 @@ #!/bin/sh -# Run this to generate all the initial makefiles, etc. +# +# autogen.sh - Generates the initial makefiles from a pristine CVS tree +# +# $Id$ +# +# USAGE: autogen.sh [configure options] +# +# If environment variable DRYRUN is set, no configuring will be done - +# (e.g. in bash) DRYRUN=1 ./autogen.sh +# will not do any configuring but will emit the programs that would be run. +# +# This script is based on similar scripts used in various tools +# commonly made available via CVS and used with GNU automake. +# Try 'locate autogen.sh' on your system and see what you get. +# -srcdir=`dirname $0` -test -z "$srcdir" && srcdir=. +PACKAGE=lasso -THEDIR=`pwd` -cd $srcdir -DIE=0 +SRCDIR=`dirname $0` +test -z "$SRCDIR" && SRCDIR=. -(autoconf --version) < /dev/null > /dev/null 2>&1 || { - echo - echo "You must have autoconf installed to compile lasso." - echo "Download the appropriate package for your distribution," - echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" - DIE=1 -} +cd $SRCDIR +DIE= -(libtoolize --version) < /dev/null > /dev/null 2>&1 || { - echo - echo "You must have libtool installed to compile lasso." - echo "Get ftp://alpha.gnu.org/gnu/libtool-1.0h.tar.gz" - echo "(or a newer version if it is available)" - DIE=1 -} +if test "z$DRYRUN" != "z"; then + DRYRUN=echo +fi -(automake --version) < /dev/null > /dev/null 2>&1 || { - echo - echo "You must have automake installed to compile lasso." - echo "Get ftp://ftp.cygnus.com/pub/home/tromey/automake-1.2d.tar.gz" - echo "(or a newer version if it is available)" - DIE=1 -} +echo "- Define minimal version constants." +automake_min_vers=1.6 +aclocal_min_vers=$automake_min_vers +autoconf_min_vers=2.53 +libtoolize_min_vers=1.5 +swig_min_vers=1.3 +# For cygwin wrapper and perphas others ? +WANT_AUTOCONF_VER=$autoconf_min_vers +WANT_AUTOMAKE_VER=$automake_min_vers +WANT_LIBTOOL_VER=$libtoolize_min_vers +export WANT_AUTOCONF_VER WANT_AUTOMAKE_VER WANT_LIBTOOL_VER -if test "$DIE" -eq 1; then +echo "- Define autotools programs command line arguments." +echo " - Add missing required files to the package by symbolic links." +automake_args=--add-missing +autoconf_args= +aclocal_args= + +echo - Store the used shell interpreter name. +program=`basename $0` + +echo " - Define autotool program commands." +autoconf=autoconf +automake=automake +aclocal=aclocal + +echo "- Check autoconf version." +if ($autoconf --version) < /dev/null > /dev/null 2>&1 ; then + if ($autoconf --version | awk 'NR==1 { if( $3 >= '$autoconf_min_vers') \ + exit 1; exit 0; }'); + then + echo "$program: ERROR: \`$autoconf' is too old." + echo " (version $autoconf_min_vers or newer is required)" + DIE="yes" + fi +else + echo + echo "$program: ERROR: You must have \`$autoconf' installed to compile $PACKAGE." + echo " (version $autoconf_min_vers or newer is required)" + DIE="yes" +fi + +echo "- Check automake version." +if ($automake --version) < /dev/null > /dev/null 2>&1 ; then + if ($automake --version | awk 'NR==1 { if( $4 >= '$automake_min_vers') \ + exit 1; exit 0; }'); + then + echo "$program: ERROR: \`$automake' is too old." + echo " (version $automake_min_vers or newer is required)" + DIE="yes" + fi + if ($aclocal --version) < /dev/null > /dev/null 2>&1; then + if ($aclocal --version | awk 'NR==1 { if( $4 >= '$aclocal_min_vers' ) \ + exit 1; exit 0; }' ); + then + echo "$program: ERROR: \`$aclocal' is too old." + echo " (version $aclocal_min_vers or newer is required)" + DIE="yes" + fi + else + echo + echo "$program: ERROR: Missing \`$aclocal'" + echo " The version of $automake installed doesn't appear recent enough." + DIE="yes" + fi +else + echo + echo "$program: ERROR: You must have \`$automake' installed to compile $PACKAGE." + echo " (version $automake_min_vers or newer is required)" + DIE="yes" +fi + +echo "- Check Libtoolize version." +if (libtoolize --version) < /dev/null > /dev/null 2>&1 ; then + if (libtoolize --version | awk 'NR==1 { if( $4 >= '$libtoolize_min_vers') \ + exit 1; exit 0; }'); + then + echo "$program: ERROR: \`libtoolize' is too old." + echo " (version $libtoolize_min_vers or newer is required)" + DIE="yes" + fi +else + echo + echo "$program: ERROR: You must have \`libtoolize' installed to compile $PACKAGE." + echo " (version $libtoolize_min_vers or newer is required)" + DIE="yes" +fi + + +echo "- Check swig version." +if (swig -help) /dev/null 2>&1; 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)};'` + swig_min_version_dec=`echo $swig_min_vers | awk -F. '{printf("%d\n", 10000*$1 + 100*$2 + $3)};'` + + if test $swig_version_dec -lt $swig_min_version_dec; then + echo "$program: ERROR: \`swig' is too old." + echo " (version $swig_min_vers or newer is required)" + DIE="yes" + fi +else + echo + echo "$program: ERROR: You must have \`swig' installed to compile $PACKAGE." + echo " (version $swig_min_vers or newer is required)" + DIE="yes" +fi + +# - If something went wrong, exit with error code:1. +if test "z$DIE" != "z"; then exit 1 fi +echo - Check if we are in the top-level lasso directory. test -f lasso/lasso.h || { + pwd echo "You must run this script in the top-level lasso directory" exit 1 } @@ -46,28 +151,62 @@ if test -z "$*"; then echo "to pass any to it, please specify them on the $0 command line." fi -echo "Running libtoolize..." -libtoolize --copy --force -echo "Running aclocal..." -aclocal $ACLOCAL_FLAGS -echo "Running automake..." -automake --add-missing -echo "Running autoconf..." -autoconf -echo "Running autoheader..." -autoheader +echo "- Clean up autotool distribution programs." +echo " - libtool stuff." +rm -f ltconfig ltmain.sh libtool +echo " - autoconf generated files" +rm -f configure +echo " - automake generated files" +rm -f missing depcomp +echo " - automake cache file." +rm -rf autom4te.cache -cd $THEDIR +echo "- Auto generate autoconf configuration files." +for autoconfile in `find $SRCDIR -name configure.ac -print` +do + dir=`dirname $autoconfile` + if test -f $dir/NO-AUTO-GEN; then + echo $program: Skipping $dir -- flagged as no auto-gen + else + echo $program: Processing directory $dir + ( cd $dir + echo "$program: Running libtoolize --copy --automake" + $DRYRUN rm -f ltmain.sh libtool + $DRYRUN libtoolize --copy --automake -if test x$OBJ_DIR != x; then - mkdir -p "$OBJ_DIR" - cd "$OBJ_DIR" + aclocalinclude="$ACLOCAL_FLAGS" + echo "$program: Running aclocal $aclocalinclude" + $DRYRUN $aclocal $aclocal_args + if grep "^AM_CONFIG_HEADER" configure.ac >/dev/null; then + echo "$program: Running autoheader" + $DRYRUN autoheader + fi + echo "$program: Running automake $am_opt" + $DRYRUN $automake $automake_args $am_opt + echo "$program: Running autoconf" + $DRYRUN $autoconf $autoconf_args + + ) + fi +done + +echo "- Clean up configuration cache." +rm -f config.cache + + +conf_flags="--enable-compile-warnings" + +echo "- Set and export autotools environment variables." +AUTOMAKE=$automake +AUTOCONF=$autoconf +ACLOCAL=$aclocal +export AUTOMAKE AUTOCONF ACLOCAL + +echo "$program: Running ./configure $conf_flags $@ ..." +if test "z$DRYRUN" = "z"; then + $DRYRUN ./configure $conf_flags "$@" \ + && echo "Now type 'make' to compile lasso." +else + $DRYRUN ./configure $conf_flags "$@" fi -conf_flags="--enable-maintainer-mode --enable-compile-warnings" #--enable-iso-c - -echo Running configure $conf_flags "$@" ... -$srcdir/configure $conf_flags "$@" - -echo -echo "Now type 'make' to compile lasso." diff --git a/configure.ac b/configure.ac index c348d21a..a41d43cd 100644 --- a/configure.ac +++ b/configure.ac @@ -1,81 +1,170 @@ -dnl Process this file with autoconf to produce a configure script. -AC_PREREQ(2.2) -AC_INIT(lasso/lasso.c) -AM_CONFIG_HEADER(config.h) -AC_CANONICAL_HOST +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 $Id$ +dnl +dnl +dnl See LICENSE.html or LICENSE.txt at the top of this package for the +dnl full license terms. +dnl +dnl -dnl ========================================================================== -dnl Version -dnl ========================================================================== -LASSO_PACKAGE=lasso -LASSO_VERSION_MAJOR=0 -LASSO_VERSION_MINOR=3 -LASSO_VERSION_SUBMINOR=0 -LASSO_VERSION="$LASSO_VERSION_MAJOR.$LASSO_VERSION_MINOR.$LASSO_VERSION_SUBMINOR" -LASSO_VERSION_INFO=`echo $LASSO_VERSION | awk -F. '{ printf "%d:%d:%d", $1+$2, $3, $2 }'` -LASSO_VERSION_SAFE=`echo $LASSO_VERSION | sed 's/\./_/g'` +dnl Declare package +AC_INIT([Liberty Alliance Single Sign On], 0.3.0, lasso-devel@lists.labs.libre-entreprise.org) +dnl Check if autoconf ver > 2.53 +AC_PREREQ(2.53) +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$) -PACKAGE=$LASSO_PACKAGE -VERSION=$LASSO_VERSION - -AC_SUBST(LASSO_VERSION) -AC_SUBST(LASSO_PACKAGE) -AC_SUBST(LASSO_VERSION_SAFE) -AC_SUBST(LASSO_VERSION_MAJOR) -AC_SUBST(LASSO_VERSION_MINOR) -AC_SUBST(LASSO_VERSION_SUBMINOR) -AC_SUBST(LASSO_VERSION_INFO) - -AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define) +dnl Run many macros mostly needed by configure.ac. +AM_INIT_AUTOMAKE(lasso, 0.3.0) +dnl Create rules to automaticaly regenerate the config header. +AM_CONFIG_HEADER(lasso/lasso_config.h) +dnl Add --enable-maintainer-mode option to configure. AM_MAINTAINER_MODE -MINGW="no" +dnl Perform only subset commands and variable relevant to the host type. +AC_CANONICAL_HOST dnl ========================================================================== dnl Perform host specific configuration dnl ========================================================================== +MINGW=0 case "${host}" in *aix* ) CFLAGS="${CFLAGS} -D_ALL_SOURCE" ;; - *-pc-*mingw*) -dnl mno-cygwin to produce purely win32 DLL. - CC="gcc -mno-cygwin" -dnl _MSC_VER to emulate a MSVC compilation and active secret room with -dnl correct dllexport/import export definitions. -dnl IN_LASSO to active special import/export mechanisms. -dnl G_OS_WIN32 is already defined, so we do not do it. With this -dnl definition, Microsoft C library will be used (msvcrt.dll). -dnl WIN32 and _WIN32 used to be sure. Some header test against it (ie: -dnl jni.h), then it do not cost to add this def... - CFLAGS="-I/usr/local/include -DWIN32 -D_WIN32 -D_MSC_VER -DIN_LASSO" - LDFLAGS="-L/usr/local/lib" - GLIB_CFLAGS="-I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include" - GLIB_LIBS="-lgobject-2.0 -lglib-2.0" - XMLSEC1_CFLAGS="-DXMLSEC_CRYPTO=\"openssl\" -DXMLSEC_LIBXML_260=1 -D__XMLSEC_FUNCTION__=__FUNCTION__ -DXMLSEC_NO_XKMS=1 -DXMLSEC_NO_CRYPTO_DYNAMIC_LOADING=1 -DXMLSEC_CRYPTO_OPENSSL=1" - XMLSEC1_LIBS="-lxmlsec-openssl -lxmlsec" - LIBXML_CFLAGS="-I/usr/local/include/libxml2" - LIBXML_LIBS="-lxml2" - LIBXSLT_CFLAGS="" - LIBXSLT_LIBS="-lxslt" - MINGW="yes" + *-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 + ;; + dnl ========================================================================== + dnl Workaround for non libtool standard library name specs. + dnl ========================================================================== + esac +dnl if test -f "/cygdrive/c/windows/system/user32.dll"; then +dnl dnl make symbolic link. +dnl if test ! -f "/usr/local/lib/libuser32.dll"; then +dnl AC_MSG_WARN([Create workaround symbolic links: user32.dll]) +dnl ln -s /cygdrive/c/windows/system/user32.dll \ +dnl /usr/local/lib/libuser32.dll +dnl fi +dnl if test ! -f "/usr/local/lib/libkernel32.dll"; then +dnl AC_MSG_WARN([Create workaround symbolic links: kernel32.dll]) +dnl ln -s /cygdrive/c/windows/system/kernel32.dll \ +dnl /usr/local/lib/libkernel32.dll +dnl fi +dnl fi ;; esac -dnl -dnl Check the environment -dnl -AC_PROG_CC -if test "x$GCC" = "xyes"; then - if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then - CFLAGS="$CFLAGS -Wall -g" - fi -fi -AC_HEADER_STDC -#AC_DISABLE_SHARED -AC_LIBTOOL_WIN32_DLL -AC_PROG_LIBTOOL +dnl ========================================================================== +dnl Version +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_decimal=`expr $VERSION_MAJOR \* 10000 + $VERSION_MINOR \* 100 + $VERSION_RELEASE` +windows_version=`echo $VERSION_MAJOR,$VERSION_MINOR,$VERSION_RELEASE,0` + +dnl Add versionning & package defines to lasso_config.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]) +AC_DEFINE_UNQUOTED(LASSO_VERSION_DECIMAL, $version_decimal, [Release version as a decimal]) + +dnl Dirty hack in order to have dynamic resource version numbering. +AC_DEFINE_UNQUOTED(LASSO_WINDOWS_VERSION, $windows_version, [Windows version of the lasso version]) + +# Libtool versioning +# +# CURRENT +# The most recent interface number that this library implements. +# +# REVISION +# The implementation number of the CURRENT interface. +# +# AGE +# The difference between the newest and oldest interfaces that this +# library implements. In other words, the library implements all the +# interface numbers in the range from number `CURRENT - AGE' to +# `CURRENT'. +# +# Rules: +# 1. Start with version information of `0:0:0' for each libtool library. +# +# 2. Update the version information only immediately before a public +# release of your software. More frequent updates are unnecessary, +# and only guarantee that the current interface number gets larger +# faster. +# +# 3. If the library source code has changed at all since the last +# update, then increment REVISION (`C:R:A' becomes `C:r+1:A'). +# +# 4. If any interfaces have been added, removed, or changed since the +# last update, increment CURRENT, and set REVISION to 0. +# +# 5. If any interfaces have been added since the last public release, +# then increment AGE. +# +# 6. If any interfaces have been removed since the last public release, +# then set AGE to 0. +# +# syntax: CURRENT[:REVISION[:AGE]] +LASSO_VERSION_INFO=0:0:0 +AC_SUBST(LASSO_VERSION_INFO) +AC_MSG_RESULT([Setup version.]) + +# OSX Fink +if test -d /sw/bin ; then + PATH=$PATH:/sw/bin +fi + +dnl +dnl Check for programs +dnl +AC_PROG_CC_STDC +LT_AC_PROG_RC +AC_EXEEXT +AC_PROG_CC_C_O +AM_SANITY_CHECK +AC_PROG_AWK AC_PROG_INSTALL +AC_PROG_LN_S +AC_PROG_EGREP +AC_PROG_MAKE_SET +AC_PROG_RANLIB +AC_LIBTOOL_WIN32_DLL +AM_PROG_LIBTOOL +AC_PROG_INSTALL +AC_SUBST(LIBTOOL_DEPS) + +dnl Find tar command for make dist +AC_CHECK_PROGS(TAR, gnutar gtar tar) + +dnl Find egrep command. +dnl AC_CHECK_PROGS(EGREP, egrep) + +dnl Check existenz of binding programs +AC_CHECK_PROGS(JAVA, gij java) +AC_CHECK_PROGS(JAVAC, gcj javac) +AC_CHECK_PROGS(JAVAH, gcjh javah) +AC_CHECK_PROGS(JAR, fastjar jar) +AC_CHECK_PROGS(PYTHON, python) +AC_CHECK_PROGS(SWIG, swig) +AC_CHECK_PROGS(PKG_CONFIG, pkg-config) LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[^_].*"' @@ -83,8 +172,186 @@ dnl Make sure we have an ANSI compiler AM_C_PROTOTYPES test "z$U" != "z" && AC_MSG_ERROR(Compiler not ANSI compliant) -dnl AC_LIB_LTDL +dnl ========================================================================== +dnl Swig +dnl ========================================================================== +SWIG_MIN_VERSION=1.3 +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/perl/CORE_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(Redland 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) +fi +AC_SUBST(SWIG_PYTHON_ARGS) + +dnl Detect available languages binding. +languages= +languages_available= + +dnl Java(tm) + +AC_ARG_WITH(java, [ --with-java(=JAVA) Enable the java interface], with_java="$withval", with_java="yes") +AC_MSG_CHECKING(Enable Java API) +if test "X$with_java" != Xno ; then + if test "X$with_java" != Xyes; then + JAVA=$with_java + fi + with_java=yes +fi + +JAVAC_FLAGS= +JAVAH_FLAGS= +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` +if test "X$JAVA_VERSION" = X; then + JAVA_VERSION=`$JAVA --version 2>&1 | $SED -ne 's/gij (GNU libgcj) version \([^"]*\) (.*/\1/p' 2>/dev/null` +fi + +changequote([, ])dnl +if test "X$JAVA_VERSION" != X; then + languages_available="$languages_available java($JAVA_VERSION)" + if test "x$with_java" = "xyes"; then + languages="$languages java" + fi +fi +AC_MSG_RESULT($with_java) +if test "X$JAVA" = "Xgij"; then + JAVAC_FLAGS="-C" + JAVAH_FLAGS="-jni" +fi +AC_SUBST(JAVA_VERSION) +AC_SUBST(JAVAC_FLAGS) +AC_SUBST(JAVAH_FLAGS) + + +dnl python +AC_ARG_WITH(python, [ --with-python(=PYTHON) Enable the Python interface], with_python="$withval", with_python="no") +AC_MSG_CHECKING(Enable Python API) +if test "X$with_python" != Xno; then + if test "X$with_python" != Xyes; then + PYTHON=$with_python + fi + with_python=yes +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 +if test "X$PYTHON_VERSION" != X; then + languages_available="$languages_available python($PYTHON_VERSION)" + if test $with_python = yes; then + languages="$languages python" + fi +fi +AC_MSG_RESULT($with_python) +AC_SUBST(PYTHON_VERSION) + +SD_LANG="$languages" +AC_SUBST(SD_LANG) + +dnl ========================================================================== +dnl Test suite (requires check) +dnl ========================================================================== +AC_ARG_ENABLE(tests, +[ --enable-tests build the test suite (default)], +[case "${enableval}" in + yes) tests_val=true;; + no) tests_val=false;; +esac], tests_val=true) +AC_DEFINE([CHECK_IS_XML], [], [Define if check available with XML support]) +if $tests_val ; then + AM_PATH_CHECK + CC=gcc + AC_CHECK_LIB(check, srunner_set_xml, [AC_DEFINE(CHECK_IS_XML)]) +fi + +AM_CONDITIONAL(WITH_TESTS, $tests_val) +if test "z$tests_val" = "ztrue"; then + tests_val="yes" +else + tests_val="no" +fi + +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 ========================================================================== +dnl User specific option. +dnl ========================================================================== +dnl Where do we want to install docs +AC_MSG_CHECKING(for docs folder) +AC_ARG_WITH(html-dir, [ --with-html-dir=PATH path to installed docs ]) +if test "z$with_html_dir" != "z" ; then + LASSO_DOCDIR=$with_html_dir +else + LASSO_DOCDIR='$(datadir)/doc/lasso' +fi +AC_MSG_RESULT($LASSO_DOCDIR) +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-path, [ --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 gobject-2.0 libxml-2.0 libxslt xmlsec1 xmlsec1-openssl) + +dnl Let people disable the gtk-doc stuff. +AC_ARG_ENABLE(gtk-doc, [ --disable-gtk-doc Disable documentation build], +[case "${enableval}" in + yes) enable_gtk_doc=true;; + no) enable_gtk_doc=false;; +esac], enable_gtk_doc=true) + +if test "x$enable_gtk_doc" = "xtrue" ; then + GTK_DOC_MIN_VERSION=1.0 + AC_MSG_CHECKING(gtk-doc support:) + PKG_CHECK_MODULES(GTK_DOC, gtk-doc >= $GTK_DOC_MIN_VERSION, enable_gtk_doc="yes", + enable_gtk_doc="no") +fi dnl ========================================================================== dnl check do we have size_t and its size, @@ -96,153 +363,12 @@ if test "$ac_cv_sizeof_size_t" -ne "4" ; then LASSO_DEFINES="$LASSO_DEFINES -DLASSO_NO_SIZE_T" fi - -if test "x$MINGW" != "xyes" ; then - PKG_CHECK_MODULES(LASSO, glib-2.0 gobject-2.0 libxml-2.0 libxslt xmlsec1 xmlsec1-openssl) -else - dnl Manualy add fill LASSO_CFLAGS for Windows. Until one day... - LASSO_CFLAGS="$GLIB_CFLAGS $XMLSEC1_CFLAGS $LIBXML_CFLAGS $LIBXSLT_CFLAGS" - LASSO_LIBS="$GLIB_LIBS $XMLSEC1_LIBS $LIBXML_LIBS $LIBXSLT_LIBS" - AC_SUBST(GLIB_CFLAGS) - AC_SUBST(GLIB_LIBS) - AC_SUBST(XMLSEC1_CFLAGS) - AC_SUBST(XMLSEC1_LIBS) - AC_SUBST(LIBXML_CFLAGS) - AC_SUBST(LIBXML_LIBS) - AC_SUBST(LIBXSLT_CFLAGS) - AC_SUBST(LIBXSLT_LIBS) -fi -AC_SUBST(LASSO_LIBS) -AC_SUBST(LASSO_CFLAGS) - - -dnl ========================================================================== -dnl python -dnl ========================================================================== - -AC_CHECK_PROG(python_val, python, true, false) -if $python_val; then - AC_MSG_CHECKING(for Python development files) - 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 - AC_MSG_RESULT(yes) - PYTHON="python$PY_VERSION" - PY_LIB_LOC="-L$PY_EXEC_PREFIX/lib/python$PY_VERSION/config" - 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_DYNLOAD="$PY_EXEC_PREFIX/lib/python$PY_VERSION/lib-dynload" - PY_LIB_A="$PY_EXEC_PREFIX/lib/python$PY_VERSION/config/libpython$PY_VERSION.a" - PY_SITE_PACKAGES="$PY_EXEC_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) - else - python_val=false - AC_MSG_RESULT(no) - fi -fi - -AC_ARG_ENABLE(python, -[ --enable-python build the Python binding (default)], -[case "${enableval}" in - yes) ;; - no) python_val=false;; -esac]) - -if test x$python_val = xtrue ; then - enable_python=yes -else - enable_python=no -fi - -AM_CONDITIONAL(WITH_PYTHON, $python_val) +dnl Checks for header files. +AC_HEADER_STDC +AC_CHECK_HEADERS(xmlsec/xmlsec.h xmlsec/crypto.h string.h libxml/uri.h glib/gprintf.h) -dnl ========================================================================== -dnl find gtk-doc -dnl ========================================================================== -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) - -gtk_doc_min_version=1.0 -AC_MSG_CHECKING([gtk-doc version >= $gtk_doc_min_version]) -if pkg-config --atleast-version=$gtk_doc_min_version gtk-doc; then - AC_MSG_RESULT(yes) - GTKDOC=true -else - AC_MSG_RESULT(no) - GTKDOC=false -fi - -dnl Let people disable the gtk-doc stuff. -AC_ARG_ENABLE(gtk-doc, [ --enable-gtk-doc Use gtk-doc to build documentation [[default=auto]]], enable_gtk_doc="$enableval", enable_gtk_doc=auto) - -if test x$enable_gtk_doc = xauto ; then - if test x$GTKDOC = xtrue ; then - enable_gtk_doc=yes - else - enable_gtk_doc=no - fi -fi - -AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes) - - -dnl ========================================================================== -dnl Test suite (requires check) -dnl ========================================================================== -AC_ARG_ENABLE(tests, -[ --enable-tests build the test suite (default)], -[case "${enableval}" in - yes) tests_val=true;; - no) tests_val=false;; -esac], tests_val=true) - -AC_DEFINE([CHECK_IS_XML], [], [Define if check available with XML support]) -if $tests_val ; then - AM_PATH_CHECK - AC_CHECK_LIB(check, srunner_set_xml, [AC_DEFINE(CHECK_IS_XML)]) -fi - -AM_CONDITIONAL(WITH_TESTS, $tests_val) - - -dnl ========================================================================== -dnl Where do we want to install docs -dnl ========================================================================== -AC_MSG_CHECKING(for docs folder) -AC_ARG_WITH(html-dir, [ --with-html-dir=PATH path to installed docs ]) -if test "z$with_html_dir" != "z" ; then - LASSO_DOCDIR=$with_html_dir -else - LASSO_DOCDIR='$(datadir)/doc/lasso' -fi - -AC_MSG_RESULT($LASSO_DOCDIR) -AC_SUBST(LASSO_DOCDIR) - -dnl ========================================================================== dnl Debug -dnl ========================================================================== AC_MSG_CHECKING(for debugging) AC_ARG_ENABLE(debugging, [ --enable-debugging enable debuging messages (no)]) if test "z$enable_debugging" = "zyes" ; then @@ -253,9 +379,7 @@ else fi AC_MSG_RESULT($enable_debugging) -dnl ========================================================================== dnl Profiling -dnl ========================================================================== AC_MSG_CHECKING(for profiling) AC_ARG_ENABLE(profiling, [ --enable-profiling enable profiling compilation flags (no)]) if test "z$enable_profiling" = "zyes" ; then @@ -296,7 +420,11 @@ dnl ========================================================================== dnl Final steps: lasso config dnl ========================================================================== LASSO_CORE_CFLAGS="$LASSO_DEFINES -I${includedir}/lasso" +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) @@ -321,12 +449,18 @@ dnl LINK="\$(LIBTOOL) --mode=link \$(CCLD) \$(AM_CFLAGS) \$(CFLAGS) \$(LDFLA dnl fi dnl AC_SUBST(LINK) + +dnl Temporaly +AM_CONDITIONAL(MINGW, test $MINGW == 1) +AM_CONDITIONAL(WITH_PYTHON, test 1 -eq 0) + + dnl ========================================================================== dnl Writing result files dnl ========================================================================== -AC_OUTPUT([ -lasso/version.h -Makefile +AC_OUTPUT( +dnl [lasso/version.h] +[Makefile lasso/Makefile lasso/xml/Makefile lasso/protocols/Makefile @@ -345,22 +479,44 @@ python/protocols/elements/Makefile python/tests/Makefile python/xml/Makefile tests/Makefile -win32/Makefile -win32/nsis/Makefile +java/Makefile +java/coldfusion/Makefile +java/src/Makefile +java/src/c/Makefile ] [lasso.pc:lasso.pc.in] dnl [lasso-config:lasso-config.in] dnl [lasso.spec:lasso.spec.in] ) -echo " +AC_MSG_RESULT([ +============= +Configuration +============= -Configuration: +Main +---- - Compiler: ${CC} - Install prefix: ${prefix} - Debugging: $enable_debugging +Compiler: + ${CC} - Build Python binding: ${enable_python} +Install prefix: + ${prefix} - Build C API reference: ${enable_gtk_doc} -" +Debugging: + $enable_debugging + +Optionals builds +---------------- + +Python binding: + ${with_python} + +Build Java binding: + ${with_java} + +C API references: + ${enable_gtk_doc} + +Tests suite: + ${tests_val} +]) diff --git a/java/Makefile b/java/Makefile deleted file mode 100644 index 0c727dd7..00000000 --- a/java/Makefile +++ /dev/null @@ -1,60 +0,0 @@ -TARGET=target - -#JAVAC=/usr/bin/javac -#JAVAH=/usr/bin/javah -#JAVAH_CLASSPATH_PREFIX= -#JAR=/usr/bin/jar - -#JAVAC=/opt/jdk/bin/javac -#JAVAH=/opt/jdk/bin/javah -#JAVAH_CLASSPATH_PREFIX= -#JAR=/opt/jdk/bin/jar - -JAVAC=/usr/lib/kaffe/bin/javac -JAVAH=/usr/lib/kaffe/bin/javah -JAVAH_CLASSPATH_PREFIX=/usr/share/kaffe/Klasses.jar: -JAR=/usr/lib/kaffe/bin/jar - -#JAVAC=/usr/bin/gcj -C -#JAVAH=/usr/bin/gcjh -jni -#JAVAH_CLASSPATH_PREFIX= -#JAR=/usr/bin/fastjar - -JAVA_BUILD_DIR=${TARGET}/classes -JAVA_SOURCE_DIR=src/java -JAVA_PACKAGE=com.entrouvert.lasso -JAVA_SOURCE=${wildcard ${JAVA_SOURCE_DIR}/${subst .,/,${JAVA_PACKAGE}}/*.java} -JAVA_CLASSES=${addprefix ${JAVA_PACKAGE}., ${filter-out LassoTest, ${basename ${notdir ${JAVA_SOURCE}}}}} -LASSO.JAR=${TARGET}/lasso.jar - -C_SOURCE_DIR=src/c -C_BUILD_DIR=${C_SOURCE_DIR} -C_SOURCE=${wildcard ${C_SOURCE_DIR}/*.c} -C_OBJECT=${C_SOURCE:.c=.o} -LASSO.SO=${TARGET}/libjlasso.so - -.PHONY: clean all binary-java binary-c generate-header - -all: binary-java binary-c - -binary-java: - mkdir -p ${JAVA_BUILD_DIR} - ${JAVAC} -d ${JAVA_BUILD_DIR} ${JAVA_SOURCE} - ${JAR} cf ${LASSO.JAR} -C ${JAVA_BUILD_DIR} com - -generate-header: binary-java - ${JAVAH} -d ${C_SOURCE_DIR} -classpath ${JAVAH_CLASSPATH_PREFIX}${JAVA_BUILD_DIR} ${JAVA_CLASSES} - -binary-c: ${LASSO.SO} - -${C_OBJECT}: ${C_SOURCE} - ${MAKE} -C ${C_SOURCE_DIR} - -mylibs = ../lasso/.libs/liblasso.so - -${LASSO.SO}: generate-header ${C_OBJECT} - $(CC) -shared -lgobject-2.0 -lglib-2.0 $(mylibs) ${C_OBJECT} -o $@ - -clean: - ${MAKE} -C ${C_SOURCE_DIR} clean - rm -fr ${TARGET} *~ *.log diff --git a/java/Makefile.am b/java/Makefile.am new file mode 100644 index 00000000..815f3b66 --- /dev/null +++ b/java/Makefile.am @@ -0,0 +1,79 @@ +NULL = + +TARGET=target +#JAVAC=/usr/lib/kaffe/bin/javac +#JAVAH=/usr/lib/kaffe/bin/javah +#JAVAH_CLASSPATH_PREFIX=/usr/share/kaffe/Klasses.jar: +#JAR=/usr/lib/kaffe/bin/jar + + +JAVA_BUILD_DIR=${TARGET}/classes +JAVA_SOURCE_DIR=src/java +JAVA_PACKAGE=com.entrouvert.lasso +JAVA_SOURCE=${wildcard ${JAVA_SOURCE_DIR}/${subst .,/,${JAVA_PACKAGE}}/*.java} +JAVA_CLASSES=${addprefix ${JAVA_PACKAGE}., ${filter-out LassoTest, ${basename ${notdir ${JAVA_SOURCE}}}}} +LASSO_JAR=${TARGET}/lasso.jar + +C_SOURCE_DIR=src/c +C_BUILD_DIR=${C_SOURCE_DIR} +C_SOURCE=${wildcard ${C_SOURCE_DIR}/*.c} +C_OBJECT=${C_SOURCE:.c=.o} +if MINGW + LDFLAGS=-L/usr/local/lib -lgobject-2.0-0 -lglib-2.0-0 -llasso + LASSO_DLL=${TARGET}/jlasso.dll +else + LDFLAGS=-lgobject-2.0 -lglib-2.0 -llasso + LASSO_SO=${TARGET}/libjlasso.so +endif + +binary-java: + mkdir -p ${JAVA_BUILD_DIR} + ${JAVAC} ${JAVAC_FLAGS} -d ${JAVA_BUILD_DIR} ${JAVA_SOURCE} + ${JAR} cf ${LASSO_JAR} -C ${JAVA_BUILD_DIR} com + +generate-header: binary-java + ${JAVAH} ${JAVAH_FLAGS} -d ${C_SOURCE_DIR} -classpath ${JAVAH_CLASSPATH_PREFIX}${JAVA_BUILD_DIR} ${JAVA_CLASSES} + +if MINGW +binary-c: ${LASSO_DLL} +else +binary-c: ${LASSO_SO} +endif + +if MINGW +mylibs = -L../win32/.libs -llasso -L/usr/local/lib +${LASSO_DLL}: generate-header + gcc -mno-cygwin -shared -o ${TARGET}/jlasso.dll \ + -Wl,--out-implib=${TARGET}/jlasso.a \ + -Wl,--add-stdcall-alias \ + -Wl,--export-all-symbols \ + -Wl,--enable-auto-import \ + -Wl,--whole-archive ${C_OBJECT} \ + -Wl,--no-whole-archive -lgobject-2.0-0 -lglib-2.0-0 ${mylibs} +else +mylibs = ../lasso/.libs/liblasso.so +${LASSO_SO}: generate-header + $(CC) -shared -lgobject-2.0 -lglib-2.0 $(mylibs) ${C_OBJECT} -o $@ +endif + +lib_LTLIBRARIES = \ + libjlasso.la \ + $(NULL) + +libjlassoinclude_HEADERS = $(NULL) + +libjlasso_la_SOURCES = $(NULL) + +libjlasso_la_LIBADD = \ + binary-c \ + $(NULL) + +all-redirect: binary-c + +clean: + rm -fr ${TARGET} *~ *.log + + +EXTRA_DIST = $(NULL) +SUBDIRS = src $(NULL) + diff --git a/java/coldfusion/Makefile b/java/coldfusion/Makefile index 0af02232..2ee70e95 100644 --- a/java/coldfusion/Makefile +++ b/java/coldfusion/Makefile @@ -1,30 +1,506 @@ -TARGET=target +# Makefile.in generated by automake 1.8.5 from Makefile.am. +# java/coldfusion/Makefile. Generated from Makefile.in by configure. -#JAVAC=/usr/bin/javac -#JAVAH=/usr/bin/javah -#JAVAH_CLASSPATH_PREFIX= -#JAR=/usr/bin/jar +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -#JAVAC=/opt/jdk/bin/javac -#JAVAH=/opt/jdk/bin/javah -#JAVAH_CLASSPATH_PREFIX= -#JAR=/opt/jdk/bin/jar +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. -JAVAC=/usr/lib/kaffe/bin/javac -JAVAH=/usr/lib/kaffe/bin/javah -JAVAH_CLASSPATH_PREFIX=/usr/share/kaffe/Klasses.jar: -JAR=/usr/lib/kaffe/bin/jar -#JAVAC=/usr/bin/gcj -C -#JAVAH=/usr/bin/gcjh -jni -#JAVAH_CLASSPATH_PREFIX= -#JAR=/usr/bin/fastjar +srcdir = . +top_srcdir = ../.. + +pkgdatadir = $(datadir)/lasso +pkglibdir = $(libdir)/lasso +pkgincludedir = $(includedir)/lasso +top_builddir = ../.. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = /usr/bin/install -c +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_triplet = i686-pc-mingw32 +subdir = java/coldfusion +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/lasso/lasso_config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-exec-recursive install-info-recursive \ + install-recursive installcheck-recursive installdirs-recursive \ + pdf-recursive ps-recursive uninstall-info-recursive \ + uninstall-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = aclocal +AMDEP_FALSE = # +AMDEP_TRUE = +AMTAR = ${SHELL} /home/eo/lasso/missing --run tar +AR = ar +AS = as +AUTOCONF = autoconf +AUTOHEADER = ${SHELL} /home/eo/lasso/missing --run autoheader +AUTOMAKE = automake +AWK = gawk +CC = gcc -mno-cygwin +CCDEPMODE = depmode=gcc3 +CFLAGS = -D_MSC_VER -DIN_LASSO -DMINGW -DWIN32 -D_WIN32 -I/usr/local/include +CHECK_CFLAGS = +CHECK_LIBS = +CPP = gcc -mno-cygwin -E +CPPFLAGS = +CXX = g++ +CXXCPP = g++ -E +CXXDEPMODE = depmode=gcc3 +CXXFLAGS = -g -O2 +CYGPATH_W = cygpath -w +DEFS = -DHAVE_CONFIG_H +DEPDIR = .deps +DLLTOOL = dlltool +ECHO = echo +ECHO_C = +ECHO_N = -n +ECHO_T = +EGREP = grep -E +EXEEXT = .exe +F77 = g77 +FFLAGS = -g -O2 +GTK_DOC_CFLAGS = +GTK_DOC_LIBS = +HTML_DIR = ${datadir}/gtk-doc/html +INSTALL_DATA = ${INSTALL} -m 644 +INSTALL_PROGRAM = ${INSTALL} +INSTALL_SCRIPT = ${INSTALL} +INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s +JAR = jar +JAVA = gij +JAVAC = gcj +JAVAC_FLAGS = -C +JAVAH = gcjh +JAVAH_FLAGS = -jni +JAVA_VERSION = 3.3.1 +LASSO_APP_DEFINES = +LASSO_CFLAGS = -I${prefix}/include/lasso -DXMLSEC_CRYPTO=\"openssl\" -DXMLSEC_CRYPTO_DYNAMIC_LOADING=1 -DXMLSEC_LIBXML_260=1 -D__XMLSEC_FUNCTION__=__FUNCTION__ -DXMLSEC_NO_XKMS=1 -DXMLSEC_CRYPTO_OPENSSL=1 -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include/libxml2 -I/usr/local/include -I/usr/local/include/xmlsec +LASSO_CORE_CFLAGS = -I${prefix}/include/lasso +LASSO_CORE_LIBS = -llasso-0 +LASSO_DEFINES = +LASSO_DOCDIR = $(datadir)/doc/lasso +LASSO_LIBS = -L${exec_prefix}/lib -L/usr/local/lib -lgobject-2.0-0 -lglib-2.0-0 -lintl -lxmlsec-openssl -lxmlsec -lxslt -lxml2 -lz -liconv +LASSO_STATIC_BINARIES = +LASSO_VERSION_INFO = 0:0:0 +LDFLAGS = -L/usr/local/lib +LIBOBJS = +LIBS = +LIBTOOL = $(SHELL) $(top_builddir)/libtool +LIBTOOL_DEPS = ./ltmain.sh +LN_S = ln -s +LTLIBOBJS = +MAINT = # +MAINTAINER_MODE_FALSE = +MAINTAINER_MODE_TRUE = # +MAKEINFO = ${SHELL} /home/eo/lasso/missing --run makeinfo +MINGW_FALSE = # +MINGW_TRUE = +OBJDUMP = objdump +OBJEXT = o +PACKAGE = lasso +PACKAGE_BUGREPORT = lasso-devel@lists.labs.libre-entreprise.org +PACKAGE_NAME = Liberty Alliance Single Sign On +PACKAGE_STRING = Liberty Alliance Single Sign On 0.3.0 +PACKAGE_TARNAME = liberty-alliance-single-sign-on +PACKAGE_VERSION = 0.3.0 +PATH_SEPARATOR = : +PKG_CONFIG = pkg-config +PYTHON = python +PYTHON_VERSION = 2.3 +RANLIB = ranlib +RC = windres +SD_LANG = java +SET_MAKE = +SHELL = /bin/bash +STRIP = strip +SWIG = swig +SWIG_PYTHON_ARGS = -noproxy +TAR = tar +U = +VERSION = 0.3.0 +WITH_PYTHON_FALSE = +WITH_PYTHON_TRUE = # +WITH_TESTS_FALSE = +WITH_TESTS_TRUE = # +ac_ct_AR = ar +ac_ct_AS = as +ac_ct_CC = +ac_ct_CXX = g++ +ac_ct_DLLTOOL = dlltool +ac_ct_F77 = g77 +ac_ct_OBJDUMP = objdump +ac_ct_RANLIB = ranlib +ac_ct_RC = windres +ac_ct_STRIP = strip +am__fastdepCC_FALSE = # +am__fastdepCC_TRUE = +am__fastdepCXX_FALSE = # +am__fastdepCXX_TRUE = +am__include = include +am__leading_dot = . +am__quote = +bindir = ${exec_prefix}/bin +build = i686-pc-cygwin +build_alias = +build_cpu = i686 +build_os = cygwin +build_vendor = pc +datadir = ${prefix}/share +exec_prefix = ${prefix} +host = i686-pc-mingw32 +host_alias = i686-pc-mingw32 +host_cpu = i686 +host_os = mingw32 +host_vendor = pc +includedir = ${prefix}/include +infodir = ${prefix}/info +install_sh = /home/eo/lasso/install-sh +libdir = ${exec_prefix}/lib +libexecdir = ${exec_prefix}/libexec +localstatedir = ${prefix}/var +mandir = ${prefix}/man +mkdir_p = mkdir -p -- . +oldincludedir = /usr/include +prefix = /usr/local +program_transform_name = s,x,x, +sbindir = ${exec_prefix}/sbin +sharedstatedir = ${prefix}/com +sysconfdir = ${prefix}/etc +target_alias = +NULL = +SUBDIRS = +TARGET = target + +#JAVAC=/usr/lib/kaffe/bin/javac +#JAVAH=/usr/lib/kaffe/bin/javah +#JAVAH_CLASSPATH_PREFIX=/usr/share/kaffe/Klasses.jar: +#JAR=/usr/lib/kaffe/bin/jar +JAVA_BUILD_DIR = ${TARGET}/classes +JAVA_SOURCE_DIR = src +JAVA_SOURCE = ${wildcard ${JAVA_SOURCE_DIR}/*.java} +JAVA_CLASSES = ${basename ${notdir ${JAVA_SOURCE}}} +LASSO_JAR = ${TARGET}/CFLasso.jar +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu java/coldfusion/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu java/coldfusion/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: # $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): # $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @set fnord $$MAKEFLAGS; amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $$MAKEFLAGS; amf=$$2; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || mkdir "$(distdir)/$$subdir" \ + || exit 1; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="../$(top_distdir)" \ + distdir="../$(distdir)/$$subdir" \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-libtool \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: + +install-exec-am: + +install-info: install-info-recursive + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-info-am + +uninstall-info: uninstall-info-recursive + +.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ + clean clean-generic clean-libtool clean-recursive ctags \ + ctags-recursive distclean distclean-generic distclean-libtool \ + distclean-recursive distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-exec install-exec-am install-info \ + install-info-am install-man install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic maintainer-clean-recursive \ + mostlyclean mostlyclean-generic mostlyclean-libtool \ + mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am uninstall-info-am -JAVA_BUILD_DIR=${TARGET}/classes -JAVA_SOURCE_DIR=src -JAVA_SOURCE=${wildcard ${JAVA_SOURCE_DIR}/*.java} -JAVA_CLASSES=${basename ${notdir ${JAVA_SOURCE}}} -LASSO.JAR=${TARGET}/CFLasso.jar .PHONY: clean all binary-java @@ -33,7 +509,10 @@ all: binary-java binary-java: mkdir -p ${JAVA_BUILD_DIR} ${JAVAC} -classpath ../target/lasso.jar -d ${JAVA_BUILD_DIR} ${JAVA_SOURCE} - ${JAR} cf ${LASSO.JAR} -C ${JAVA_BUILD_DIR} CFLasso.class + ${JAR} cf ${LASSO_JAR} -C ${JAVA_BUILD_DIR} CFLasso.class clean: rm -rf ${TARGET} *~ *.log +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/java/src/Makefile.am b/java/src/Makefile.am new file mode 100644 index 00000000..670b4f1a --- /dev/null +++ b/java/src/Makefile.am @@ -0,0 +1 @@ +SUBDIRS=c diff --git a/java/src/c/Makefile b/java/src/c/Makefile.am similarity index 50% rename from java/src/c/Makefile rename to java/src/c/Makefile.am index 55e6bd03..eec8fca9 100644 --- a/java/src/c/Makefile +++ b/java/src/c/Makefile.am @@ -1,4 +1,17 @@ -CFLAGS = \ +if MINGW +JAVA_CFLAGS = -mno-cygwin -mwindows -D_MSC_VER=1 \ + -D_WIN32 -DWIN32 -DLASSO_DEBUG \ + -I../../.. \ + -I../../win32 \ + -I. -g \ + -I/usr/local/include \ + -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include \ + -I/usr/local/include/libxml2 \ + -DXMLSEC_CRYPTO="openssl" -DXMLSEC_LIBXML_260=1 \ + -D__XMLSEC_FUNCTION__=__FUNCTION__ -DXMLSEC_NO_XKMS=1 \ + -DXMLSEC_NO_CRYPTO_DYNAMIC_LOADING=1 -DXMLSEC_CRYPTO_OPENSSL=1 +else +JAVA_CFLAGS = \ -g \ -I. -I/opt/jdk/include -I/opt/jdk/include/linux \ -I../../.. \ @@ -6,7 +19,7 @@ CFLAGS = \ -I/usr/include/glib-2.0 \ -I/usr/lib/glib-2.0/include \ -DXMLSEC_LIBXML_260=1 -D__XMLSEC_FUNCTION__=__FUNCTION__ -DXMLSEC_NO_XKMS=1 -DXMLSEC_NO_CRYPTO_DYNAMIC_LOADING=1 -I/usr/include/xmlsec1 -I/usr/include/libxml2 -DXMLSEC_CRYPTO_OPENSSL=1 -DXMLSEC_CRYPTO=\"openssl\" - +endif C_SOURCE = ${wildcard *.c} C_OBJECT = ${C_SOURCE:.c=.o} @@ -15,7 +28,7 @@ C_OBJECT = ${C_SOURCE:.c=.o} all: ${C_OBJECT} %.o: %.c %.h - ${CC} $(CFLAGS) -c $< + ${CC} $(JAVA_CFLAGS) -c $< clean: rm -f ${C_OBJECT} *~ diff --git a/java/tests/LoginTest.java b/java/tests/LoginTest.java index 8e14bb11..9130dc81 100644 --- a/java/tests/LoginTest.java +++ b/java/tests/LoginTest.java @@ -215,7 +215,8 @@ public class LoginTest extends TestCase { } public static void main(String args[]) { - Lasso.init(); + System.out.println(System.mapLibraryName("jlasso")); + Lasso.init(); junit.textui.TestRunner.run(suite()); Lasso.shutdown(); } diff --git a/lasso/Makefile.am b/lasso/Makefile.am index d3344f26..aa2f2d82 100644 --- a/lasso/Makefile.am +++ b/lasso/Makefile.am @@ -14,6 +14,16 @@ INCLUDES = \ EXTRA_DIST = \ $(NULL) +## Added to activate libtool 1.5.6 windows resources partial support +LTRCCOMPILE = $(LIBTOOL) --tag=RC --mode=compile $(RC) \ + `echo $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) |\ + sed -e 's/-I/--include-dir /g;s/-D/--define /g'` + +## Added to activate libtool 1.5.6 windows resources partial support +lasso.rc.lo: ../win32/lasso.rc + $(LTRCCOMPILE) -i $< -o $@ + + lib_LTLIBRARIES = \ liblasso.la \ $(NULL) @@ -28,13 +38,23 @@ liblasso_la_SOURCES = \ lasso.c \ $(NULL) +if MINGW +liblasso_la_LIBADD = \ + $(top_builddir)/lasso/xml/liblasso-xml.la \ + $(top_builddir)/lasso/protocols/liblasso-protocols.la \ + $(top_builddir)/lasso/environs/liblasso-environs.la \ + $(LASSO_LIBS) \ + lasso.rc.lo \ + $(NULL) +else liblasso_la_LIBADD = \ $(top_builddir)/lasso/xml/liblasso-xml.la \ $(top_builddir)/lasso/protocols/liblasso-protocols.la \ $(top_builddir)/lasso/environs/liblasso-environs.la \ $(LASSO_LIBS) \ $(NULL) +endif liblasso_la_LDFLAGS = \ - -version-info @LASSO_VERSION_INFO@ \ + -no-undefined -version-info @LASSO_VERSION_INFO@ \ $(NULL) diff --git a/lasso/export.h b/lasso/export.h index 241a8075..2eecea7f 100644 --- a/lasso/export.h +++ b/lasso/export.h @@ -34,7 +34,7 @@ extern "C" { Windows platform with MSVC compiler. */ #if !defined LASSO_EXPORT -# if defined _MSC_VER +# if (defined _MSC_VER || defined MINGW32) /* if we compile libxmlsec itself: */ # if defined(IN_LASSO) # if !defined(LASSO_STATIC) @@ -58,7 +58,7 @@ extern "C" { #endif #if !defined LASSO_EXPORT_VAR -# if defined _MSC_VER +# if (defined _MSC_VER || defined MINGW32) /* if we compile libxmlsec itself: */ # if defined(IN_LASSO) # if !defined(LASSO_STATIC) diff --git a/lasso/lasso.h b/lasso/lasso.h index ddccffef..cf6e43ec 100644 --- a/lasso/lasso.h +++ b/lasso/lasso.h @@ -29,11 +29,13 @@ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ -#if defined _MSC_VER + +#if (defined _MSC_VER || defined MINGW32) # include #endif -#include +/*#include */ +#include #include #include diff --git a/python/Makefile.am b/python/Makefile.am index e6d8dc90..66ac3b27 100644 --- a/python/Makefile.am +++ b/python/Makefile.am @@ -2,7 +2,6 @@ SUBDIRS = doc environs examples protocols tests xml lassomod_la_LDFLAGS = -module -avoid-version -L$(top_builddir)/lasso/.libs -if WITH_PYTHON INCLUDES = \ -DPACKAGE=\"@PACKAGE@\" \ -I$(top_srcdir) \ @@ -23,7 +22,6 @@ lassomod_la_LIBADD = $(mylibs) \ ./protocols/libprotocols.a \ ./xml/libxml.a \ ./environs/libenvirons.a -endif EXTRA_DIST = lassomod.h py_lasso.h utils.h wrap_objs.h \ generator_lasso_strings.py lasso.py lasso_strings.py \