From 70d0d0889b0c72bcdeb0658335094f61105f8b02 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Sat, 12 Mar 2022 09:25:29 -0500 Subject: Remove old build files --- configure.ac | 945 ----------------------------------------------------------- 1 file changed, 945 deletions(-) delete mode 100644 configure.ac (limited to 'configure.ac') diff --git a/configure.ac b/configure.ac deleted file mode 100644 index c19256a5..00000000 --- a/configure.ac +++ /dev/null @@ -1,945 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -dnl This config.in requires autoconf 2.5 or greater. - -AC_PREREQ([2.68]) -AC_INIT([qpdf],[10.6.3]) - -AC_CONFIG_MACRO_DIR([m4]) -AC_CONFIG_FILES([autoconf.mk]) -AC_CONFIG_FILES([libqpdf.pc]) -AC_CONFIG_FILES([libqpdf.map]) -AC_CONFIG_HEADERS([libqpdf/qpdf/qpdf-config.h]) - -AC_SUBST(MAINTAINER_MODE) -AC_ARG_ENABLE(maintainer-mode, - AS_HELP_STRING([--enable-maintainer-mode], - [turn on features intended for maintainers that may change generated files and require additional tools; implies enable-doc-maintenances]), - [if test "$enableval" = "no"; then - MAINTAINER_MODE=0 - else - MAINTAINER_MODE=1 - fi], - [MAINTAINER_MODE=0]) - -AC_ARG_ENABLE(check-autofiles, - AS_HELP_STRING([--enable-check-autofiles], - [if specified, verify checksums on automatically generated files (default=yes); package maintainers may want to disable this]), - [if test "$enableval" = "no"; then - CHECK_AUTOFILES=0 - else - CHECK_AUTOFILES=1 - fi], - [CHECK_AUTOFILES=1]) - -# Check to see if automatically generated files are outdated and if we -# can update them. -AC_CHECK_PROG(AUTOCONF,autoconf,1,0) -AC_CHECK_PROG(AUTOHEADER,autoheader,1,0) -AC_CHECK_PROG(ACLOCAL,aclocal,1,0) -AC_CHECK_PROG(SHA256SUM,sha256sum,1,0) -if test "$CHECK_AUTOFILES$AUTOCONF$AUTOHEADER$ACLOCAL$SHA256SUM" = "11111"; then - if ! sha256sum -c autofiles.sums; then - AC_MSG_ERROR(autofiles are outdated; rerun autogen.sh) - fi -fi - -AC_PROG_CC -AC_PROG_CC_C99 -AC_PROG_CXX -AX_CXX_COMPILE_STDCXX([14], [noext], [mandatory]) -AC_HEADER_STDC -LT_INIT([win32-dll]) - -# * If any interfaces have been removed or changed, or if any private -# member variables or virtual functions have been added to any -# class, we are not binary compatible. Increment LT_CURRENT, and set -# LT_AGE and LT_REVISION to 0. -# -# * Otherwise, if any interfaces have been added since the last public -# release, then increment LT_CURRENT and LT_AGE, and set LT_REVISION -# to 0. -# -# * Otherwise, increment LT_REVISION - -# LT = libtool -LT_CURRENT=34 -LT_AGE=6 -LT_REVISION=3 -AC_SUBST(LT_CURRENT) -AC_SUBST(LT_REVISION) -AC_SUBST(LT_AGE) -LT_SONAME=$(expr $LT_CURRENT - $LT_AGE) -AC_SUBST(LT_SONAME) - -AC_MSG_CHECKING(for whether to use -rpath) -AC_ARG_ENABLE(rpath, - AS_HELP_STRING([--enable-rpath], - [whether to pass -rpath to the linker when building libraries]), - [if test "$enableval" = "yes"; then - qpdf_USE_RPATH=1; - else - qpdf_USE_RPATH=0; - fi], [qpdf_USE_RPATH=1]) -if test "$qpdf_USE_RPATH" = "1"; then - AC_MSG_RESULT(yes) - RPATH='-rpath $(libdir)' -else - AC_MSG_RESULT(no) -fi -AC_SUBST(RPATH) - -AC_MSG_CHECKING(for -fvisibility=hidden) -try_flags=-fvisibility=hidden -oCXXFLAGS=$CXXFLAGS -CXXFLAGS="$CXXFLAGS $try_flags" -AC_LANG_PUSH([C++]) -AC_LINK_IFELSE([AC_LANG_PROGRAM( - [[class X -{ - public: - __attribute__ ((visibility ("default"))) - X() {} - __attribute__ ((visibility ("default"))) - void f() {} -}; - ]],[[X x; x.f();]])], - [qpdf_VISIBILITY_HIDDEN=1], - [qpdf_VISIBILITY_HIDDEN=0]) -AC_LANG_POP -if test "$qpdf_VISIBILITY_HIDDEN" = "0"; then - AC_MSG_RESULT(no) - CXXFLAGS=$oCXXFLAGS -else - AC_MSG_RESULT(yes) - CFLAGS="$CFLAGS $try_flags" -fi - -AC_MSG_CHECKING(whether to use insecure random numbers) -AC_ARG_ENABLE(insecure-random, - AS_HELP_STRING([--enable-insecure-random], - [whether to use stdlib's random number generator (default is no)]), - [if test "$enableval" = "yes"; then - qpdf_INSECURE_RANDOM=1; - else - qpdf_INSECURE_RANDOM=0; - fi], [qpdf_INSECURE_RANDOM=0]) -if test "$qpdf_INSECURE_RANDOM" = "1"; then - AC_MSG_RESULT(yes) - AC_DEFINE([USE_INSECURE_RANDOM], [1], [Whether to use insecure random numbers]) -else - AC_MSG_RESULT(no) -fi - -AC_MSG_CHECKING(whether to use OS-provided secure random numbers) -AC_ARG_ENABLE(os-secure-random, - AS_HELP_STRING([--enable-os-secure-random], - [whether to try to use OS-provided secure random numbers (default is yes)]), - [if test "$enableval" = "yes"; then - qpdf_OS_SECURE_RANDOM=1; - else - qpdf_OS_SECURE_RANDOM=0; - fi], [qpdf_OS_SECURE_RANDOM=1]) -if test "$qpdf_OS_SECURE_RANDOM" = "1"; then - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) - AC_DEFINE([SKIP_OS_SECURE_RANDOM], [1], [Whether to suppress use of OS-provided secure random numbers]) -fi - -AX_RANDOM_DEVICE - -AC_MSG_CHECKING(whether to avoid Windows HANDLE type) -AC_ARG_ENABLE(avoid-windows-handle, - AS_HELP_STRING([--enable-avoid-windows-handle], - [whether to avoid use of HANDLE, useful for some embedded Windows builds (default is no)]), - [if test "$enableval" = "yes"; then - qpdf_AVOID_HANDLE=1; - else - qpdf_AVOID_HANDLE=0; - fi], [qpdf_AVOID_HANDLE=0]) -if test "$qpdf_AVOID_HANDLE" = "1"; then - AC_MSG_RESULT(yes) - AC_DEFINE([AVOID_WINDOWS_HANDLE], [1], [Whether to avoid use of HANDLE in Windows]) -else - AC_MSG_RESULT(no) -fi - -USE_EXTERNAL_LIBS=0 -AC_MSG_CHECKING(for whether to use external libraries distribution) -AC_ARG_ENABLE(external-libs, - AS_HELP_STRING([--enable-external-libs], - [whether to use external libraries distribution]), - [if test "$enableval" = "yes"; then - USE_EXTERNAL_LIBS=1; - else - USE_EXTERNAL_LIBS=0; - fi], [BUILD_INTERNAL_LIBS=0]) -if test "$BUILD_INTERNAL_LIBS" = "0"; then - AC_MSG_RESULT(no) -else - AC_MSG_RESULT(yes) -fi - -AC_CHECK_SIZEOF([size_t]) -if test "$ac_cv_sizeof_size_t" = "4"; then - IS_32BIT=1 - WINDOWS_WORDSIZE=32 -else - IS_32BIT=0 - WINDOWS_WORDSIZE=64 -fi -AC_SUBST(IS_32BIT) -AC_SUBST(WINDOWS_WORDSIZE) - -PKG_PROG_PKG_CONFIG -if test "$BUILD_INTERNAL_LIBS" = "0"; then - if test "$PKG_CONFIG" != ""; then - PKG_CHECK_MODULES([pc_zlib], [zlib], - [CFLAGS="$CFLAGS $pc_zlib_CFLAGS" - CXXFLAGS="$CXXFLAGS $pc_zlib_CFLAGS $pc_zlib_CXXFLAGS" - LIBS="$LIBS $pc_zlib_LIBS" - ], [:]) - PKG_CHECK_MODULES([pc_libjpeg], [libjpeg], - [CFLAGS="$CFLAGS $pc_libjpeg_CFLAGS" - CXXFLAGS="$CXXFLAGS $pc_libjpeg_CFLAGS $pc_libjpeg_CXXFLAGS" - LIBS="$LIBS $pc_libjpeg_LIBS" - ],[:]) - fi - if test "$pc_zlib_LIBS" = ""; then - AC_CHECK_HEADER(zlib.h,,[MISSING_ZLIB_H=1; MISSING_ANY=1]) - AC_SEARCH_LIBS(deflate,z zlib,,[MISSING_ZLIB=1; MISSING_ANY=1]) - fi - if test "$pc_libjpeg_LIBS" = ""; then - AC_CHECK_HEADER(jpeglib.h,,[MISSING_JPEG_H=1; MISSING_ANY=1]) - AC_SEARCH_LIBS(jpeg_destroy,jpeg,,[MISSING_JPEG=1; MISSING_ANY=1]) - fi - if test "$LIBS" != ""; then - nLIBS="" - for x in $LIBS; do - if echo $x | grep -q '^-L'; then - LDFLAGS="$LDFLAGS $x" - else - nLIBS="$nLIBS $x" - fi - LIBS=$nLIBS - done - fi -fi - -qpdf_USE_WMAIN=0 -AC_LANG_PUSH([C++]) -AC_SUBST(WINDOWS_WMAIN_COMPILE) -AC_SUBST(WINDOWS_WMAIN_LINK) -for i in 0 1; do - if test "$qpdf_USE_WMAIN" = "0"; then - oLDFLAGS="$LDFLAGS" - if test "$i" = "1"; then - nLDFLAGS="-municode" - LDFLAGS="$LDFLAGS $nLDFLAGS" - msg="checking for wmain with $nLDFLAGS" - else - nLDFLAGS= - msg="checking for wmain" - fi - AC_MSG_CHECKING($msg) - AC_LINK_IFELSE([AC_LANG_SOURCE( - [[#include - #include - #include - extern "C" - int wmain(int argc, wchar_t* argv[]) - { - size_t x = wcslen(argv[0]); - return 0; - } - ]])], - [qpdf_USE_WMAIN=1], - [qpdf_USE_WMAIN=0]) - LDFLAGS="$oLDFLAGS" - if test "$qpdf_USE_WMAIN" = "1"; then - AC_MSG_RESULT(yes) - WINDOWS_WMAIN_COMPILE="-DWINDOWS_WMAIN $nLDFLAGS" - WINDOWS_WMAIN_LINK="$nLDFLAGS" - else - AC_MSG_RESULT(no) - fi - fi -done -AC_LANG_POP - -AC_LANG_PUSH([C++]) -AC_MSG_CHECKING(whether to use -latomic) -dnl On some platforms with some versions of gcc, you have to link with -dnl -latomic in order for std::atomic to work. Passing --as-needed -dnl prevents unnecessary linking with -latomic. -oLDFLAGS="$LDFLAGS" -LDFLAGS="$LDFLAGS -Wl,--as-needed -latomic" -AC_LINK_IFELSE([AC_LANG_SOURCE( - [[#include - int main() - { - static std::atomic a{0}; - a = a.fetch_add(1); - return 0; - } - ]])], - [qpdf_USE_ATOMIC=1], - [qpdf_USE_ATOMIC=0]) -if test "$qpdf_USE_ATOMIC" = "1"; then - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) - LDFLAGS="$oLDFLAGS" -fi -AC_LANG_POP - -if test "x$qpdf_OS_SECURE_RANDOM" = "x1"; then - OLIBS=$LIBS - LIBS="$LIBS Advapi32.lib" - AC_MSG_CHECKING(for Advapi32 library) - AC_LINK_IFELSE([AC_LANG_PROGRAM( - [[#pragma comment(lib, "crypt32.lib") - #include - #include - HCRYPTPROV cp;]], - [CryptAcquireContext(&cp, NULL, NULL, PROV_RSA_FULL, 0);] - )], - [AC_MSG_RESULT(yes) - LIBS="$OLIBS -lAdvapi32"], - [AC_MSG_RESULT(no) - LIBS=$OLIBS]) -fi - -QPDF_LARGE_FILE_TEST_PATH= -AC_SUBST(QPDF_LARGE_FILE_TEST_PATH) -AC_ARG_WITH(large-file-test-path, - AS_HELP_STRING([--with-large-file-test-path=path], - [To enable testing of files > 4GB, give the path to a directory with at least 11 GB free. The test suite will write temporary files to this directory. Alternatively, just set the QPDF_LARGE_FILE_TEST_PATH environment variable to the path before running the test suite.]), - [QPDF_LARGE_FILE_TEST_PATH=$withval], - [QPDF_LARGE_FILE_TEST_PATH=]) - -AC_SYS_LARGEFILE -AC_FUNC_FSEEKO -AC_CHECK_FUNCS([fseeko64 random localtime_r]) - -# Check if LD supports linker scripts, and define conditional -# HAVE_LD_VERSION_SCRIPT if so. This functionality is currently -# constrained to compilers using GNU ld on ELF systems or systems -# which provide an adequate emulation thereof. -AC_ARG_ENABLE([ld-version-script], - AS_HELP_STRING([--enable-ld-version-script], - [enable linker version script (default is enabled)]), - [have_ld_version_script=$enableval], [have_ld_version_script=yes]) -if test "$have_ld_version_script" != no; then - AC_MSG_CHECKING([if LD -Wl,--version-script works]) - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map" - cat > conftest.map <= 3.81 ($make_prog)) - if $make_prog --version >/dev/null 2>&1; then - v=`$make_prog --version | grep 'GNU Make' | sed -e 's/.*Make //'` - maj=`echo $v | cut -d. -f 1` - min=`echo $v | cut -d. -f 2` - if test $maj -gt 3 -o '(' $maj -eq 3 -a $min -ge 81 ')'; then - this_make_okay=1 - make_okay=1 - fi - fi - if test "$this_make_okay" = "1"; then - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - fi -done - -if test "$make_okay" = "0"; then - dnl Don't set MISSING_ANY=1 -- maybe user calls make something else - MISSING_MAKE_381=1 - ISSUE_WARNINGS=1 -fi - -AC_SUBST(GENDEPS) -GENDEPS=0 -AC_MSG_CHECKING(for whether $CC supports -MD -MF x.dep -MP) -oCFLAGS=$CFLAGS -rm -f x.dep -CFLAGS="$CFLAGS -MD -MF x.dep -MP" -AC_COMPILE_IFELSE([AC_LANG_PROGRAM( - [[#include ]], [[FILE* a = stdout]] - )], - [qpdf_DEPFLAGS=yes], - [qpdf_DEPFLAGS=no]) -CFLAGS=$oCFLAGS -if test "$qpdf_DEPFLAGS" = "yes"; then - if ! grep stdio.h x.dep >/dev/null 2>&1; then - qpdf_DEPFLAGS=no - fi -fi -rm -f x.dep -if test "$qpdf_DEPFLAGS" = "yes"; then - AC_MSG_RESULT(yes) - GENDEPS=1 -else - AC_MSG_RESULT(no) -fi - -AC_MSG_CHECKING(which build rules to use) -AC_SUBST(BUILDRULES) -AC_ARG_WITH(buildrules, - AS_HELP_STRING([--with-buildrules=rules], - [which build rules to use; see README.md]), - [BUILDRULES=$withval], - [BUILDRULES=libtool]) -AC_MSG_RESULT($BUILDRULES) - -AC_SUBST(WFLAGS) -AC_SUBST(CXXWFLAGS) -qpdf_USE_EXTRA_WARNINGS=0 -if test "$BUILDRULES" = "msvc"; then - dnl /w14996 makes warning 4996 a level 1 warning. This warning - dnl reports on functions that Microsoft considers unsafe or - dnl deprecated. Removing these warnings helps people who want to - dnl write applications based on qpdf that can be Windows 8 - dnl certified. - try_flags="-w14996" -else - try_flags="-Wall" -fi -AC_MSG_CHECKING(for whether $CC supports $try_flags) -oCFLAGS=$CFLAGS -CFLAGS="$CFLAGS $try_flags" -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[int a = 1; int b = a; a = b;]])], - [qpdf_USE_EXTRA_WARNINGS=1],[qpdf_USE_EXTRA_WARNINGS=0]) -CFLAGS=$oCFLAGS -if test "$qpdf_USE_EXTRA_WARNINGS" = "1"; then - AC_MSG_RESULT(yes) - WFLAGS="$try_flags" -else - AC_MSG_RESULT(no) -fi -if test "$BUILDRULES" != "msvc"; then - qpdf_USE_EXTRA_WARNINGS=0 - try_flags="-Wold-style-cast" - AC_MSG_CHECKING(for whether $CXX supports $try_flags) - oCXXFLAGS=$CXXFLAGS - CXXFLAGS="$CXXFLAGS $try_flags" - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[int a = 1; int b = a; a = b;]])], - [qpdf_USE_EXTRA_WARNINGS=1],[qpdf_USE_EXTRA_WARNINGS=0]) - CXXFLAGS=$oCXXFLAGS - if test "$qpdf_USE_EXTRA_WARNINGS" = "1"; then - AC_MSG_RESULT(yes) - CXXWFLAGS="$try_flags" - else - AC_MSG_RESULT(no) - fi -fi - -if test "$BUILDRULES" = "msvc"; then - try_flags=-FS - AC_MSG_CHECKING(for whether $CC supports $try_flags) - oCFLAGS=$CFLAGS - CFLAGS="$CFLAGS $try_flags" - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[int a = 1; int b = a; a = b;]])], - [qpdf_USE_FS=1],[qpdf_USE_FS=0]) - if test "$qpdf_USE_FS" = "1"; then - AC_MSG_RESULT(yes) - CXXFLAGS="$CXXFLAGS $try_flags" - else - AC_MSG_RESULT(no) - CFLAGS=$oCFLAGS - fi -fi - -if test "$BUILDRULES" = "msvc"; then - try_flags="-WX" -else - try_flags="-Werror" -fi -AC_MSG_CHECKING(for whether to use $try_flags) -AC_ARG_ENABLE(werror, - AS_HELP_STRING([--enable-werror], - [whether to treat warnings as errors (default is no)]), - [if test "$enableval" = "yes"; then - qpdf_USE_WERROR=1; - else - qpdf_USE_WERROR=0; - fi], [qpdf_USE_WERROR=0]) -if test "$qpdf_USE_WERROR" = "1"; then - AC_MSG_RESULT(yes) - WFLAGS="$WFLAGS $try_flags" -else - AC_MSG_RESULT(no) -fi - -if test "$BUILDRULES" = "msvc"; then - try_flags="-W3" -else - try_flags="-Wconversion -Wsign-conversion" -fi -oCFLAGS=$CFLAGS -CFLAGS="$CFLAGS $try_flags" -AC_MSG_CHECKING(for whether to use $try_flags) -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[int a = 1; int b = a; a = b;]])], - [qpdf_INT_WARNINGS=1],[qpdf_INT_WARNINGS=0]) -if test "$qpdf_INT_WARNINGS" = "1"; then - AC_MSG_RESULT(yes) - CXXFLAGS="$CXXFLAGS $try_flags" -else - AC_MSG_RESULT(no) - CFLAGS=$oCFLAGS -fi - -if test "$BUILDRULES" != "msvc"; then - try_flags="-Wshadow=local" - oCFLAGS=$CFLAGS - CFLAGS="$CFLAGS $try_flags -Werror" - AC_MSG_CHECKING(for whether to use $try_flags) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[int a = 1; int b = a; a = b;]])], - [qpdf_SHADOW_WARNINGS=1],[qpdf_SHADOW_WARNINGS=0]) - if test "$qpdf_SHADOW_WARNINGS" = "1"; then - AC_MSG_RESULT(yes) - CFLAGS="$oCFLAGS $try_flags" - CXXFLAGS="$CXXFLAGS $try_flags" - else - AC_MSG_RESULT(no) - CFLAGS=$oCFLAGS - fi -fi - -AC_MSG_CHECKING(for tm_gmtoff in struct tm) -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ - #include - ]],[[ - struct tm tm; - tm.tm_gmtoff = 1; - ]])], [qpdf_TM_GMTOFF=1], [qpdf_TM_GMTOFF=0]) -if test "$qpdf_TM_GMTOFF" = "1"; then - AC_MSG_RESULT(yes) - AC_DEFINE([HAVE_TM_GMTOFF], [1], [Whether struct tm has tm_gmtoff]) -else - AC_MSG_RESULT(no) -fi - -AC_MSG_CHECKING(for extern long timezone) -AC_LINK_IFELSE([AC_LANG_PROGRAM([[ - #include - #include - ]],[[ - tzset(); - printf("%ld\n", timezone); - ]])], [qpdf_EXTERN_LONG_TIMEZONE=1], [qpdf_EXTERN_LONG_TIMEZONE=0]) -if test "$qpdf_EXTERN_LONG_TIMEZONE" = "1"; then - AC_MSG_RESULT(yes) - AC_DEFINE([HAVE_EXTERN_LONG_TIMEZONE], [1], [Whether extern long timezone is available]) -else - AC_MSG_RESULT(no) -fi - -LL_FMT="" -oCFLAGS=$CFLAGS -CFLAGS="$WFLAGS $CFLAGS" -for fmt in "%lld" "%I64d" "%I64lld"; do - if test "$LL_FMT" = ""; then - AC_MSG_CHECKING(printf format for long long: $fmt) - AC_RUN_IFELSE([AC_LANG_PROGRAM( - [[ - #define _CRT_SECURE_NO_WARNINGS - #include - #include - ]], - [[ - long long int a = 123456789012345ll; - char s[30]; - sprintf(s, "]$fmt[", a); - return (strcmp(s, "123456789012345") == 0) ? 0 : 1 - ]] - )], - [LL_FMT=$fmt],[],[LL_FMT="%lld"]) - if test "$LL_FMT" != ""; then - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - fi - fi -done -CFLAGS=$oCFLAGS -if test "LL_FMT" = ""; then - LL_FMT="%lld%" -fi -AC_DEFINE_UNQUOTED([LL_FMT], ["$LL_FMT"], [printf format for long long]) - -AC_SUBST(WINDOWS_WMAIN_XLINK_FLAGS) -AC_SUBST(WINDOWS_MAIN_XLINK_FLAGS) -if test "$BUILDRULES" = "msvc"; then - WINDOWS_WMAIN_XLINK_FLAGS="-link wsetargv.obj" - WINDOWS_MAIN_XLINK_FLAGS="-link setargv.obj" -fi - -dnl BEGIN CRYPTO - -dnl By default, we build in support for every crypto provider that we -dnl can. If implicit crypto is disabled, we don't build support for -dnl any crypto that is not explicitly enabled. Test for various crypto -dnl providers in increasing order of priority. The last one found -dnl becomes the default unless a default is explicitly specified. - -AC_MSG_CHECKING(for whether to use implicit crypto) -AC_ARG_ENABLE(implicit-crypto, - AS_HELP_STRING([--enable-implicit-crypto], - [whether to enable available crypto providers that are not explicitly requested; true by default]), - [if test "$enableval" = "yes"; then - IMPLICIT_CRYPTO=1 - else - IMPLICIT_CRYPTO=0 - fi], - [IMPLICIT_CRYPTO=1]) -if test "$IMPLICIT_CRYPTO" = "1"; then - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi - -dnl Native crypto is always available unless explicitly disabled. - -AC_SUBST(USE_CRYPTO_NATIVE) -AC_ARG_ENABLE(crypto-native, - AS_HELP_STRING([--enable-crypto-native], - [whether to include support for native crypto provider]), - [if test "$enableval" = "yes"; then - USE_CRYPTO_NATIVE=1 - else - USE_CRYPTO_NATIVE=0 - fi], - [USE_CRYPTO_NATIVE=$IMPLICIT_CRYPTO]) -if test "$USE_CRYPTO_NATIVE" = "1"; then - AC_DEFINE([USE_CRYPTO_NATIVE], 1, [Whether to use the native crypto provider]) - DEFAULT_CRYPTO=native -fi - -dnl If the openssl/BoringSSL provider is explicitly requested, require openssl. -dnl If the openssl provider is not explicitly disabled, enable it if -dnl openssl is available. If the openssl provider is explicitly -dnl disabled, do not link with openssl even if present. - -if test "$USE_EXTERNAL_LIBS" = "1"; then - OPENSSL_FOUND=1 -else - PKG_CHECK_MODULES([pc_openssl], [openssl >= 1.1.0], - [OPENSSL_FOUND=1], [OPENSSL_FOUND=0]) -fi - -dnl Override pkg-config if headers and libraries are present. -AS_IF([test "$OPENSSL_FOUND" = "0"], - [AC_CHECK_HEADER( - [openssl/evp.h], - [AC_SEARCH_LIBS(EVP_MD_CTX_new,crypto,[OPENSSL_FOUND=1])]) - ]) - -IMPLICIT_OPENSSL=0 -USE_CRYPTO_OPENSSL=0 -AC_SUBST(USE_CRYPTO_OPENSSL) -AC_ARG_ENABLE(crypto-openssl, - AS_HELP_STRING([--enable-crypto-openssl], - [whether to include support for the openssl crypto provider]), - [if test "$enableval" = "yes"; then - USE_CRYPTO_OPENSSL=1 - else - USE_CRYPTO_OPENSSL=0 - fi], - [IMPLICIT_OPENSSL=$IMPLICIT_CRYPTO]) - -if test "$IMPLICIT_OPENSSL" = "1"; then - USE_CRYPTO_OPENSSL=$OPENSSL_FOUND - if test "$USE_CRYPTO_OPENSSL" = "1"; then - AC_MSG_NOTICE(enabling openssl crypto provider since openssl is available) - else - AC_MSG_NOTICE(not enabling openssl crypto provider since openssl was not found) - fi -fi - -if test "$USE_CRYPTO_OPENSSL" = "1" -a "$OPENSSL_FOUND" = "0"; then - AC_MSG_ERROR(unable to use requested openssl crypto provider without openssl) -fi - -if test "$USE_CRYPTO_OPENSSL" = "1"; then - CFLAGS="$CFLAGS $pc_openssl_CFLAGS" - CXXFLAGS="$CXXFLAGS $pc_openssl_CFLAGS $pc_openssl_CXXFLAGS" - LIBS="$LIBS $pc_openssl_LIBS" - AC_DEFINE([USE_CRYPTO_OPENSSL], 1, [Whether to use the openssl crypto provider]) - DEFAULT_CRYPTO=openssl -elif test "$OPENSSL_FOUND" = "1"; then - AC_MSG_NOTICE(not linking with openssl even though it is available) -fi - -dnl If the gnutls provider is explicitly requested, require gnutls. If -dnl the gnutls provider is not explicitly disabled, enable it if -dnl gnutls is available. If the gnutls provider is explicitly -dnl disabled, do not link with gnutls even if present. - -PKG_CHECK_MODULES([pc_gnutls], [gnutls], [GNUTLS_FOUND=1], [GNUTLS_FOUND=0]) -if test "$GNUTLS_FOUND" = "0"; then - AC_CHECK_HEADER(gnutls/gnutls.h,[GNUTLS_FOUND=1],[GNUTLS_FOUND=0]) - AC_SEARCH_LIBS(gnutls_hash_init,gnutls,[GNUTLS_FOUND=1],[GNUTLS_FOUND=0]) -fi - -IMPLICIT_GNUTLS=0 -USE_CRYPTO_GNUTLS=0 -AC_SUBST(USE_CRYPTO_GNUTLS) -AC_ARG_ENABLE(crypto-gnutls, - AS_HELP_STRING([--enable-crypto-gnutls], - [whether to include support for gnutls crypto provider]), - [if test "$enableval" = "yes"; then - USE_CRYPTO_GNUTLS=1 - else - USE_CRYPTO_GNUTLS=0 - fi], - [IMPLICIT_GNUTLS=$IMPLICIT_CRYPTO]) - -if test "$IMPLICIT_GNUTLS" = "1"; then - USE_CRYPTO_GNUTLS=$GNUTLS_FOUND - if test "$USE_CRYPTO_GNUTLS" = "1"; then - AC_MSG_NOTICE(enabling gnutls crypto provider since gnutls is available) - else - AC_MSG_NOTICE(not enabling gnutls crypto provider since gnutls was not found) - fi -fi - -if test "$USE_CRYPTO_GNUTLS" = "1" -a "$GNUTLS_FOUND" = "0"; then - AC_MSG_ERROR(unable to use requested gnutls crypto provider without gnutls) -fi - -if test "$USE_CRYPTO_GNUTLS" = "1"; then - CFLAGS="$CFLAGS $pc_gnutls_CFLAGS" - CXXFLAGS="$CXXFLAGS $pc_gnutls_CFLAGS $pc_gnutls_CXXFLAGS" - LIBS="$LIBS $pc_gnutls_LIBS" - AC_DEFINE([USE_CRYPTO_GNUTLS], 1, [Whether to use the gnutls crypto provider]) - DEFAULT_CRYPTO=gnutls -elif test "$GNUTLS_FOUND" = "1"; then - AC_MSG_NOTICE(not linking with gnutls even though it is available) -fi - -dnl Allow the default crypto provider to be specified explicitly. - -AC_MSG_CHECKING(which crypto to use by default) -AC_SUBST(DEFAULT_CRYPTO) -AC_ARG_WITH(default-crypto, - AS_HELP_STRING([--with-default-crypto=provider], - [which crypto provider to use by default; see README.md]), - [DEFAULT_CRYPTO=$withval], - []) -AC_MSG_RESULT($DEFAULT_CRYPTO) -AC_DEFINE_UNQUOTED([DEFAULT_CRYPTO], "$DEFAULT_CRYPTO", [Default crypto provider]) - -dnl Make sure the default crypto provider is actually being built. - -bad_crypto=0 -case "$DEFAULT_CRYPTO" in - "native") - if test "$USE_CRYPTO_NATIVE" != "1"; then - bad_crypto=1 - fi - ;; - "openssl") - if test "$USE_CRYPTO_OPENSSL" != "1"; then - bad_crypto=1 - fi - ;; - "gnutls") - if test "$USE_CRYPTO_GNUTLS" != "1"; then - bad_crypto=1 - fi - ;; - *) - bad_crypto=1 - ;; -esac -if test "$bad_crypto" = "1"; then - AC_MSG_ERROR(Unsupported default crypto: $DEFAULT_CRYPTO) -fi - -dnl END CRYPTO - -AC_SUBST(QPDF_SKIP_TEST_COMPARE_IMAGES) -AC_ARG_ENABLE(test-compare-images, - AS_HELP_STRING([--enable-test-compare-images], - [whether to compare images in test suite; disabled by default, enabling requires ghostscript and tiffcmp to be available]), - [if test "$enableval" = "no"; then - QPDF_SKIP_TEST_COMPARE_IMAGES=1 - else - QPDF_SKIP_TEST_COMPARE_IMAGES=0 - fi], - [QPDF_SKIP_TEST_COMPARE_IMAGES=1]) - -AC_SUBST(SHOW_FAILED_TEST_OUTPUT) -AC_ARG_ENABLE(show-failed-test-output, - AS_HELP_STRING([--enable-show-failed-test-output], - [if specified, write failed test output to the console; useful for building on build servers where you can't easily open the test output files]), - [if test "$enableval" = "no"; then - SHOW_FAILED_TEST_OUTPUT=0 - else - SHOW_FAILED_TEST_OUTPUT=1 - fi], - [SHOW_FAILED_TEST_OUTPUT=0]) - -AC_CHECK_PROG(LATEX,latex,latex,[]) -AC_CHECK_PROG(PDFLATEX,pdflatex,pdflatex,[]) -AC_CHECK_PROG(LATEXMK,latexmk,latexmk,[]) -AC_CHECK_PROG(SPHINX,sphinx-build,sphinx-build,[]) - -AC_ARG_ENABLE(doc-maintenance, - AS_HELP_STRING([--enable-doc-maintenance], - [if set, enables all documentation options; also turned on by maintainer mode]), - [if test "$enableval" = "yes"; then - doc_default=1; - else - doc_default=0; - fi], - [doc_default=$MAINTAINER_MODE]) - -BUILD_HTML=0 -AC_SUBST(BUILD_HTML) -AC_ARG_ENABLE(html-doc, - AS_HELP_STRING([--enable-html-doc], - [whether to build HTML documents]), - [if test "$enableval" = "yes"; then - BUILD_HTML=1; - else - BUILD_HTML=0; - fi], - [BUILD_HTML=$doc_default]) -BUILD_PDF=0 -AC_SUBST(BUILD_PDF) -AC_ARG_ENABLE(pdf-doc, - AS_HELP_STRING([--enable-pdf-doc], - [whether to build PDF documents]), - [if test "$enableval" = "yes"; then - BUILD_PDF=1; - else - BUILD_PDF=0; - fi], - [BUILD_PDF=$doc_default]) - -AC_SUBST(OSS_FUZZ) -AC_ARG_ENABLE(oss-fuzz, - AS_HELP_STRING([--enable-oss-fuzz], - [if set, build static fuzzers for oss-fuzz]), - [if test "$enableval" = "yes"; then - OSS_FUZZ=1; - else - OSS_FUZZ=0; - fi], - [OSS_FUZZ=0]) - -if test "$BUILD_HTML" = "1"; then - if test "$SPHINX" = ""; then - MISSING_SPHINX=1 - MISSING_ANY=1 - fi -fi -if test "$BUILD_PDF" = "1"; then - if test "$SPHINX" = ""; then - MISSING_SPHINX=1 - MISSING_ANY=1 - fi - if test "$LATEX" = ""; then - MISSING_LATEX=1 - MISSING_ANY=1 - fi - if test "$LATEXMK" = ""; then - MISSING_LATEXMK=1 - MISSING_ANY=1 - fi - if test "$PDFLATEX" = ""; then - MISSING_PDFLATEX=1 - MISSING_ANY=1 - fi -fi - -if test "$MISSING_ANY" = "1"; then - ISSUE_WARNINGS=1 -fi -if test "$ISSUE_WARNINGS" = "1"; then - echo "" - echo "" -fi - -if test "$MISSING_MAKE_381" = "1"; then - AC_MSG_WARN(gnu make >= 3.81 is required) -fi - -if test "$MISSING_ZLIB_H" = "1"; then - AC_MSG_WARN(unable to find required header zlib.h) -fi - -if test "$MISSING_ZLIB" = "1"; then - AC_MSG_WARN(unable to find required library z (or zlib)) -fi - -if test "$MISSING_JPEG_H" = "1"; then - AC_MSG_WARN(unable to find required header jpeglib.h) -fi - -if test "$MISSING_JPEG" = "1"; then - AC_MSG_WARN(unable to find required library jpeg) -fi - -if test "$MISSING_LATEX" = "1"; then - AC_MSG_WARN(latex is required to build PDF documentation) -fi - -if test "$MISSING_LATEXMK" = "1"; then - AC_MSG_WARN(latexmk is required to build PDF documentation) -fi - -if test "$MISSING_PDFLATEX" = "1"; then - AC_MSG_WARN(pdflatex is required to build PDF documentation) -fi - -if test "$MISSING_SPHINX" = "1"; then - AC_MSG_WARN(sphinx-build is required to build documentation) -fi - -if test "$ISSUE_WARNINGS" = "1"; then - echo "" - echo "" -fi - -if test "$MISSING_ANY" = "1"; then - AC_MSG_ERROR(some required prerequisites were not found) -fi - -# Do this last so it doesn't interfere with other tests. -if test "$USE_EXTERNAL_LIBS" = "1"; then - # Don't actually check for the presence of this -- we document that - # the user can run this and then edit autoconf.mk if they have too - # much trouble getting it to work with a different compiler. - CPPFLAGS="$CPPFLAGS -Iexternal-libs/include" - LDFLAGS="$LDFLAGS -Lexternal-libs/lib-$BUILDRULES$WINDOWS_WORDSIZE" - LIBS="$LIBS -lz -ljpeg -lssl -lcrypto -lmsvcrt -lws2_32 -lshell32 -ladvapi32 -lgdi32 -luser32 -lcrypt32" -fi - -AC_OUTPUT -- cgit v1.2.3-70-g09d2