123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 |
- AC_PREREQ(2.58) dnl 2.58 required for AS_HELP_STRING
- dnl Extract the version (sans LF) from .version, created at release-time.
- m4_define(ne_version, [m4_translit(m4_include(.version), [
- ])])
- AC_INIT(neon, ne_version,,,[https://notroj.github.io/neon/])
- AC_COPYRIGHT([Copyright 2000-2022 Joe Orton and others
- This configure script may be copied, distributed and modified under the
- terms of the GNU Library General Public license; see src/COPYING.LIB for
- more details.])
- AC_CONFIG_MACRO_DIR([macros])
- AC_CONFIG_HEADERS([config.h])
- AC_CONFIG_SRCDIR(src/ne_request.c)
- NEON_WITH_LIBS
- # Pass through initial LDFLAGS verbatim to neon-config, so that extra
- # libraries which are detected (e.g. OpenSSL) can still be found when
- # building using the --libs output of neon-config.
- user_LDFLAGS=$LDFLAGS
- # By default, allow 'make install' to work.
- ALLOW_INSTALL=yes
- AC_DEFINE([_GNU_SOURCE], 1, [Always defined to enable GNU extensions])
- AC_DEFINE([NEON_IS_LIBRARY], 1, [Defined when neon is built as a library])
- AH_BOTTOM([
- /* Enable leak-tracking versions of ne_*alloc when NEON_MEMLEAK is enabled */
- #ifdef NEON_MEMLEAK
- # include "memleak.h"
- #endif])
- AC_PROG_INSTALL
- AC_ARG_ENABLE(webdav,
- AS_HELP_STRING([--disable-webdav],[disable WebDAV support]))
- if test "$enable_webdav" = "no"; then
- NEON_WITHOUT_WEBDAV
- else
- # Yes, we do need an XML parser. The _BUNDLED macros handle
- # this normally.
- NEON_NEED_XML_PARSER=yes
- fi
- # The bundled macros also set this, which makes sure we recurse
- # into the 'src' directory.
- NEON_BUILD_BUNDLED=yes
- # Define NEON_VERSION etc and make the appropriate substitutions.
- NE_VERSIONS_BUNDLED
- LIBNEON_SOURCE_CHECKS
- dnl Avoid libtool 1.5 bug where configure fails if a C++ compiler
- dnl is not available.
- m4_ifdef([AC_LIBTOOL_TAGS], [AC_LIBTOOL_TAGS([])])
- AC_DISABLE_SHARED
- m4_ifdef([LT_INIT], [LT_INIT], [AC_PROG_LIBTOOL])
- AC_EXEEXT
- # Checks to compile test suite
- NEON_TEST
- # Use the libtool-type build.
- NEON_LIBTOOL_BUILD
- # Find an XML parser
- NEON_XML_PARSER
- # Internationalization support.
- NEON_I18N()
- # Extra checks for debugging, compiler warnings
- NEON_DEBUG
- # Leave till last to prevent CFLAGS affecting checks.
- NEON_WARNINGS
- CPPFLAGS="$CPPFLAGS -I\${top_builddir}"
- AC_ARG_ENABLE(memleak,
- AS_HELP_STRING([--enable-memleak],
- [for test builds only: enable memory leak checking]))
- if test "$enable_memleak" = "yes"; then
- CPPFLAGS="$CPPFLAGS -DNEON_MEMLEAK -I\$(top_srcdir)/src"
- # disable 'make install'
- ALLOW_INSTALL=memleak
- fi
- AC_ARG_ENABLE(auto-libproxy,
- AS_HELP_STRING([--enable-auto-libproxy],
- [for using libproxy during session creation]))
- if test "$enable_auto_libproxy" = "yes"; then
- AC_DEFINE(NE_ENABLE_AUTO_LIBPROXY, 1, [to use libproxy automatically])
- fi
- # Enable tests for optional features
- TESTS="\$(BASIC_TESTS)"
- HELPERS=""
- if test $NE_FLAG_SSL = yes; then
- # Only enable SSL tests if an openssl binary is found (needed to make
- # certs etc).
- AC_PATH_PROG(OPENSSL, openssl, notfound)
- if test "$OPENSSL" != "notfound"; then
- TESTS="$TESTS \$(SSL_TESTS)"
- HELPERS="$HELPERS \$(SSL_HELPERS)"
- else
- AC_MSG_WARN([no openssl binary in \$PATH: SSL tests disabled])
- fi
- AC_PATH_PROG(CERTUTIL, certutil, notfound)
- AC_PATH_PROG(PK12UTIL, pk12util, notfound)
- fi
- if test $NE_FLAG_ZLIB = yes; then
- TESTS="$TESTS \$(ZLIB_TESTS)"
- HELPERS="$HELPERS \$(ZLIB_HELPERS)"
- fi
- if test x$enable_webdav != xno; then
- TESTS="$TESTS \$(DAV_TESTS)"
- fi
- AC_ARG_ENABLE(tests-install,
- AS_HELP_STRING([--enable-tests-install],
- [enable installation of the test suite]),,
- [enable_tests_install=no])
- # If test suite installation is not required, it's more
- # efficient to link the test programs using -no-install:
- if test "$enable_tests_install" = "no"; then
- TEST_LDFLAGS="-no-install"
- fi
- AC_SUBST(TEST_LDFLAGS)
- AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
- if test "$PKG_CONFIG" != "no"; then
- # pkg-config >= 0.18 will use "Libs.private" iff necessary,
- # older versions which don't recognize that field may always
- # need all libraries in Libs.
- if $PKG_CONFIG --atleast-pkgconfig-version=0.18; then :; else
- NEON_PC_LIBS=${NEON_LIBS}
- fi
- fi
- AC_SUBST(NEON_PC_LIBS)
- # Pass the interface version on to libtool when linking libneon.la
- NEON_LINK_FLAGS="-version-info ${NE_LIBTOOL_VERSINFO}"
- # If any non-default ABI variations are used, add them to the SONAME:
- ### disabled for backwards-compat with 0.27.x
- #if test "x${NE_LIBTOOL_RELEASE}y" != "xy"; then
- # NEON_LINK_FLAGS="${NEON_LINK_FLAGS} -release ${NE_LIBTOOL_RELEASE}"
- #fi
- gl_LD_VERSION_SCRIPT
- # If ld version scripts are supported, enable symbol versioning.
- # Otherwise, fall back to any libtool-supported symbol export
- # restrictions; ne__* symbols are not exported.
- if test "x$have_ld_version_script" = "xyes"; then
- NEON_LINK_FLAGS="$NEON_LINK_FLAGS -Wl,--version-script=\$(top_srcdir)/src/neon.vers"
- else
- NEON_LINK_FLAGS="$NEON_LINK_FLAGS -export-symbols-regex '^ne_[[^_]]'"
- fi
- if test x${enable_shared}${pic_mode}z = xnodefaultz; then
- CFLAGS="$CFLAGS -prefer-pic"
- AC_MSG_NOTICE([Using PIC for static library build])
- fi
- if test x${enable_shared} = xno; then
- # Defining NE_PRIVATE as the empty string would work; using a
- # non-empty but redundant string 'extern' avoids any possible cpp
- # confusion with from an empty macro.
- CPPFLAGS="$CPPFLAGS -DNE_PRIVATE=extern"
- AC_MSG_NOTICE([Private symbol suppression disabled for static library build])
- fi
- # Bundled language catalogs
- ALL_LINGUAS="cs de fr ja ka nn pl ru tr zh_CN"
- AC_SUBST(ALL_LINGUAS)
- AC_CONFIG_FILES([neon-config], [chmod +x neon-config])
- AC_CONFIG_FILES([Makefile src/Makefile test/Makefile neon.pc])
- AC_CONFIG_FILES([test/makekeys:test/makekeys.sh], [chmod +x test/makekeys])
- AC_SUBST(NEON_VERSION)
- AC_SUBST(NEON_BUILD_BUNDLED)
- AC_SUBST(top_builddir)
- AC_SUBST(user_LDFLAGS)
- AC_SUBST(HELPERS)
- AC_SUBST(TESTS)
- AC_SUBST(ALLOW_INSTALL)
- AC_OUTPUT
- # for VPATH builds:
- test -d test/common || mkdir test/common
- AC_MSG_NOTICE([Configured to build AC_PACKAGE_STRING:
- Install prefix: ${prefix}
- Compiler: ${CC}
- XML Parser: ${neon_xml_parser_message}
- SSL library: ${ne_SSL_message}
- zlib support: ${ne_ZLIB_message}
- GSSAPI support: ${ne_GSSAPI_message}
- Build libraries: Shared=${enable_shared}, Static=${enable_static}
- ])
- case $ALLOW_INSTALL in
- memleak)
- AC_MSG_NOTICE([Configured with development-only flags:
- WARNING: This copy of neon has been configured with memory leak checking
- WARNING: enabled, which should only be used in a development build of neon.
- WARNING: This neon library should not be installed for use by applications.
- ]);;
- esac
|