AC_INIT(crossmark/crossmark.hh) # # Versioning # AM_CONFIG_HEADER(config.h) AC_CONFIG_HEADERS(crossmark/features.hh) CROSSMARK_MAJOR_VERSION=0 CROSSMARK_MINOR_VERSION=2 CROSSMARK_MICRO_VERSION=0 CROSSMARK_VERSION="$CROSSMARK_MAJOR_VERSION.$CROSSMARK_MINOR_VERSION.$CROSSMARK_MICRO_VERSION" AC_SUBST(CROSSMARK_MAJOR_VERSION) AC_SUBST(CROSSMARK_MINOR_VERSION) AC_SUBST(CROSSMARK_MICRO_VERSION) AC_SUBST(CROSSMARK_VERSION) dnl # libtool versioning dnl LT_RELEASE=$CROSSMARK_MAJOR_VERSION.$CROSSMARK_MINOR_VERSION dnl AC_SUBST(LT_RELEASE) LT_CURRENT=`expr 10 '*' $CROSSMARK_MAJOR_VERSION + $CROSSMARK_MINOR_VERSION` LT_REVISION=$CROSSMARK_MICRO_VERSION # For 1.0.0 comment the first line and uncomment the second LT_AGE=0 # LT_AGE=$WPD_MINOR_VERSION LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE` AC_SUBST(LT_CURRENT) AC_SUBST(LT_REVISION) AC_SUBST(LT_AGE) AC_SUBST(LT_CURRENT_MINUS_AGE) AM_INIT_AUTOMAKE(libcrossmark, $CROSSMARK_VERSION) # # Requirements # AC_PROG_CC AC_PROG_CXX AC_PROG_INSTALL AC_LIBTOOL_WIN32_DLL AC_DISABLE_STATIC AC_PROG_LIBTOOL AC_PROG_LN_S AC_PATH_PROG(PKG_CONFIG, pkg-config, no) DEPS_CFLAGS= DEPS_EXTRA_CFLAGS= DEPS_LIBS= DEPS_PKGS= # TODO require certain glib version? glib_reqs="glib-2.0" DEPS_EXTRA_CFLAGS="$DEPS_EXTRA_CFLAGS -DG_DISABLE_DEPRECATED" DEPS_PKGS="$DEPS_PKGS $glib_reqs" AC_CHECK_PROG([SWIG], [swig], [swig], [no]) AC_SUBST(SWIG) AC_ARG_VAR(SWIG, Swig interface generator) swig_stamp="$srcdir/python/crossmark/swig-stamp" AC_MSG_CHECKING([for python binding code in $swig_stamp]) if test -f "$swig_stamp"; then PYTHON_BINDING_SHIPPED="yes" else PYTHON_BINDING_SHIPPED="no" fi AC_MSG_RESULT([$PYTHON_BINDING_SHIPPED]) dox_stamp="$srcdir/docs/doxygen/dox-stamp" AC_MSG_CHECKING([documentation in $dox_stamp]) if test -f "$dox_stamp"; then DOX_SHIPPED="yes" else DOX_SHIPPED="no" fi AC_MSG_RESULT([$PYTHON_BINDING_SHIPPED]) AC_CHECK_PROG(DOXYGEN, doxygen, doxygen) AC_SUBST(DOXYGEN) AC_ARG_VAR(DOXYGEN, Doxygen doc generator) # # Build options # # TODO require certain libgsf version? libgsf_reqs="libgsf-1" AC_ARG_WITH([libgsf], [AS_HELP_STRING([--with-libgsf], [use libgsf for I/O])], [ cm_cv_libgsf="$withval" ], [ PKG_CHECK_EXISTS([ $libgsf_reqs ], [ cm_cv_libgsf="yes" ], [ cm_cv_libgsf="no" ]) ]) if test "x$cm_cv_libgsf" == "xyes"; then DEPS_EXTRA_CFLAGS="$DEPS_EXTRA_CFLAGS -DGSF_DISABLE_DEPRECATED" DEPS_PKGS="$DEPS_PKGS $libgsf_reqs" AC_DEFINE([LIBCROSSMARK_FEATURE_LIBGSF], [1], [Define if you are using libgsf]) fi AM_CONDITIONAL([HAVE_LIBGSF], test "x$cm_cv_libgsf" == "xyes") AC_ARG_WITH([python], [AS_HELP_STRING([--with-python], [build python bindings])], [ cm_cv_python="$withval" ], [ cm_cv_python="yes" ]) if test "x$cm_cv_python" == "xyes" && \ test "x$SWIG" != "xno"; then # with-python, and swig available AM_PATH_PYTHON(2.3) AM_CHECK_PYTHON_HEADERS( [], [ cm_cv_python="no" ]) cm_cv_python_msg="(wrappers generated)" elif test "x$cm_cv_python" == "xyes" && \ test "x$PYTHON_BINDING_SHIPPED" == "xyes"; then # with-python, swig wrappers shipped AM_PATH_PYTHON(2.3) AM_CHECK_PYTHON_HEADERS( [], [ cm_cv_python="no" ]) cm_cv_python_msg="(wrappers shipped)" else cm_cv_python="no" fi AM_CONDITIONAL([HAVE_PYTHON], test "x$cm_cv_python" == "xyes") AC_ARG_ENABLE([docs], [AS_HELP_STRING([--enable-docs], [build documentation, requires doxygen])], [ cm_cv_docs="$enableval" ], [ cm_cv_docs="yes" ]) AC_ARG_ENABLE([internal-docs], [AS_HELP_STRING([--enable-internal-docs], [build internal documentation, requires doxygen])], [ cm_cv_internal_docs="$enableval" cm_cv_docs="$enableval" ], [ cm_cv_internal_docs="no" ]) AC_ARG_ENABLE([examples], [AS_HELP_STRING([--disable-docs], [do not build examples])], [ cm_cv_examples="$enableval" ], [ cm_cv_examples="yes" ]) # # Build settings # ABS_ROOTDIR=`pwd` AC_SUBST(ABS_ROOTDIR) pushd `pwd` cd $ABS_ROOTDIR/.. DOXYGEN_STRIP_PATH=`pwd` popd DOXYGEN_STRIP_PATH= if test "x$cm_cv_docs" == "xyes" && \ test "x$DOXYGEN" != "x" && \ test "$cm_cv_python" == "xyes"; then cm_cv_docs="yes" cm_cv_docs_msg="(xmark generated)" elif test "x$cm_cv_docs" == "xyes" && \ test "x$DOXYGEN" != "x" && \ test "x$DOX_SHIPPED" == "xyes"; then cm_cv_docs="yes" cm_cv_docs_msg="(xmark shipped)" else cm_cv_docs_msg="(docs:$cm_cv_docs, doxygen:$DOXYGEN, python:$cm_cv_python, dox:$DOX_SHIPPED)" cm_cv_docs="no" cm_cv_internal_docs="no" fi AM_CONDITIONAL(BUILD_DOCS, test "x$cm_cv_docs" == "xyes") AC_SUBST(DOXYGEN_STRIP_PATH) if test "x$cm_cv_internal_docs" == "xyes"; then INTERNAL_DOCS="YES" else INTERNAL_DOCS="NO" fi AC_SUBST(INTERNAL_DOCS) AM_CONDITIONAL(BUILD_EXAMPLES, test "x$cm_cv_examples" == "xyes") PKG_CHECK_MODULES([DEPS], [ $DEPS_PKGS ]) DEPS_CFLAGS="$DEPS_CFLAGS $DEPS_EXTRA_CFLAGS" AC_SUBST(DEPS_CFLAGS) AC_SUBST(DEPS_LIBS) AC_SUBST(DEPS_PKGS) ## from libgsf ## this should come after `AC_PROG_CC' CXXFLAGS="$CXXFLAGS $WARN_CXXFLAGS" if test "$GCC" == "yes"; then for option in -Wno-system-headers -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wsign-compare -Wformat -Wundef -W -Wmissing-noreturn -Wmissing-format-attribute; do SAVE_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS $option" AC_MSG_CHECKING([whether gcc understands $option]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])], has_option=yes, has_option=no) if test $has_option == no; then CXXFLAGS="$SAVE_CXXFLAGS" fi AC_MSG_RESULT($has_option) unset has_option unset SAVE_CXXFLAGS done unset option fi # # Portability # AC_MSG_CHECKING([for native Win32]) case "$host" in *-*-mingw*) native_win32=yes LIBCROSSMARK_WIN32_RESOURCE=libwpd-win32res.lo ;; *) native_win32=no LIBCROSSMARK_WIN32_RESOURCE= ;; esac AC_MSG_RESULT([$native_win32]) AM_CONDITIONAL(OS_WIN32, test "$native_win32" == yes) AC_SUBST(LIBCROSSMARK_WIN32_RESOURCE) AC_MSG_CHECKING([for Win32 platform in general]) case "$host" in *-*-mingw*|*-*-cygwin*) platform_win32=yes ;; *) platform_win32=no ;; esac AC_MSG_RESULT($platform_win32) AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" == yes) AC_MSG_CHECKING([for Darwin (Mac OS X) platform]) case "$host" in *-*-darwin*) platform_darwin=yes ;; *) platform_darwin=no ;; esac AC_MSG_RESULT($platform_darwin) AM_CONDITIONAL(PLATFORM_DARWIN, test "$platform_darwin" == yes) AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug], [enable debugging support])], [ case "${enableval}" in yes) debug=true ; DEBUG_CXXFLAGS="-DDEBUG -O0 -g" ;; no) debug=false ; DEBUG_CXXFLAGS="-DNDEBUG" ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;; esac ],[ debug=false DEBUG_CXXFLAGS="-DNDEBUG" ]) # AM_CONDITIONAL(DEBUG, test x$debug == xtrue) # Courtesy of Glib: Ensure MSVC-compatible struct packing convention # is used when compiling for Win32 with gcc. # What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while # gcc2 uses "-fnative-struct". if test x"$native_win32" == xyes; then if test x"$GCC" == xyes; then msnative_struct='' AC_MSG_CHECKING([how to get MSVC-compatible struct packing]) if test -z "$ac_cv_prog_CC"; then our_gcc="$CC" else our_gcc="$ac_cv_prog_CC" fi case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in 2.) if $our_gcc -v --help 2>/dev/null | grep fnative-struct >/dev/null; then msnative_struct='-fnative-struct' fi ;; *) if $our_gcc -v --help 2>/dev/null | grep ms-bitfields >/dev/null; then msnative_struct='-mms-bitfields' fi ;; esac if test x"$msnative_struct" == x ; then AC_MSG_RESULT([no way]) AC_MSG_WARN([produced libraries might be incompatible with MSVC-compiled code]) else CFLAGS="$CFLAGS $msnative_struct" CXXFLAGS="$CXXFLAGS $msnative_struct" AC_MSG_RESULT([${msnative_struct}]) fi fi fi AC_SUBST(DEBUG_CXXFLAGS) AC_OUTPUT([ crossmark/Makefile crossmark/libcrossmark.rc crossmark/stream/Makefile docs/Makefile docs/doxygen/Makefile docs/doxygen/Doxyfile docs/examples/Makefile python/Makefile python/block/Makefile python/link/Makefile python/style/Makefile tests/Makefile tools/Makefile tools/xm2dox Makefile libcrossmark-1.pc ]) echo " Configuration Use libgsf: ${cm_cv_libgsf} Python bindings: ${cm_cv_python} ${cm_cv_python_msg} installing to: ${pyexecdir} Build documentation: ${cm_cv_docs} ${cm_cv_docs_msg} examples: ${cm_cv_examples} internal docs: ${cm_cv_internal_docs} Debugging support: ${debug} "