diff --git a/CMakeLists.txt b/CMakeLists.txt index e290fabb..9762e6af 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -399,7 +399,7 @@ endif() if(WIN32) target_link_libraries(LibXml2 PRIVATE ws2_32) - set(WIN32_EXTRA_LIBADD "-lws2_32") + set(WINSOCK_LIBS "-lws2_32") endif() if(LIBXML2_WITH_ICONV) @@ -647,7 +647,7 @@ endif() set(XML_INCLUDEDIR "-I\${includedir}/libxml2") set(XML_LIBDIR "-L\${libdir}") set(XML_LIBS "-lxml2") -set(XML_PRIVATE_LIBS "${Z_LIBS} ${LZMA_LIBS} ${THREAD_LIBS} ${ICONV_LIBS} ${ICU_LIBS} ${LIBM} ${WIN32_EXTRA_LIBADD}") +set(XML_PRIVATE_LIBS "${Z_LIBS} ${LZMA_LIBS} ${THREAD_LIBS} ${ICONV_LIBS} ${ICU_LIBS} ${LIBM} ${WINSOCK_LIBS}") file(RELATIVE_PATH PACKAGE_RELATIVE_PATH "${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig" "${CMAKE_INSTALL_PREFIX}") string(REGEX REPLACE "/$" "" PACKAGE_RELATIVE_PATH "${PACKAGE_RELATIVE_PATH}") diff --git a/Makefile.am b/Makefile.am index 746c119c..69784fe7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -11,8 +11,6 @@ DIST_SUBDIRS = include . doc example fuzz python xstc AM_CPPFLAGS = -I$(top_builddir)/include -I$(srcdir)/include -DSYSCONFDIR='"$(sysconfdir)"' -AM_CFLAGS = $(EXTRA_CFLAGS) - check_PROGRAMS = \ runsuite \ runtest \ @@ -34,7 +32,7 @@ lib_LTLIBRARIES = libxml2.la libxml2_la_CFLAGS = $(AM_CFLAGS) $(XML_PRIVATE_CFLAGS) libxml2_la_LIBADD = $(XML_PRIVATE_LIBS) -libxml2_la_LDFLAGS = $(CYGWIN_EXTRA_LDFLAGS) $(WIN32_EXTRA_LDFLAGS) \ +libxml2_la_LDFLAGS = $(AM_LDFLAGS) \ -version-info $(LIBXML_VERSION_INFO) \ $(MODULE_PLATFORM_LIBS) if USE_VERSION_SCRIPT @@ -120,66 +118,56 @@ m4datadir = $(datadir)/aclocal dist_m4data_DATA = libxml.m4 runtest_SOURCES=runtest.c -runtest_CFLAGS = $(EXTRA_CFLAGS) $(THREAD_CFLAGS) -runtest_LDFLAGS = +runtest_CFLAGS = $(AM_CFLAGS) $(THREAD_CFLAGS) runtest_DEPENDENCIES = $(DEPS) runtest_LDADD= $(BASE_THREAD_LIBS) $(THREAD_LIBS) $(LDADDS) testrecurse_SOURCES=testrecurse.c -testrecurse_LDFLAGS = testrecurse_DEPENDENCIES = $(DEPS) testrecurse_LDADD= $(LDADDS) testlimits_SOURCES=testlimits.c -testlimits_LDFLAGS = testlimits_DEPENDENCIES = $(DEPS) testlimits_LDADD= $(LDADDS) testchar_SOURCES=testchar.c -testchar_LDFLAGS = testchar_DEPENDENCIES = $(DEPS) testchar_LDADD= $(LDADDS) testdict_SOURCES=testdict.c -testdict_LDFLAGS = testdict_DEPENDENCIES = $(DEPS) testdict_LDADD= $(LDADDS) runsuite_SOURCES=runsuite.c -runsuite_LDFLAGS = runsuite_DEPENDENCIES = $(DEPS) runsuite_LDADD= $(LDADDS) xmllint_SOURCES=xmllint.c xmllint_CFLAGS = $(AM_CFLAGS) $(RDL_CFLAGS) -xmllint_LDFLAGS = xmllint_DEPENDENCIES = $(DEPS) xmllint_LDADD= $(RDL_LIBS) $(LDADDS) xmlcatalog_SOURCES=xmlcatalog.c -xmlcatalog_LDFLAGS = xmlcatalog_DEPENDENCIES = $(DEPS) xmlcatalog_LDADD = $(RDL_LIBS) $(LDADDS) testThreads_SOURCES = testThreads.c -testThreads_CFLAGS = $(EXTRA_CFLAGS) $(THREAD_CFLAGS) -testThreads_LDFLAGS = +testThreads_CFLAGS = $(AM_CFLAGS) $(THREAD_CFLAGS) testThreads_DEPENDENCIES = $(DEPS) testThreads_LDADD= $(BASE_THREAD_LIBS) $(THREAD_LIBS) $(LDADDS) testAutomata_SOURCES=testAutomata.c -testAutomata_LDFLAGS = testAutomata_DEPENDENCIES = $(DEPS) testAutomata_LDADD= $(LDADDS) testModule_SOURCES=testModule.c -testModule_LDFLAGS = testModule_DEPENDENCIES = $(DEPS) testModule_LDADD= $(LDADDS) noinst_LTLIBRARIES = testdso.la testdso_la_SOURCES = testdso.c -testdso_la_LDFLAGS = -module -no-undefined -avoid-version -rpath $(libdir) +testdso_la_LDFLAGS = $(AM_LDFLAGS) \ + -module -no-undefined -avoid-version -rpath $(libdir) # that one forces the rebuild when "make rebuild" is run on doc/ rebuild_testapi: @@ -187,17 +175,14 @@ rebuild_testapi: $(PYTHON) $(srcdir)/gentest.py $(srcdir) ; fi ) testapi_SOURCES=testapi.c -testapi_LDFLAGS = testapi_DEPENDENCIES = $(DEPS) testapi_LDADD= $(LDADDS) runxmlconf_SOURCES=runxmlconf.c -runxmlconf_LDFLAGS = runxmlconf_DEPENDENCIES = $(DEPS) runxmlconf_LDADD= $(LDADDS) #testOOM_SOURCES=testOOM.c testOOMlib.h testOOMlib.c -#testOOM_LDFLAGS = #testOOM_DEPENDENCIES = $(DEPS) #testOOM_LDADD= $(LDADDS) @@ -497,7 +482,7 @@ LCOV = /usr/bin/lcov GENHTML = /usr/bin/genhtml cov: clean-cov - if [ "`echo $(LDFLAGS) | grep coverage`" = "" ] ; then \ + if [ "`echo $(AM_LDFLAGS) | grep coverage`" = "" ] ; then \ echo not configured with coverage; exit 1 ; fi if [ ! -x $(LCOV) -o ! -x $(GENHTML) ] ; then \ echo Need $(LCOV) and $(GENHTML) excecutables; exit 1 ; fi diff --git a/configure.ac b/configure.ac index b8c4bc78..efd164eb 100644 --- a/configure.ac +++ b/configure.ac @@ -526,41 +526,35 @@ AM_CONDITIONAL([USE_VERSION_SCRIPT], [test -n "$VERSION_SCRIPT_FLAGS"]) dnl dnl Windows compiler flags dnl -WIN32_EXTRA_LIBADD= -WIN32_EXTRA_LDFLAGS= -CYGWIN_EXTRA_LDFLAGS= -CYGWIN_EXTRA_PYTHON_LIBADD= -WIN32_EXTRA_PYTHON_LIBADD= +EXTRA_PYTHON_LIBADD= case "$host" in *-*-mingw*) - WIN32_EXTRA_LIBADD="-lws2_32" - WIN32_EXTRA_LDFLAGS="-no-undefined" + if test "$with_http" != "no" || test "$with_ftp" != "no"; then + WINSOCK_LIBS="-lws2_32" + fi + AM_LDFLAGS="$AM_LDFLAGS -no-undefined" if test "${PYTHON}" != "" then case "$host" in *-w64-mingw*) - WIN32_EXTRA_PYTHON_LIBADD="-shrext .pyd -L${pythondir}/../../lib -lpython${PYTHON_VERSION}" + EXTRA_PYTHON_LIBADD="-shrext .pyd -L${pythondir}/../../lib -lpython${PYTHON_VERSION}" ;; *) - WIN32_EXTRA_PYTHON_LIBADD="-L${pythondir}/../../libs -lpython$(echo ${PYTHON_VERSION} | tr -d .)" + EXTRA_PYTHON_LIBADD="-L${pythondir}/../../libs -lpython$(echo ${PYTHON_VERSION} | tr -d .)" ;; esac fi ;; *-*-cygwin*) - CYGWIN_EXTRA_LDFLAGS="-no-undefined" + AM_LDFLAGS="$AM_LDFLAGS -no-undefined" if test "${PYTHON}" != "" then - CYGWIN_EXTRA_PYTHON_LIBADD="-L/usr/lib/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}" + EXTRA_PYTHON_LIBADD="-L/usr/lib/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}" fi ;; esac -AC_SUBST(WIN32_EXTRA_LIBADD) -AC_SUBST(WIN32_EXTRA_LDFLAGS) -AC_SUBST(WIN32_EXTRA_PYTHON_LIBADD) -AC_SUBST(CYGWIN_EXTRA_LDFLAGS) -AC_SUBST(CYGWIN_EXTRA_PYTHON_LIBADD) +AC_SUBST(EXTRA_PYTHON_LIBADD) dnl dnl Workaround for native compilers @@ -570,13 +564,13 @@ dnl if test "${GCC}" != "yes" ; then case "${host}" in hppa*-*-hpux* ) - EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wp,-H30000" + AM_CFLAGS="${AM_CFLAGS} -Wp,-H30000" ;; *-dec-osf* ) - EXTRA_CFLAGS="${EXTRA_CFLAGS} -ieee" + AM_CFLAGS="${AM_CFLAGS} -ieee" ;; alpha*-*-linux* ) - EXTRA_CFLAGS="${EXTRA_CFLAGS} -ieee" + AM_CFLAGS="${AM_CFLAGS} -ieee" ;; esac else @@ -586,19 +580,19 @@ else # Not activated by default because this inflates the code size # Used to allow propagation of C++ exceptions through the library # - EXTRA_CFLAGS="${EXTRA_CFLAGS} -fexceptions" + AM_CFLAGS="${AM_CFLAGS} -fexceptions" fi # warnings we'd like to see - EXTRA_CFLAGS="${EXTRA_CFLAGS} -pedantic -Wall -Wextra -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline" + AM_CFLAGS="${AM_CFLAGS} -pedantic -Wall -Wextra -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline" # warnings we'd like to suppress - EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wno-long-long -Wno-format-extra-args" + AM_CFLAGS="${AM_CFLAGS} -Wno-long-long -Wno-format-extra-args" case "${host}" in alpha*-*-linux* ) - EXTRA_CFLAGS="${EXTRA_CFLAGS} -mieee" + AM_CFLAGS="${AM_CFLAGS} -mieee" ;; alpha*-*-osf* ) - EXTRA_CFLAGS="${EXTRA_CFLAGS} -mieee" + AM_CFLAGS="${AM_CFLAGS} -mieee" ;; esac fi @@ -611,13 +605,13 @@ case ${host} in ;; *-*-mingw* | *-*-cygwin* | *-*-msvc* ) # If the host is Windows, and shared libraries are disabled, we - # need to add -DLIBXML_STATIC to EXTRA_CFLAGS in order for linking to + # need to add -DLIBXML_STATIC to AM_CFLAGS in order for linking to # work properly (without it, xmlexports.h would force the use of # DLL imports, which obviously aren't present in a static # library). if test "x$enable_shared" = "xno"; then XML_CFLAGS="$XML_CFLAGS -DLIBXML_STATIC" - EXTRA_CFLAGS="$EXTRA_CFLAGS -DLIBXML_STATIC" + AM_CFLAGS="$AM_CFLAGS -DLIBXML_STATIC" fi ;; esac @@ -1225,18 +1219,19 @@ AC_SUBST(WITH_ICU) if test "$with_coverage" = "yes" && test "${GCC}" = "yes" then echo Enabling code coverage for GCC - EXTRA_CFLAGS="$EXTRA_CFLAGS -fprofile-arcs -ftest-coverage" - LDFLAGS="$LDFLAGS -fprofile-arcs -ftest-coverage" + AM_CFLAGS="$AM_CFLAGS -fprofile-arcs -ftest-coverage" + AM_LDFLAGS="$AM_LDFLAGS -fprofile-arcs -ftest-coverage" else echo Disabling code coverage for GCC fi XML_LIBS="-lxml2" XML_LIBTOOLLIBS="libxml2.la" -XML_PRIVATE_LIBS="$Z_LIBS $LZMA_LIBS $THREAD_LIBS $ICONV_LIBS $ICU_LIBS $LIBM $WIN32_EXTRA_LIBADD" +XML_PRIVATE_LIBS="$Z_LIBS $LZMA_LIBS $THREAD_LIBS $ICONV_LIBS $ICU_LIBS $LIBM $WINSOCK_LIBS" XML_PRIVATE_CFLAGS="$Z_CFLAGS $LZMA_CFLAGS $THREAD_CFLAGS $ICONV_CFLAGS $ICU_CFLAGS" -AC_SUBST(EXTRA_CFLAGS) +AC_SUBST(AM_CFLAGS) +AC_SUBST(AM_LDFLAGS) AC_SUBST(XML_CFLAGS) AC_SUBST(XML_LIBDIR) diff --git a/fuzz/Makefile.am b/fuzz/Makefile.am index 6d598167..61bfc888 100644 --- a/fuzz/Makefile.am +++ b/fuzz/Makefile.am @@ -49,7 +49,7 @@ seed/xml.stamp: genSeed$(EXEEXT) @touch seed/xml.stamp xml_SOURCES = xml.c fuzz.c -xml_LDFLAGS = -fsanitize=fuzzer +xml_LDFLAGS = $(AM_LDFLAGS) -fsanitize=fuzzer fuzz-xml: xml$(EXEEXT) seed/xml.stamp @mkdir -p corpus/xml @@ -67,7 +67,7 @@ seed/html.stamp: genSeed$(EXEEXT) @touch seed/html.stamp html_SOURCES = html.c fuzz.c -html_LDFLAGS = -fsanitize=fuzzer +html_LDFLAGS = $(AM_LDFLAGS) -fsanitize=fuzzer fuzz-html: html$(EXEEXT) seed/html.stamp @mkdir -p corpus/html @@ -85,7 +85,7 @@ seed/regexp.stamp: @touch seed/regexp.stamp regexp_SOURCES = regexp.c fuzz.c -regexp_LDFLAGS = -fsanitize=fuzzer +regexp_LDFLAGS = $(AM_LDFLAGS) -fsanitize=fuzzer fuzz-regexp: regexp$(EXEEXT) @mkdir -p corpus/regexp @@ -103,7 +103,7 @@ seed/uri.stamp: @touch seed/uri.stamp uri_SOURCES = uri.c fuzz.c -uri_LDFLAGS = -fsanitize=fuzzer +uri_LDFLAGS = $(AM_LDFLAGS) -fsanitize=fuzzer fuzz-uri: uri$(EXEEXT) @mkdir -p corpus/uri @@ -120,7 +120,7 @@ seed/schema.stamp: genSeed$(EXEEXT) @touch seed/schema.stamp schema_SOURCES = schema.c fuzz.c -schema_LDFLAGS = -fsanitize=fuzzer +schema_LDFLAGS = $(AM_LDFLAGS) -fsanitize=fuzzer fuzz-schema: schema$(EXEEXT) seed/schema.stamp @mkdir -p corpus/schema @@ -138,7 +138,7 @@ seed/xpath.stamp: genSeed$(EXEEXT) @touch seed/xpath.stamp xpath_SOURCES = xpath.c fuzz.c -xpath_LDFLAGS = -fsanitize=fuzzer +xpath_LDFLAGS = $(AM_LDFLAGS) -fsanitize=fuzzer fuzz-xpath: xpath$(EXEEXT) seed/xpath.stamp @mkdir -p corpus/xpath diff --git a/python/Makefile.am b/python/Makefile.am index 3184f33f..d9f909e9 100644 --- a/python/Makefile.am +++ b/python/Makefile.am @@ -20,8 +20,8 @@ pyexec_LTLIBRARIES = libxml2mod.la libxml2mod_la_SOURCES = libxml.c libxml_wrap.h types.c nodist_libxml2mod_la_SOURCES = libxml2-py.h libxml2-py.c -libxml2mod_la_LDFLAGS = $(CYGWIN_EXTRA_LDFLAGS) $(WIN32_EXTRA_LDFLAGS) -module -avoid-version -libxml2mod_la_LIBADD = $(top_builddir)/libxml2.la $(CYGWIN_EXTRA_PYTHON_LIBADD) $(WIN32_EXTRA_PYTHON_LIBADD) $(PYTHON_LIBS) +libxml2mod_la_LDFLAGS = $(AM_LDFLAGS) -module -avoid-version +libxml2mod_la_LIBADD = $(top_builddir)/libxml2.la $(EXTRA_PYTHON_LIBADD) $(PYTHON_LIBS) BUILT_SOURCES = libxml2-export.c libxml2-py.h libxml2-py.c