configure.ac


Log

Author Commit Date CI Message
Nick Wellnhofer be558647 2023-12-05T21:25:09 autotools: Fix option description
Nick Wellnhofer cf6e58d6 2023-12-05T20:40:20 build: Disable compiler TLS by default The global struct is quite large (~700 bytes on 64-bit systems which will be allocated for each thread whether it uses libxml2 or not) and already close to the total size limit on some platforms. Disable compiler TLS by default.
Nick Wellnhofer 5cffba83 2023-11-28T15:34:28 Rework va_copy fallback va_copy is a macro, so it can be detected without a feature test. Fallback to __va_copy or memcpy.
Nick Wellnhofer 7d6969d9 2023-11-23T15:48:52 Remove Trio Trio is a rather old cross-platform printf library which was bundled with libxml2. It was needed for ancient pre-C99 systems without snprintf and should be safe to remove these days.
Nick Wellnhofer f3c24112 2023-11-22T02:00:00 autotools: Stop checking for snprintf This works around a bug when cross-compiling to 32-bit MinGW: https://sourceforge.net/p/mingw-w64/bugs/935/ This means that we don't fall back to the bundled Trio library if snprintf couldn't be detected. Trio support is completely untested, most likely broken and will be removed soon. Fixes #625.
Nick Wellnhofer 3669316a 2023-11-16T13:34:03 Bump version
Nick Wellnhofer 19161bab 2023-09-25T14:00:48 dict: Internal API to look up hash values
Nick Wellnhofer de4b270a 2023-09-21T14:31:31 autotools: Make --with-minimum disable lzma support Fix an oversight when handling the --with-minimum option.
Nick Wellnhofer e7f0d88b 2023-09-21T01:38:26 build: Remove some GCC warnings -Wnested-externs produces spurious warnings after implicit declaration of functions. -Winline is useless since we don't use inlines. -Wredundant-decls was already removed for autotools.
James Le Cuirot 5a18c505 2023-09-04T09:30:38 autoconf: Include non-pkg-config dependency flags in the pkg-config file These were present before, but I accidentally dropped them in my recent build improvements.
James Le Cuirot 6864d92f 2023-09-04T09:25:44 autoconf: Don't bake build time CFLAGS into pkg-config file Having slept on it, I've realised that baking the dependency CFLAGS into the pkg-config file is pointless when it is only used to link against them. It may even cause problems.
James Le Cuirot 93e8bb2a 2023-09-02T17:12:58 build: Generate better pkg-config files for static-only builds pkg-config supports `Requires.private` and `Libs.private` fields for static linking. However, if you're building a dynamic binary, then pkg-config will use the non-private fields, even if just the static libxml2 is available. This will result in libxml2 being underlinked, causing the build to fail. The solution is to fold the private fields into the non-private fields when the shared libxml2 is not being built. This works for Autotools and CMake. Meson also knows how to handle this when it automatically generates pkg-config files.
James Le Cuirot 4640ccac 2023-09-02T16:18:30 build: Generate better pkg-config file for SYSROOT builds The -I and -L flags you use to build should not necessarily be the same ones you bake into installed files. If you are building with dependencies located under a SYSROOT then the installed files should have no knowledge of that SYSROOT. For example, if the build requires `-L/path/to/sysroot/usr/lib/foo` then only `-L/usr/lib/foo` should be baked into the installed files. pkg-config is SYSROOT-aware, so this issue can be sidestepped by using the `Requires` field rather than the `Libs` and `Cflags` fields. This is easily resolved if you rely solely on pkg-config, but this project falls back to standard Autoconf checks, so a little more effort is required. Unfortunately, this issue cannot feasibly be resolved for CMake. `find_package` is used rather than `pkg_check_modules`, so we cannot tell whether a pkg-config file for each dependency is present or not, even if `find_package` uses pkg-config behind the scenes. The CMake build does not record any dependency -I or -L flags into the pkg-config file anyway. This is a problem in itself, although these dependencies are most likely installed to standard locations. Meson is very much better at handling this, as it generates the pkg-config file automatically using the correct logic.
Nick Wellnhofer 54a0b19a 2023-09-01T14:52:14 autoconf: Allow custom --with-icu configure option
Nick Wellnhofer c5989473 2023-09-01T14:52:11 dict: Use thread-local storage for PRNG state
Nick Wellnhofer 57cfd221 2023-09-01T14:52:04 dict: Use xoroshiro64** as PRNG Stop using rand_r. This enables hash randomization on all platforms.
Nick Wellnhofer 4e4c89a4 2023-08-21T00:26:01 doc: Improve documentation of configuration options
Christoph Reiter 2473b485 2023-06-21T14:15:02 autotools: fix Python module file ext for cygwin/msys2 both use .dll, not .pyd
Nick Wellnhofer cb8ccb10 2023-05-25T03:07:57 testapi: Don't set http_proxy environment variable We already disable network access, so this has no effect.
Nick Wellnhofer 9fd57df8 2023-05-25T02:37:57 autotools: Improve iconv check Use a custom test program which includes iconv.h, so we can check whether the possibly redefined symbols in this header file match the symbols in the iconv library. Should fix #547.
Nick Wellnhofer bdb5667a 2023-05-10T18:13:47 autotools: Fix ICU detection Fixes #540.
Mike Dalessio 34630630 2023-05-05T17:34:57 autoconf: fix iconv library paths and pass cflags when building executables See 0f77167f for prior related work
Nick Wellnhofer a8fe4900 2023-04-29T20:17:38 autoconf: Only use --undefined-version with version scripts
Nick Wellnhofer d8f6e760 2023-04-29T19:12:23 Link with --undefined-version lld 16 defaults to --no-undefined-version but the version script can contain symbols disabled by configuration options. See #473.
Nick Wellnhofer e07f765f 2023-04-28T14:51:06 Bump version to 2.12.0
Nick Wellnhofer 2df2562e 2023-04-26T21:17:21 autoconf: Add AC_LANG_SOURCE to fix warning
Nick Wellnhofer 1db3567c 2023-04-19T12:19:36 autoconf: Warn about outdated C compilers
Nick Wellnhofer 101a542e 2022-12-21T21:47:10 Remove RPM build, Makefile.tests, README.tests
Nick Wellnhofer e2bae1bc 2022-09-20T14:34:20 autotools: Don't use version script on Windows A feature test would be better, but blacklisting Windows platforms seems good enough for now.
Nick Wellnhofer f597eff8 2022-09-07T18:18:06 autotools: Fix winsock detection Hardcode the required library on MinGW because winsock uses non-standard calling conventions on 32-bit Windows which makes AC_SEARCH_LIBS fail. Should fix #406.
Nick Wellnhofer 16d3e8b2 2022-09-07T18:10:03 autotools: Only add network libraries if HTTP/FTP enabled
Nick Wellnhofer 5ff3baf0 2022-09-06T17:33:38 python: Create .pyd on Windows
Nick Wellnhofer a41878bd 2022-09-05T23:16:23 build: Remove check for broken ss_family This only seemed to affect ancient AIX systems.
Nick Wellnhofer ad338459 2022-09-05T21:16:20 autotools: Fix bug with multiline arguments Should fix #404.
Nick Wellnhofer adcf399b 2022-09-05T15:36:13 autotools: Try to fix bug with multiline arguments Only happens with older autoconf?
Nick Wellnhofer 30c8d9bb 2022-09-05T02:02:54 http: Simplify IPv6 checks This should also enable IPv6 support on Windows. Untested and mostly useless anyway, since we don't support HTTPS.
Nick Wellnhofer 9e5a016e 2022-09-05T01:08:33 autotools: Fix network checks on Windows
Nick Wellnhofer 5d32b126 2022-09-04T22:05:16 Fix detection of GNU libiconv GNU libiconv prefixes symbols with "lib".
Nick Wellnhofer 27b2b864 2022-09-04T18:32:55 configure.ac: Also check for MSYS host
Nick Wellnhofer 3a1c5ee7 2022-09-04T18:22:30 Disable fuzzer tests if glob.h wasn't found
Nick Wellnhofer ad6f10a8 2022-09-04T17:21:51 Fix Python build on Windows Build Python bindings with -no-undefined on Windows. Remove libs that should already be set by PKG_CHECK_MODULE.
Nick Wellnhofer 22b82d14 2022-09-04T17:19:58 Improve network library detection
Nick Wellnhofer 0048fd0a 2022-09-04T03:48:49 Detect ws2_32 with AC_SEARCH_LIBS
Nick Wellnhofer 60b03c9e 2022-09-04T03:31:27 Rework network configure checks Migrate to AC_SEARCH_LIBS. Don't pollute LIBS.
Nick Wellnhofer fe02289f 2022-09-04T03:19:01 Remove arg cast configure checks We can simply cast to non-const char * unconditionally.
Nick Wellnhofer 2d164d68 2022-09-04T02:54:20 Fix dlopen check
Nick Wellnhofer 1e60c768 2022-09-04T01:49:41 Remove HAVE_WIN32_THREADS configuration flag Check for LIBXML_THREAD_ENABLED and _WIN32 instead.
Nick Wellnhofer 13a66378 2022-09-04T01:05:51 Remove BeOS support Haiku shouldn't be affected.
Nick Wellnhofer 38290ec1 2022-09-04T00:49:36 Rework dlopen and pthread detection Migrate to AC_SEARCH_LIBS. Remove check for ancient GCC 3.3.
Nick Wellnhofer e47df37b 2022-09-04T00:46:32 Fix test in configure.ac Broken in commit b4847d60.
Nick Wellnhofer c59df16d 2022-09-02T17:00:05 Always link with -no-undefined This is a good idea to detect errors early.
Nick Wellnhofer 513d65fe 2022-09-02T16:45:06 Use AM_CFLAGS and AM_LDFLAGS consistently
Nick Wellnhofer 17d505e2 2022-09-02T17:33:42 Remove -Wredundant-decls Some Python headers contain redundant redeclarations.
Nick Wellnhofer 4d911ebc 2022-09-02T16:14:04 Call AC_CHECK_* with multiple arguments
Nick Wellnhofer 75bd98a5 2022-09-02T05:09:42 Remove unused code in nanohttp.c This was hidden behind an undocumented flag RES_USE_INET6.
Nick Wellnhofer 5bffa33a 2022-09-02T05:03:03 Stop including sys/types.h
Nick Wellnhofer 05fc6ee2 2022-09-02T04:45:27 configure.ac: Remove checks for unused programs
Nick Wellnhofer 16ae1d8f 2022-09-02T04:33:54 Don't define WIN32 macro
Nick Wellnhofer 0f77167f 2022-09-02T02:08:44 Rework library detection in configure.ac Migrate to AC_CHECK_LIB and AC_SEARCH_LIBS. Don't pollute CPPFLAGS, LDFLAGS and LIBS.
Nick Wellnhofer f2dda8e8 2022-09-02T00:51:46 Rearrange configure.ac Move some sections around and align headers.
Nick Wellnhofer 6a5c88cc 2022-09-02T00:40:03 Consolidate zlib and lzma detection Don't depend on a global variable for flag backup. Now the blocks can be moved freely around.
Nick Wellnhofer 59f2f60e 2022-09-02T00:27:57 Remove "runtime debugging" This doesn't seem useful as configuration option.
Nick Wellnhofer b4847d60 2022-09-02T00:17:43 Consolidate simple API modules in configure.ac Add some small consistency fixes.
Nick Wellnhofer 88a8757b 2022-09-01T23:44:00 Fix dependency resolution in configure.ac This mainly fixes the case of disabling a single module, for example ./configure --without-xpath Before, there were still a few cases where a module wouldn't be disabled unless another module depending on it were disabled, too. Finding the correct options to really disable some modules could be extremely hard for casual users. Now every --without option should reliably disable dependent modules unless they were specifcally requested. In the latter case, a warning is printed consistently. Some missing dependencies were added and the logic was consolidated in a single code section.
Nick Wellnhofer 14d38a71 2022-09-01T05:53:51 Don't build unneeded .c source files
Xi Ruoyao df003c0a 2022-08-26T10:09:13 build: require automake-1.16.3 or later We need https://git.savannah.gnu.org/cgit/automake.git/commit/?id=e21d46f to avoid an error like checking for PYTHON... no configure: error: Package requirements (python-3.1) were not met: No package 'python-3.1' found With python-3.10. Partially fixes #392. Note that there is another issue with python-3.10, like: checking for python... no checking for python2... no checking for python3... no checking for python3.9... no ... configure: error: no suitable Python interpreter found Fixing this one will need to require bumping automake version again, but the automake version containing this fix is not released yet. And, this is rather minor because most environment has "python3" as a symlink to "python3.10" or whatever the latest python3.x installed.
Nick Wellnhofer 0f568c0b 2022-08-26T01:22:33 Consolidate private header files Private functions were previously declared - in header files in the root directory - in public headers guarded with IN_LIBXML - in libxml.h - redundantly in source files that used them. Consolidate all private header files in include/private.
Nick Wellnhofer 2bea68af 2022-08-25T13:50:09 Bump version to 2.11.0 This will be the next release cut from the master branch.
Nick Wellnhofer ae383bdb 2022-08-17T13:16:19 Release v2.10.0
Nick Wellnhofer 3c4e4bb7 2022-08-05T16:24:51 Fix build with older pkg-config versions The PKG_CHECK_VAR macro was introduced in pkg-config 0.28. Guard the invocation with m4_ifdef. Fixes #374.
Nick Wellnhofer 67070107 2022-04-20T23:17:14 Add configuration flag for XPointer locations support Add a new configuration flag that controls whether the outdated support for XPointer locations (ranges and points) is enabled. --with-xptr-locs # Autotools LIBXML2_WITH_XPTR_LOCS # CMake The latest spec for what it essentially an XPath extension seems to be this working draft from 2002: https://www.w3.org/TR/xptr-xpointer/ The xpointer() scheme is listed as "being reviewed" in the XPointer registry since at least 2006. libxml2 seems to be the only modern software that tries to implement this spec, but the code has many bugs and quality issues. The flag defaults to "off" and support for this extensions has to be requested explicitly. The relevant API functions are deprecated.
Christopher Degawa f60e2193 2022-04-03T21:24:21 configure: move XML_PRIVATE_LIBS after WIN32_EXTRA_LIBADD is set currently the pkg-config file lacks -lws2_32 because WIN32_EXTRA_LIBADD isn't set by the time XML_PRIVATE_LIBS is set Signed-off-by: Christopher Degawa <ccom@randomderp.com>
Nick Wellnhofer 5ce893c0 2020-07-09T03:21:07 Move regexp tests to runtest
Nick Wellnhofer 0cca7b51 2022-04-03T21:29:58 Move testModule to new test suite Invoke testModule when the modern test suite is run with 'make check'.
Nick Wellnhofer f23ca9f9 2022-04-03T21:25:54 Move testThreads to new test suite Invoke testThreads when the modern test suite is run with 'make check'.
Nick Wellnhofer 48b03c84 2022-04-03T20:36:38 Remove major parts of old test suite Remove all the parts of the old test suite which are covered by runtest.c for quite some time. The following test programs are removed: - testC14N - testHTML - testReader - testRelax - testSAX - testSchemas - testURI - testXPath This also removes a few results of unimportant tests only run by the old test suite.
Nick Wellnhofer 1db151ac 2022-04-03T14:36:03 Remove LIBS from XML_PRIVATE_LIBS
Nick Wellnhofer cf6cd81c 2022-04-03T02:18:25 Add WIN32_EXTRA_LIBADD to XML_PRIVATE_LIBS
David Seifert d47c52ac 2022-04-02T19:21:02 Avoid obsolescent `test -a` constructs * POSIX calls the `-a` operator obsolescent and strongly discourages its use, instead recommending chaining `test` calls instead: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html
Nick Wellnhofer c8ccb727 2022-04-02T18:03:44 Move AM_MAINTAINER_MODE to AM section
James Hilliard 0f04d5a1 2022-01-18T14:22:24 configure: check for icu DEFS In some cases we need to add additional defs to build against icu if icu has certain options configured. ICU warns about this when building: *** WARNING: You must set the following flags before code compiled against this ICU will function properly: -DU_DISABLE_RENAMING=1 We can fetch these flags from the icu pkgconfig and add them if required. This fixes symbol errors if ICU is built without renaming. Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
David Seifert 5ccdfa43 2022-04-02T16:54:30 configure.ac: produce tar.xz only (GNOME policy) * This is part of a policy from 2011: https://mail.gnome.org/archives/distributor-list/2011-September/msg00000.html
David Seifert 7bce3008 2022-04-02T16:54:29 configure.ac: make AM_SILENT_RULES([yes]) unconditional * No need to support Automake 1.10 anymore.
Nick Wellnhofer 1366c569 2022-04-02T15:36:22 Don't try to recreate COPYING symlink Since automake is initialized with "foreign" for quite some while, it shouldn't touch these files anymore.
David Seifert 5c71ada8 2022-03-30T16:51:17 Detect libm using libtool's macros
David Seifert dff68688 2022-03-30T16:51:16 configure.ac: disable static libraries by default
David Seifert 9e304353 2022-03-30T16:51:14 python/Makefile.am: rely on global AM_INIT_AUTOMAKE * Even Debian oldoldstable has Automake 1.15 available nowadays.
David Seifert 7a4037be 2022-03-30T16:51:12 configure.ac: remove useless AC_SUBST * CPPFLAGS/LDFLAGS are always substituted
Nick Wellnhofer 456a0bf6 2022-03-02T18:58:17 Remove --with-html-dir option Install documentation in $(docdir).
Nick Wellnhofer 74580967 2022-03-02T18:45:39 Rework documentation build system Since several generated files are under version control, their timestamps are essentially random and rebuilding documentation using Makefile rules can't work reliably. Simply add a phony rebuild target that regenerates the whole documentation and other files unconditionally. make -C doc rebuild
David Seifert d9335077 2022-03-29T13:37:16 Use AM_PATH_PYTHON/PKG_CHECK_MODULES for python bindings * `AM_PATH_PYTHON` is a much more common idiom for building and installing python modules than writing your own. * It also makes cross-compiling the python bindings possible. Previously the `PYTHON_CFLAGS`/`PYTHON_LIBS` would have been based on the `--build` python and not the `--host` python. By using `pkg-config`, we can always redirect the python-X.Y.pc. Bug: https://bugs.gentoo.org/582130
Nick Wellnhofer 4a8c71eb 2022-03-04T03:35:57 Remove DOCBparser This code has been broken and deprecated since version 2.6.0, released in 2003. Because of a bug in commit 961b535c, DOCBparser.c was never compiled since 2012. I couldn't find a Debian package using any of its symbols, so it seems safe to remove this module.
Nick Wellnhofer 21ddad52 2022-03-04T01:07:40 Remove ICONV_CONST test We can simply cast the offending pointer to (void *).
Nick Wellnhofer 5c009c66 2022-03-02T01:31:56 Remove obsolete AC_HEADER checks
Nick Wellnhofer 72119afe 2022-03-02T01:14:08 Don't check for standard C89 library functions Don't check for - fprintf - localtime - printf - rand - sprintf - srand - sscanf - strftime - time - vfprintf - vsprintf If the C99 functions snprintf and vsnprintf are missing, Trio is enabled.
Nick Wellnhofer 776d15d3 2022-03-02T00:29:17 Don't check for standard C89 headers Don't check for - ctype.h - errno.h - float.h - limits.h - math.h - signal.h - stdarg.h - stdlib.h - string.h - time.h Stop including non-standard headers - malloc.h - strings.h
Nick Wellnhofer b66ce0bb 2022-03-01T12:39:02 Don't include ICU headers in public headers There's no need to make these implementation details public.
Nick Wellnhofer 6117700e 2022-02-20T20:56:40 Remove special configuration for certain maintainers
Nick Wellnhofer aeaf02c0 2022-02-20T20:51:20 Disable docbook support by default The docbook code is broken and has been deprecated for years.
Nick Wellnhofer 96889d19 2022-02-20T17:36:28 Disable legacy support by default If you need support for legacy APIs, you have to enable it explicitly: ./configure --with-legacy