# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ([2.69]) AC_INIT([Extract PDFmark], [1.1.1], , [extractpdfmark], [https://github.com/trueroad/extractpdfmark]) AM_INIT_AUTOMAKE([foreign]) AC_CONFIG_SRCDIR([src/main.cc]) AC_CONFIG_HEADERS([config.h]) PACKAGE_COPYRIGHT="Copyright (C) 2016-2022 Masamichi Hosoda" PACKAGE_LICENSE="License: GPL3+" AC_SUBST([PACKAGE_COPYRIGHT]) AC_SUBST([PACKAGE_LICENSE]) AC_DEFINE_UNQUOTED([PACKAGE_COPYRIGHT], ["$PACKAGE_COPYRIGHT"], [Define to the copyright of this package.]) AC_DEFINE_UNQUOTED([PACKAGE_LICENSE], ["$PACKAGE_LICENSE"], [Define to the license of this package.]) # Checks for programs. AC_PROG_CXX AX_CXX_COMPILE_STDCXX_11([noext], [mandatory]) AC_PROG_RANLIB AC_PROG_GREP AC_PATH_PROG([DIFF], [diff]) AS_IF([test "x$DIFF" = x], [AC_MSG_WARN([diff isn't found. `make check' will skip tests.])]) AC_SUBST([DIFF]) AC_PATH_PROG([GHOSTSCRIPT], [gs]) AS_IF([test ! "x$GHOSTSCRIPT" = x], [AC_MSG_CHECKING([for gs version ( >= 9.14 )]) gs_ver=`$GHOSTSCRIPT --version` AX_COMPARE_VERSION([$gs_ver], [ge], [9.14], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]) GHOSTSCRIPT=])]) AM_CONDITIONAL([HAVE_GHOSTSCRIPT], [test ! "x$GHOSTSCRIPT" = x]) AM_COND_IF([HAVE_GHOSTSCRIPT], , [AC_MSG_WARN( [Ghostscript isn't found. `make check' will skip some tests.])]) AC_SUBST([GHOSTSCRIPT]) AC_MSG_CHECKING([for pre-generated test PDFs]) AS_IF([test ! -e ${srcdir}/test/desttype.pdf], [AC_MSG_RESULT([no]) AC_PATH_PROG([PDFTEX], [pdftex]) AS_IF([test "x$PDFTEX" = x], [AC_MSG_WARN( [pdftex isn't found. Test PDFs cannot be generated.]) AC_MSG_WARN( [You cannot use `make check'.])], [AM_COND_IF([HAVE_GHOSTSCRIPT], [AC_MSG_NOTICE( [pdftex is found. Test PDFs will be generated.])], [AC_MSG_WARN( [pdftex is found but ghostscript isn't found.]) AC_MSG_WARN( [You cannot use `make check'.])])])], [AC_MSG_RESULT([yes])]) AC_SUBST([PDFTEX]) AC_MSG_CHECKING([for pre-generated expected PDFmark files]) AS_IF([test ! -e ${srcdir}/test/desttype-expected.pdfmark], [AC_MSG_RESULT([no]) AC_MSG_WARN( [PDFmark files will be generated.]) AC_MSG_WARN( [`make check' cannot compare with the correct expected results.])], [AC_MSG_RESULT([yes])]) # Checks for libraries. PKG_PROG_PKG_CONFIG AC_ARG_WITH([poppler], AS_HELP_STRING([--with-poppler=@<:@auto|cpp|glib|core|core-private@:>@], [Poppler I/F (default: auto)]), , [with_poppler=auto]) AS_CASE(["$with_poppler"], ["cpp"], [AC_MSG_NOTICE([--with-poppler=cpp requires poppler >= 0.74.0]) PKG_CHECK_MODULES([POPPLER_CPP], [poppler-cpp >= 0.74.0])], ["glib"], [AC_MSG_NOTICE([--with-poppler=glib requires poppler >= 0.78.0]) PKG_CHECK_MODULES([POPPLER_GLIB], [poppler-glib >= 0.78.0])], ["core"], [AC_MSG_NOTICE( [--with-poppler=core requires poppler 0.48.0 - 0.75.0]) PKG_CHECK_MODULES([POPPLER], [poppler >= 0.48.0 poppler <= 0.75.0])], ["core-private"], [AC_MSG_NOTICE( [--with-poppler=core-private requires poppler 0.13.3 - 0.75.0]) PKG_CHECK_MODULES([POPPLER], [poppler >= 0.24.4 poppler <= 0.75.0],, [PKG_CHECK_MODULES([POPPLER], [poppler >= 0.19.2], [AC_MSG_WARN([poppler < 0.24.4 is found.]) AC_MSG_WARN([`make check' will fail some tests.])], [PKG_CHECK_MODULES([POPPLER], [poppler >= 0.13.3]) AC_MSG_WARN([poppler < 0.19.2 is found.]) AC_MSG_WARN([`make check' will fail some tests.]) AC_DEFINE_UNQUOTED([POPPLER_CORE_IF_VERSION], ["`$PKG_CONFIG --modversion poppler`"], [Define poppler version if POPPLER_VERSION cannot be used.])])])], ["auto"], [AC_MSG_NOTICE([selecting for --with-poppler=auto]) AC_MSG_NOTICE([ trying for cpp (poppler-cpp >= 0.74.0)]) PKG_CHECK_MODULES( [POPPLER_CPP], [poppler-cpp >= 0.74.0], [with_poppler="cpp"], [AC_MSG_NOTICE([ trying for glib (poppler-glib >= 0.78.0)]) PKG_CHECK_MODULES( [POPPLER_GLIB], [poppler-glib >= 0.78.0], [with_poppler="glib"], [AC_MSG_NOTICE( [ trying for core (poppler 0.48.0 - 0.75.0)]) PKG_CHECK_MODULES( [POPPLER], [poppler >= 0.48.0 poppler <= 0.75.0], [with_poppler="core"], [AC_MSG_NOTICE( [ trying for core-private (poppler >= 0.24.4)]) PKG_CHECK_MODULES([POPPLER], [poppler >= 0.24.4 poppler <= 0.75.0], [with_poppler="core-private"])])])]) AC_MSG_NOTICE([use --with-poppler=$with_poppler])], [AC_MSG_ERROR([unrecognized --with-poppler argument: $with_poppler])]) AS_CASE(["$with_poppler"], ["cpp"], [POPPLER_IF="poppler-cpp" use_library="cpp"], ["glib"], [POPPLER_IF="poppler-glib" use_library="glib"], ["core"], [POPPLER_IF="poppler-core" use_library="core" AC_DEFINE([HAVE_POPPLER_CORE_IF], [1], [Define if poppler-core is selected])], ["core-private"], [POPPLER_IF="poppler-core private" use_library="core"], [AC_MSG_ERROR([programming error])]) AM_CONDITIONAL([USE_POPPLER_CORE], [test $use_library = core]) AM_CONDITIONAL([USE_POPPLER_GLIB], [test $use_library = glib]) AM_CONDITIONAL([USE_POPPLER_CPP], [test $use_library = cpp]) AC_DEFINE_UNQUOTED([PACKAGE_STRING], ["$PACKAGE_STRING (with $POPPLER_IF)"], [Define to the full name and version, method of this package.]) # Checks for header files. AM_COND_IF([USE_POPPLER_CORE], [AC_LANG_PUSH([C++]) TEMP_CPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS $POPPLER_CFLAGS" AC_CHECK_HEADERS([Link.h PDFDoc.h PDFDocFactory.h], , [AC_MSG_ERROR([poppler xpdf headers are not found.])]) CPPFLAGS=$TMP_CPPFLAGS AC_LANG_POP]) AC_ARG_ENABLE([codecvt], [AS_HELP_STRING( [--enable-codecvt], [enable codecvt for UTF-8 checking (default is disable)])], , [enable_codecvt=no]) AS_IF([test "x$enable_codecvt" != xno], [AC_LANG_PUSH([C++]) AC_CHECK_HEADERS([codecvt]) AC_LANG_POP]) AS_IF([test "x$ac_cv_header_codecvt" == xyes], [AC_DEFINE([USE_CODECVT], [1], [Define if codecvt is enabled.])]) AC_ARG_ENABLE([iconv], [AS_HELP_STRING( [--disable-iconv], [disable iconv for UTF-8 checking (default is enable)])], , [enable_iconv=yes]) # AM_ICONV does not seem to be able to put in IF block. AM_ICONV AM_CONDITIONAL([USE_ICONV], [test "x$enable_iconv" = xyes && \ test "x$am_cv_func_iconv" = xyes && \ test "x$ac_cv_header_codecvt" != xyes]) AM_COND_IF([USE_ICONV], [AC_DEFINE([USE_ICONV], [1], [Define if iconv is enabled.])], [AS_IF([test "x$ac_cv_header_codecvt" != xyes], [AC_MSG_WARN( [Some `make check' will fail since both codecvt and iconv are disabled.])])]) # Checks for typedefs, structures, and compiler characteristics. AM_COND_IF([USE_POPPLER_CORE], [AC_LANG_PUSH([C++]) TEMP_CPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS $POPPLER_CFLAGS" AC_MSG_CHECKING([for poppler's GooString::c_str ()]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include ]], [[ GooString goo; const char *dummy = goo.c_str (); ]])], [AC_MSG_RESULT([yes]) AC_DEFINE([HAS_GOOSTRING_C_STR], [1], [Define if poppler's GooString::c_str () exists])], [AC_MSG_RESULT([no])]) CPPFLAGS=$TMP_CPPFLAGS AC_LANG_POP]) # Checks for library functions. AC_CONFIG_FILES([Makefile src/Makefile src/poppler-core/Makefile src/poppler-glib/Makefile src/poppler-cpp/Makefile man/Makefile test/Makefile]) AC_OUTPUT