Blame configure.ac

rpm-build 324937
dnl -*- Mode: Autoconf; tab-width: 4; indent-tabs-mode: nil; fill-column: 102 -*-
rpm-build 324937
# Process this file with autoconf to create configure.
rpm-build 324937
rpm-build 324937
AC_PREREQ([2.65])
rpm-build 324937
rpm-build 324937
# ====================
rpm-build 324937
# Version informations
rpm-build 324937
# ====================
rpm-build 324937
m4_define([libpagemaker_version_major],[0])
rpm-build 324937
m4_define([libpagemaker_version_minor],[0])
rpm-build 324937
m4_define([libpagemaker_version_micro],[4])
rpm-build 324937
m4_define([libpagemaker_version],[libpagemaker_version_major.libpagemaker_version_minor.libpagemaker_version_micro])
rpm-build 324937
rpm-build 324937
# =============
rpm-build 324937
# Automake init
rpm-build 324937
# =============
rpm-build 324937
AC_INIT([libpagemaker],[libpagemaker_version])
rpm-build 324937
AC_CONFIG_MACRO_DIR([m4])
rpm-build 324937
AC_CONFIG_HEADER([config.h])
rpm-build 324937
AM_INIT_AUTOMAKE([1.11 foreign dist-xz dist-bzip2])
rpm-build 324937
AM_SILENT_RULES([yes])
rpm-build 324937
AC_LANG([C++])
rpm-build 324937
rpm-build 324937
# ===========================
rpm-build 324937
# Find required base packages
rpm-build 324937
# ===========================
rpm-build 324937
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
rpm-build 324937
AC_PROG_CC
rpm-build 324937
AC_PROG_CPP
rpm-build 324937
AC_PROG_CXX
rpm-build 324937
AC_PROG_INSTALL
rpm-build 324937
AC_PROG_LN_S
rpm-build 324937
AC_PROG_MAKE_SET
rpm-build 324937
LT_INIT([win32-dll disable-static pic-only])
rpm-build 324937
AC_CANONICAL_HOST
rpm-build 324937
rpm-build 324937
AX_CXX_COMPILE_STDCXX_11
rpm-build 324937
AX_GCC_FUNC_ATTRIBUTE([format])
rpm-build 324937
DLP_FALLTHROUGH
rpm-build 324937
rpm-build 324937
PKG_PROG_PKG_CONFIG([0.20])
rpm-build 324937
rpm-build 324937
# ===============
rpm-build 324937
# Find librevenge
rpm-build 324937
# ===============
rpm-build 324937
PKG_CHECK_MODULES([REVENGE],[
rpm-build 324937
    librevenge-0.0
rpm-build 324937
])
rpm-build 324937
AC_SUBST([REVENGE_CFLAGS])
rpm-build 324937
AC_SUBST([REVENGE_LIBS])
rpm-build 324937
rpm-build 324937
# ==========
rpm-build 324937
# Find boost
rpm-build 324937
# ==========
rpm-build 324937
AC_CHECK_HEADERS(
rpm-build 324937
        boost/cstdint.hpp \
rpm-build 324937
        boost/format.hpp \
rpm-build 324937
        boost/iterator/iterator_facade.hpp \
rpm-build 324937
        boost/optional.hpp \
rpm-build 324937
        ,
rpm-build 324937
    [],
rpm-build 324937
    [AC_MSG_ERROR([Required boost headers not found.])],
rpm-build 324937
    []
rpm-build 324937
)
rpm-build 324937
rpm-build 324937
# =================================
rpm-build 324937
# Libtool/Version Makefile settings
rpm-build 324937
# =================================
rpm-build 324937
AC_SUBST(PMD_MAJOR_VERSION, [libpagemaker_version_major])
rpm-build 324937
AC_SUBST(PMD_MINOR_VERSION, [libpagemaker_version_minor])
rpm-build 324937
AC_SUBST(PMD_MICRO_VERSION, [libpagemaker_version_micro])
rpm-build 324937
AC_SUBST(PMD_VERSION, [libpagemaker_version])
rpm-build 324937
# AC_SUBST(LT_RELEASE, [libpagemaker_version_major.libpagemaker_version_minor])
rpm-build 324937
LT_CURRENT=`expr 100 '*' libpagemaker_version_major + libpagemaker_version_minor`
rpm-build 324937
# For 1.0.0 comment the first line and uncomment the second
rpm-build 324937
LT_AGE=0
rpm-build 324937
# LT_AGE=libpagemaker_version_minor
rpm-build 324937
AC_SUBST(LT_CURRENT)
rpm-build 324937
AC_SUBST(LT_REVISION, [libpagemaker_version_micro])
rpm-build 324937
AC_SUBST(LT_AGE)
rpm-build 324937
rpm-build 324937
# ==========================
rpm-build 324937
# Platform check for windows
rpm-build 324937
# ==========================
rpm-build 324937
AC_MSG_CHECKING([for native Win32])
rpm-build 324937
AS_CASE([$host],
rpm-build 324937
    [*-*-mingw*], [
rpm-build 324937
        native_win32=yes
rpm-build 324937
        LIBPMD_WIN32_RESOURCE=libpagemaker-win32res.lo
rpm-build 324937
        PMD2RAW_WIN32_RESOURCE=pmd2raw-win32res.lo
rpm-build 324937
        PMD2SVG_WIN32_RESOURCE=pmd2svg-win32res.lo
rpm-build 324937
    ], [
rpm-build 324937
        native_win32=no
rpm-build 324937
        LIBPMD_WIN32_RESOURCE=
rpm-build 324937
        PMD2RAW_WIN32_RESOURCE=
rpm-build 324937
        PMD2SVG_WIN32_RESOURCE=
rpm-build 324937
    ]
rpm-build 324937
)
rpm-build 324937
AC_MSG_RESULT([$native_win32])
rpm-build 324937
AM_CONDITIONAL(OS_WIN32, [test "x$native_win32" = "xyes"])
rpm-build 324937
AC_SUBST(LIBPMD_WIN32_RESOURCE)
rpm-build 324937
AC_SUBST(PMD2RAW_WIN32_RESOURCE)
rpm-build 324937
AC_SUBST(PMD2SVG_WIN32_RESOURCE)
rpm-build 324937
rpm-build 324937
AC_MSG_CHECKING([for Win32 platform in general])
rpm-build 324937
AS_CASE([$host],
rpm-build 324937
    [*-*-mingw*|*-*-cygwin*], [platform_win32=yes],
rpm-build 324937
    [platform_win32=no]
rpm-build 324937
)
rpm-build 324937
AC_MSG_RESULT([$platform_win32])
rpm-build 324937
AM_CONDITIONAL([PLATFORM_WIN32], [test "x$platform_win32" = "xyes"])
rpm-build 324937
rpm-build 324937
AS_IF([test $platform_win32 = yes],
rpm-build 324937
    [],
rpm-build 324937
    [
rpm-build 324937
        AC_MSG_CHECKING([for -fvisibility=hidden compiler flag])
rpm-build 324937
        saved_CXXFLAGS="$CXXFLAGS"
rpm-build 324937
        CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
rpm-build 324937
        AC_TRY_COMPILE([], [],
rpm-build 324937
            [
rpm-build 324937
                AC_MSG_RESULT([yes])
rpm-build 324937
                CXXFLAGS="$CXXFLAGS -DLIBPAGEMAKER_VISIBILITY"
rpm-build 324937
            ],
rpm-build 324937
            [
rpm-build 324937
                AC_MSG_RESULT([no])
rpm-build 324937
                CXXFLAGS="$saved_CXXFLAGS"
rpm-build 324937
            ]
rpm-build 324937
        )
rpm-build 324937
    ]
rpm-build 324937
)
rpm-build 324937
rpm-build 324937
# ================
rpm-build 324937
# Check for cflags
rpm-build 324937
# ================
rpm-build 324937
AC_ARG_ENABLE([werror],
rpm-build 324937
    [AS_HELP_STRING([--disable-werror], [Treat all warnings as errors, useful for development])],
rpm-build 324937
    [enable_werror="$enableval"],
rpm-build 324937
    [enable_werror=yes]
rpm-build 324937
)
rpm-build 324937
AS_IF([test x"$enable_werror" != "xno"], [
rpm-build 324937
    CFLAGS="$CFLAGS -Werror"
rpm-build 324937
    CXXFLAGS="$CXXFLAGS -Werror"
rpm-build 324937
])
rpm-build 324937
AC_ARG_ENABLE([weffc],
rpm-build 324937
    [AS_HELP_STRING([--disable-weffc], [ Disable -Weffc++ warnings, useful when using an old version of gcc or of boost])],
rpm-build 324937
    [enable_weffc="$enableval"],
rpm-build 324937
    [enable_weffc=yes]
rpm-build 324937
)
rpm-build 324937
AC_ARG_ENABLE([wparanoic],
rpm-build 324937
    [AS_HELP_STRING([--enable-wparanoic], [Enable a lot of warnings...])],
rpm-build 324937
    [enable_wparanoic="$enableval"],
rpm-build 324937
    [enable_wparanoic=no]
rpm-build 324937
)
rpm-build 324937
# Courtesy of Glib: Ensure MSVC-compatible struct packing convention
rpm-build 324937
# is used when compiling for Win32 with gcc.
rpm-build 324937
AS_IF([test "x$native_win32" = "xyes"], [
rpm-build 324937
    AC_CHECK_TOOL(WINDRES, windres)
rpm-build 324937
    AS_IF([test x"$GCC" = xyes], [
rpm-build 324937
        AC_MSG_CHECKING([how to get MSVC-compatible struct packing])
rpm-build 324937
        AS_IF([test -z "$ac_cv_prog_CC"], [
rpm-build 324937
            our_gcc="$CC"
rpm-build 324937
        ], [
rpm-build 324937
            our_gcc="$ac_cv_prog_CC"
rpm-build 324937
        ])
rpm-build 324937
        AS_IF([$our_gcc -v --help 2>/dev/null | grep ms-bitfields >/dev/null], [
rpm-build 324937
            msnative_struct="-mms-bitfields"
rpm-build 324937
            CFLAGS="$CFLAGS $msnative_struct"
rpm-build 324937
            CXXFLAGS="$CXXFLAGS $msnative_struct"
rpm-build 324937
            AC_MSG_RESULT([${msnative_struct}])
rpm-build 324937
        ], [
rpm-build 324937
            AC_MSG_RESULT([no way])
rpm-build 324937
            AC_MSG_WARN([produced libraries might be incompatible with MSVC-compiled code])
rpm-build 324937
        ])
rpm-build 324937
    ])
rpm-build 324937
    CFLAGS="$CFLAGS -Wall -Wextra -pedantic"
rpm-build 324937
    CXXFLAGS="$CXXFLAGS -Wall -Wextra -Wshadow -pedantic"
rpm-build 324937
], [
rpm-build 324937
    AS_IF([test x"$GCC" = xyes], [
rpm-build 324937
        # Be tough with warnings and produce less careless code
rpm-build 324937
        CFLAGS="$CFLAGS -Wall -Wextra -pedantic"
rpm-build 324937
        CXXFLAGS="$CXXFLAGS -Wall -Wextra -pedantic -Wshadow -Wunused-variable"
rpm-build 324937
        AS_IF([test x"$enable_weffc" != "xno"], [
rpm-build 324937
            CXXFLAGS="$CXXFLAGS -Weffc++"
rpm-build 324937
        ])
rpm-build 324937
        AS_IF([test x"$enable_wparanoic" != "xno"], [
rpm-build 324937
            CXXFLAGS="$CXXFLAGS -Wcast-align -Wcast-qual -Wchar-subscripts"
rpm-build 324937
            CXXFLAGS="$CXXFLAGS -Wcomment -Wconversion -Wdisabled-optimization"
rpm-build 324937
            CXXFLAGS="$CXXFLAGS -Wfloat-equal -Wformat -Wformat=2"
rpm-build 324937
            CXXFLAGS="$CXXFLAGS -Wformat-nonliteral -Wformat-security"
rpm-build 324937
            CXXFLAGS="$CXXFLAGS -Wformat-y2k -Wimport -Winit-self -Winvalid-pch"
rpm-build 324937
            CXXFLAGS="$CXXFLAGS -Wmissing-braces -Wmissing-field-initializers"
rpm-build 324937
            CXXFLAGS="$CXXFLAGS -Wmissing-format-attribute -Wmissing-include-dirs"
rpm-build 324937
            CXXFLAGS="$CXXFLAGS -Wmissing-noreturn -Wpacked -Wparentheses"
rpm-build 324937
            CXXFLAGS="$CXXFLAGS -Wpointer-arith -Wredundant-decls -Wreturn-type"
rpm-build 324937
            CXXFLAGS="$CXXFLAGS -Wsequence-point -Wsign-compare -Wstrict-aliasing"
rpm-build 324937
            CXXFLAGS="$CXXFLAGS -Wstrict-aliasing=2 -Wswitch -Wswitch-default"
rpm-build 324937
            CXXFLAGS="$CXXFLAGS -Wswitch-enum -Wtrigraphs -Wunknown-pragmas -Wunused"
rpm-build 324937
            CXXFLAGS="$CXXFLAGS -Wunused-function -Wunused-label -Wunused-parameter"
rpm-build 324937
            CXXFLAGS="$CXXFLAGS -Wunused-value -Wvariadic-macros"
rpm-build 324937
            CXXFLAGS="$CXXFLAGS -Wvolatile-register-var -Wwrite-strings"
rpm-build 324937
        ])
rpm-build 324937
    ])
rpm-build 324937
])
rpm-build 324937
AC_SUBST(DEBUG_CXXFLAGS)
rpm-build 324937
rpm-build 324937
# ============
rpm-build 324937
# Debug switch
rpm-build 324937
# ============
rpm-build 324937
AC_ARG_ENABLE([debug],
rpm-build 324937
    [AS_HELP_STRING([--enable-debug], [Turn on debugging])],
rpm-build 324937
    [enable_debug="$enableval"],
rpm-build 324937
    [enable_debug=no]
rpm-build 324937
)
rpm-build 324937
AS_IF([test "x$enable_debug" = "xyes"], [
rpm-build 324937
    DEBUG_CXXFLAGS="-DDEBUG -g"
rpm-build 324937
], [
rpm-build 324937
    DEBUG_CXXFLAGS="-DNDEBUG"
rpm-build 324937
])
rpm-build 324937
AC_SUBST(DEBUG_CXXFLAGS)
rpm-build 324937
rpm-build 324937
# =============
rpm-build 324937
# Documentation
rpm-build 324937
# =============
rpm-build 324937
AC_ARG_WITH(docs,
rpm-build 324937
    [AS_HELP_STRING([--without-docs], [Do not build documentation])],
rpm-build 324937
    [with_docs="$withval"],
rpm-build 324937
    [AS_IF([test "x$native_win32" = "xyes"], [with_docs=no], [with_docs=yes])]
rpm-build 324937
)
rpm-build 324937
AS_IF([test "x$with_docs" != "xno"], [
rpm-build 324937
    AC_PATH_PROG(DOXYGEN, [doxygen])
rpm-build 324937
    AS_IF([test -z "$DOXYGEN"], [
rpm-build 324937
        AC_MSG_WARN([*** Could not find doxygen in your PATH.])
rpm-build 324937
        AC_MSG_WARN([*** The documentation will not be built.])
rpm-build 324937
        build_docs=no
rpm-build 324937
    ], [build_docs=yes])
rpm-build 324937
], [build_docs=no])
rpm-build 324937
AM_CONDITIONAL([WITH_LIBPMD_DOCS], [test "x$build_docs" != "xno"])
rpm-build 324937
rpm-build 324937
# =====
rpm-build 324937
# Tools
rpm-build 324937
# =====
rpm-build 324937
AC_ARG_ENABLE([tools],
rpm-build 324937
        [AS_HELP_STRING([--disable-tools], [Build conversion tools])],
rpm-build 324937
        [enable_tools="$enableval"],
rpm-build 324937
        [enable_tools=yes]
rpm-build 324937
)
rpm-build 324937
AM_CONDITIONAL(BUILD_TOOLS, [test "x$enable_tools" = "xyes"])
rpm-build 324937
rpm-build 324937
# =======
rpm-build 324937
# Fuzzers
rpm-build 324937
# =======
rpm-build 324937
AC_ARG_ENABLE([fuzzers],
rpm-build 324937
        [AS_HELP_STRING([--enable-fuzzers], [Build fuzzer(s)])],
rpm-build 324937
        [enable_fuzzers="$enableval"],
rpm-build 324937
        [enable_fuzzers=no]
rpm-build 324937
)
rpm-build 324937
AM_CONDITIONAL(BUILD_FUZZERS, [test "x$enable_fuzzers" = "xyes"])
rpm-build 324937
rpm-build 324937
AS_IF([test "x$enable_tools" = "xyes" -o "x$enable_fuzzers" = "xyes"], [
rpm-build 324937
        PKG_CHECK_MODULES([REVENGE_STREAM],[
rpm-build 324937
                librevenge-stream-0.0
rpm-build 324937
        ])
rpm-build 324937
        PKG_CHECK_MODULES([REVENGE_GENERATORS],[
rpm-build 324937
                librevenge-generators-0.0
rpm-build 324937
        ])
rpm-build 324937
])
rpm-build 324937
AC_SUBST([REVENGE_STREAM_CFLAGS])
rpm-build 324937
AC_SUBST([REVENGE_STREAM_LIBS])
rpm-build 324937
AC_SUBST([REVENGE_GENERATORS_CFLAGS])
rpm-build 324937
AC_SUBST([REVENGE_GENERATORS_LIBS])
rpm-build 324937
rpm-build 324937
# =====================
rpm-build 324937
# Prepare all .in files
rpm-build 324937
# =====================
rpm-build 324937
AC_CONFIG_FILES([
rpm-build 324937
Makefile
rpm-build 324937
src/Makefile
rpm-build 324937
src/conv/Makefile
rpm-build 324937
src/conv/raw/Makefile
rpm-build 324937
src/conv/raw/pmd2raw.rc
rpm-build 324937
src/conv/svg/Makefile
rpm-build 324937
src/conv/svg/pmd2svg.rc
rpm-build 324937
src/conv/text/Makefile
rpm-build 324937
src/conv/text/pmd2text.rc
rpm-build 324937
src/fuzz/Makefile
rpm-build 324937
src/lib/Makefile
rpm-build 324937
src/lib/libpagemaker.rc
rpm-build 324937
inc/Makefile
rpm-build 324937
inc/libpagemaker/Makefile
rpm-build 324937
build/Makefile
rpm-build 324937
build/win32/Makefile
rpm-build 324937
docs/Makefile
rpm-build 324937
docs/doxygen/Makefile
rpm-build 324937
libpagemaker-$PMD_MAJOR_VERSION.$PMD_MINOR_VERSION.pc:libpagemaker.pc.in
rpm-build 324937
])
rpm-build 324937
AC_OUTPUT
rpm-build 324937
rpm-build 324937
# ==============================================
rpm-build 324937
# Display final informations about configuration
rpm-build 324937
# ==============================================
rpm-build 324937
AC_MSG_NOTICE([
rpm-build 324937
==============================================================================
rpm-build 324937
Build configuration:
rpm-build 324937
    debug:           ${enable_debug}
rpm-build 324937
    docs:            ${build_docs}
rpm-build 324937
    fuzzers:         ${enable_fuzzers}
rpm-build 324937
    werror:          ${enable_werror}
rpm-build 324937
==============================================================================
rpm-build 324937
])
rpm-build 324937
dnl vim:set shiftwidth=4 softtabstop=4 expandtab: