Skip to content

Commit 701365f

Browse files
authored
Merge pull request #2818 from hughmcmaster/libxml2-mods2
Use pkg-config to find libxml2, falling back to xml2-config if necessary
2 parents 73f3921 + baa38dd commit 701365f

File tree

2 files changed

+42
-18
lines changed

2 files changed

+42
-18
lines changed

Diff for: build/find_xml.m4

+41-18
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,7 @@ dnl Sets:
44
dnl LIBXML2_CFLAGS
55
dnl LIBXML2_LIBS
66

7-
LIBXML2_CONFIG=""
8-
LIBXML2_VERSION=""
9-
LIBXML2_CFLAGS=""
10-
LIBXML2_CPPFLAGS=""
11-
LIBXML2_LDADD=""
12-
LIBXML2_LDFLAGS=""
13-
14-
AC_DEFUN([CHECK_LIBXML2],
15-
[dnl
16-
17-
AC_ARG_WITH(
18-
libxml,
19-
[AC_HELP_STRING([--with-libxml=PATH],[Path to libxml2 prefix or config script])],
20-
[test_paths="${with_libxml}"],
21-
[test_paths="/usr/local/libxml2 /usr/local/xml2 /usr/local/xml /usr/local /opt/libxml2 /opt/libxml /opt/xml2 /opt/xml /opt /usr"])
7+
AC_DEFUN([CHECK_XML2CONFIG], [
228
239
AC_MSG_CHECKING([for libxml2 config script])
2410
@@ -59,19 +45,56 @@ if test -n "${libxml2_path}"; then
5945
LIBXML2_LDADD="`${LIBXML2_CONFIG} --libs`"
6046
if test "$verbose_output" -eq 1; then AC_MSG_NOTICE(xml LDADD: $LIBXML2_LDADD); fi
6147
62-
AC_MSG_CHECKING([if libxml2 is at least v2.6.29])
63-
libxml2_min_ver=`echo 2.6.29 | awk -F. '{print (\$ 1 * 1000000) + (\$ 2 * 1000) + \$ 3}'`
48+
AC_MSG_CHECKING([if libxml2 is at least v${LIBXML2_MIN_VERSION}])
49+
libxml2_min_ver=`echo ${LIBXML2_MIN_VERSION} | awk -F. '{print (\$ 1 * 1000000) + (\$ 2 * 1000) + \$ 3}'`
6450
libxml2_ver=`echo ${LIBXML2_VERSION} | awk -F. '{print (\$ 1 * 1000000) + (\$ 2 * 1000) + \$ 3}'`
6551
if test "$libxml2_ver" -ge "$libxml2_min_ver"; then
6652
AC_MSG_RESULT([yes, $LIBXML2_VERSION])
6753
else
6854
AC_MSG_RESULT([no, $LIBXML2_VERSION])
69-
AC_MSG_ERROR([NOTE: libxml2 library must be at least 2.6.29])
55+
AC_MSG_ERROR([NOTE: libxml2 library must be at least ${LIBXML2_MIN_VERSION}])
7056
fi
7157
7258
else
7359
AC_MSG_RESULT([no])
7460
fi
61+
])
62+
63+
AC_DEFUN([CHECK_LIBXML2], [
64+
65+
AC_ARG_WITH(
66+
libxml,
67+
[AS_HELP_STRING([--with-libxml=PATH],[Path to libxml2 prefix or config script])],
68+
[test_paths="${with_libxml}"],
69+
[test_paths="/usr/local/libxml2 /usr/local/xml2 /usr/local/xml /usr/local /opt/libxml2 /opt/libxml /opt/xml2 /opt/xml /opt /usr"])
70+
71+
LIBXML2_MIN_VERSION="2.6.29"
72+
LIBXML2_PKG_NAME="libxml-2.0"
73+
LIBXML2_CONFIG=""
74+
LIBXML2_VERSION=""
75+
LIBXML2_CFLAGS=""
76+
LIBXML2_CPPFLAGS=""
77+
LIBXML2_LDADD=""
78+
LIBXML2_LDFLAGS=""
79+
80+
if test "x${with_libxml}" != "xno"; then
81+
if test -n "${PKG_CONFIG}"; then
82+
AC_MSG_CHECKING([for libxml2 >= ${LIBXML2_MIN_VERSION} via pkg-config])
83+
if `${PKG_CONFIG} --exists "${LIBXML2_PKG_NAME} >= ${LIBXML2_MIN_VERSION}"`; then
84+
LIBXML2_VERSION="`${PKG_CONFIG} --modversion ${LIBXML2_PKG_NAME}`"
85+
LIBXML2_CFLAGS="`${PKG_CONFIG} --cflags ${LIBXML2_PKG_NAME}`"
86+
LIBXML2_LDADD="`${PKG_CONFIG} --libs-only-l ${LIBXML2_PKG_NAME}`"
87+
LIBXML2_LDFLAGS="`${PKG_CONFIG} --libs-only-L --libs-only-other ${LIBXML2_PKG_NAME}`"
88+
AC_MSG_RESULT([found version ${LIBXML2_VERSION}])
89+
else
90+
AC_MSG_RESULT([not found])
91+
fi
92+
fi
93+
94+
if test -z "${LIBXML2_VERSION}"; then
95+
CHECK_XML2CONFIG
96+
fi
97+
fi
7598
7699
AC_SUBST(LIBXML2_CONFIG)
77100
AC_SUBST(LIBXML2_VERSION)

Diff for: configure.ac

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ AC_PROG_MAKE_SET
3030
AC_PROG_GREP
3131
AC_PATH_PROGS(PERL, [perl perl5], )
3232
AC_PATH_PROGS(ENV_CMD, [env printenv], )
33+
PKG_PROG_PKG_CONFIG
3334

3435
# Checks for header files.
3536
AC_HEADER_STDC

0 commit comments

Comments
 (0)