AC_INIT(cairomm/cairomm.h) #release versioning GENERIC_MAJOR_VERSION=1 GENERIC_MINOR_VERSION=6 GENERIC_MICRO_VERSION=3 GENERIC_VERSION=$GENERIC_MAJOR_VERSION.$GENERIC_MINOR_VERSION.$GENERIC_MICRO_VERSION AC_SUBST(GENERIC_MAJOR_VERSION) AC_SUBST(GENERIC_MINOR_VERSION) AC_SUBST(GENERIC_MICRO_VERSION) AC_SUBST(GENERIC_VERSION) #shared library versioning GENERIC_LIBRARY_VERSION=3:0:2 # | | | # +------+ | +---+ # | | | # current:revision:age # | | | # | | +- increment if interfaces have been added # | | set to zero if interfaces have been removed # or changed # | +- increment if source code has changed # | set to zero if current is incremented # +- increment if interfaces have been added, removed or changed AC_SUBST(GENERIC_LIBRARY_VERSION) VERSION=$GENERIC_VERSION AM_INIT_AUTOMAKE(cairomm, $GENERIC_VERSION) AM_CONFIG_HEADER(cairomm/cairommconfig.h) AC_PROG_CXX AC_PROG_CXXCPP AC_LANG_CPLUSPLUS AC_PROG_INSTALL AC_LIBTOOL_WIN32_DLL AM_PROG_LIBTOOL dnl Used for enabling the "-no-undefined" and "-export-all-symbols" flags dnl while generating DLLs. Borrowed from the official gtk+-2 configure.in AC_MSG_CHECKING([for some Win32 platform]) 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 native Win32]) case "$host" in *-*-mingw*) os_win32=yes ;; *) os_win32=no ;; esac AC_MSG_RESULT([$os_win32]) AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes") # 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"$os_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 CXXFLAGS="$CXXFLAGS $msnative_struct" AC_MSG_RESULT([${msnative_struct}]) fi fi fi AC_CHECK_HEADERS(string list map, , exit) dnl some platforms (e.g. Solaris) need additional C headers included so dnl that there are always prototypes and defines available. AC_CHECK_HEADERS(math.h) PKG_CHECK_MODULES(CAIROMM, cairo >= 1.6.0 sigc++-2.0) AC_ARG_ENABLE(tests, AC_HELP_STRING([--enable-tests=yes|no], [enable automated tests (default is no)]), ENABLE_TESTS=$enableval, ENABLE_TESTS=auto) if test x$ENABLE_TESTS = xauto ; then dnl unless explicitly disabled, attempt to enable tests for developers and dnl disable it for others if test x$CAIROMM_DEVEL = xon ; then ENABLE_TESTS=yes else ENABLE_TESTS=no fi fi if test x$ENABLE_TESTS = xyes ; then ####################################################### #boost build system sucks no end. #it is damn hard to detect the version of boost #that is installed. All that because our friends of #the boost project don't want to integrate to autofoo. #So we resort to hugly hacks to detect the version of #boost that is installed. ####################################################### AX_BOOST_BASE([1.33.1]) AX_BOOST_UNIT_TEST_FRAMEWORK AX_BOOST_TEST_EXEC_MONITOR unit_framework_lib_candidates="/usr/lib/libboost_unit_test_framework-st.a /usr/lib/libboost_unit_test_framework.a" unit_framework_lib_candidates=$unit_framework_lib_candidates" /usr/lib64/libboost_unit_test_framework-st.a /usr/lib64/libboost_unit_test_framework.a" for i in $unit_framework_lib_candidates ; do if test -f $i ; then BOOST_UNIT_TEST_FRAMEWORK_STATIC_LIB=$i break fi done AC_SUBST(BOOST_UNIT_TEST_FRAMEWORK_STATIC_LIB) AC_MSG_NOTICE(support of automated tests enabled) else AC_MSG_NOTICE(disabled support of automated tests) fi AM_CONDITIONAL(AUTOTESTS, test x$ENABLE_TESTS = xyes) dnl enable compiler warnings when the CAIROMM_DEVEL environment variable is set to 'on' if test "x$CAIROMM_DEVEL" = "xon" ; then CXXFLAGS="$CXXFLAGS -Wall -g -Werror -Wextra" fi CAIROMM_ARG_ENABLE_API_EXCEPTIONS() dnl Check whether to build the documentation directory DOCS_SUBDIR="" dnl set DOCS_SUBDIR initially blank AC_ARG_ENABLE(docs, [AC_HELP_STRING([--enable-docs], [build the included docs [default=yes]])],, [enable_docs=yes]) if test "x$enable_docs" = "xyes"; then dnl check if doxygen is installed AC_CHECK_PROGS(DOXYGEN, [doxygen], no) if test x$DOXYGEN = xno; then AC_MSG_WARN([Doxygen not found, documentation will not be rebuilt]) else dnl check if graphviz / dot is installed (used by doxygen) AC_CHECK_PROGS(DOT, [dot], no) if test x$DOT = xno; then AC_MSG_WARN([graphviz / dot not found, documentation graphs will not be rebuilt]) fi fi DOCS_SUBDIR="docs" AC_CONFIG_FILES( docs/Makefile docs/reference/Makefile docs/reference/Doxyfile ) fi AC_SUBST(DOCS_SUBDIR) AC_CONFIG_FILES( Makefile cairomm/Makefile examples/Makefile examples/png_file/Makefile examples/pdf-surface/Makefile examples/ps-surface/Makefile examples/svg-surface/Makefile examples/text/Makefile tests/Makefile cairomm-1.0.pc ) AC_CONFIG_FILES([ MSVC_Net2005/Makefile MSVC_Net2005/gendef/Makefile MSVC_Net2005/cairomm/Makefile MSVC_Net2005/cairomm/cairomm.rc MSVC_Net2005/examples/Makefile MSVC_Net2005/examples/pdf-surface/Makefile MSVC_Net2005/examples/png_file/Makefile MSVC_Net2005/examples/ps-surface/Makefile MSVC_Net2005/examples/svg-surface/Makefile MSVC_Net2005/examples/text-rotate/Makefile ]) AC_OUTPUT()