dnl -*- Mode: sh -*- dnl dnl configure.ac - top level autoconf file for Cryptic 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([cryptic], 1.1.1, cryptic-devel@listes.entrouvert.com) 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(cryptic/cryptic.c) dnl Copy stamp REVISIO-INFO in the configure script. AC_REVISION($Revision: 1 $) 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])]) dnl Create rules to automaticaly regenerate the config header. AM_CONFIG_HEADER([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_CRYPTIC -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) 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 #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 cryptic_.h AC_DEFINE_UNQUOTED(CRYPTIC_VERSION_MAJOR, $VERSION_MAJOR, [Major version number]) AC_DEFINE_UNQUOTED(CRYPTIC_VERSION_MINOR, $VERSION_MINOR, [Minor version number]) AC_DEFINE_UNQUOTED(CRYPTIC_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` CRYPTIC_VERSION_INFO="10:1:7" AC_SUBST(CRYPTIC_VERSION_INFO) dnl Compute the minimal supported ABI version for Win32 scripts and resources files. minimal_version=`echo $CRYPTIC_VERSION_INFO | $AWK -F: '{printf("%d\n",$1-$3)};'` UPCASED_DLL_FILENAME="LIBCRYPTIC-$minimal_version.DLL" DLL_FILENAME="libcryptic-$minimal_version.dll" AC_SUBST(UPCASED_DLL_FILENAME) AC_SUBST(DLL_FILENAME) 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. 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 cryptic) 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 API Reference documentation support GTK_DOC_CHECK(1.9) if test "z$with_html_dir" != "z" ; then CRYPTIC_DOCDIR=$with_html_dir else CRYPTIC_DOCDIR='$(datadir)/doc/cryptic' fi AC_SUBST(CRYPTIC_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(CRYPTIC, glib-2.0 >= 2.4.0 gobject-2.0 >= 2.4.0 openssl) 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 CRYPTIC_DEFINES="$CRYPTIC_DEFINES -DCRYPTIC_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 ========================================================================== CRYPTIC_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 CRYPTIC_STATIC_BINARIES="-static" AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi AC_SUBST(CRYPTIC_STATIC_BINARIES) dnl ========================================================================== dnl Final steps: cryptic config dnl ========================================================================== CRYPTIC_PUB_CFLAGS="$CRYPTIC_DEFINES" CRYPTIC_CORE_CFLAGS="$CRYPTIC_CFLAGS $CRYPTIC_DEFINES $Z_CFLAGS -DCRYPTIC_INTERNALS" if test $MINGW -eq 1; then CRYPTIC_CORE_LIBS="-lcryptic-0" else CRYPTIC_CORE_LIBS="-lcryptic " fi AC_SUBST(CRYPTIC_CORE_CFLAGS) AC_SUBST(CRYPTIC_CORE_LIBS) CRYPTIC_CFLAGS="$CRYPTIC_CFLAGS" CRYPTIC_LIBS="-L${libdir} $Z_LIBS $CRYPTIC_LIBS" AC_SUBST(CRYPTIC_CFLAGS) AC_SUBST(CRYPTIC_LIBS) AC_SUBST(CRYPTIC_PUB_CFLAGS) AC_SUBST(CRYPTIC_DEFINES) AC_SUBST(CRYPTIC_APP_DEFINES) AC_SUBST(CFLAGS) AC_SUBST(CPPFLAGS) AC_SUBST(LDFLAGS) AC_SUBST(CLASSPATH_JUNIT) 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([cryptic-src-config], [chmod +x cryptic-src-config]) AC_OUTPUT( [Makefile cryptic/Makefile tests/Makefile cryptic.pc bindings/Makefile bindings/java/Makefile bindings/python/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 Optionals builds ---------------- Available languages: ${languages_available} Java binding: ${enable_java} Python binding: ${enable_python} C API references: ${enable_gtk_doc} Tests suite: ${enable_tests} )