|
Packit Service |
a2489d |
# ===========================================================================
|
|
Packit Service |
a2489d |
# http://www.gnu.org/software/autoconf-archive/ax_lib_expat.html
|
|
Packit Service |
a2489d |
# ===========================================================================
|
|
Packit Service |
a2489d |
#
|
|
Packit Service |
a2489d |
# SYNOPSIS
|
|
Packit Service |
a2489d |
#
|
|
Packit Service |
a2489d |
# AX_LIB_EXPAT([MINIMUM-VERSION])
|
|
Packit Service |
a2489d |
#
|
|
Packit Service |
a2489d |
# DESCRIPTION
|
|
Packit Service |
a2489d |
#
|
|
Packit Service |
a2489d |
# This macro provides tests of availability of Expat XML Parser of
|
|
Packit Service |
a2489d |
# particular version or newer. This macro checks for Expat XML Parser
|
|
Packit Service |
a2489d |
# headers and libraries and defines compilation flags
|
|
Packit Service |
a2489d |
#
|
|
Packit Service |
a2489d |
# Macro supports following options and their values:
|
|
Packit Service |
a2489d |
#
|
|
Packit Service |
a2489d |
# 1) Single-option usage:
|
|
Packit Service |
a2489d |
#
|
|
Packit Service |
a2489d |
# --with-expat -- yes, no, or path to Expat XML Parser
|
|
Packit Service |
a2489d |
# installation prefix
|
|
Packit Service |
a2489d |
#
|
|
Packit Service |
a2489d |
# 2) Three-options usage (all options are required):
|
|
Packit Service |
a2489d |
#
|
|
Packit Service |
a2489d |
# --with-expat=yes
|
|
Packit Service |
a2489d |
# --with-expat-inc -- path to base directory with Expat headers
|
|
Packit Service |
a2489d |
# --with-expat-lib -- linker flags for Expat
|
|
Packit Service |
a2489d |
#
|
|
Packit Service |
a2489d |
# This macro calls:
|
|
Packit Service |
a2489d |
#
|
|
Packit Service |
a2489d |
# AC_SUBST(EXPAT_CFLAGS)
|
|
Packit Service |
a2489d |
# AC_SUBST(EXPAT_LIBS)
|
|
Packit Service |
a2489d |
# AC_SUBST(EXPAT_LDFLAGS)
|
|
Packit Service |
a2489d |
# AC_SUBST(EXPAT_VERSION) -- only if version requirement is used
|
|
Packit Service |
a2489d |
#
|
|
Packit Service |
a2489d |
# And sets:
|
|
Packit Service |
a2489d |
#
|
|
Packit Service |
a2489d |
# HAVE_EXPAT
|
|
Packit Service |
a2489d |
#
|
|
Packit Service |
a2489d |
# LICENSE
|
|
Packit Service |
a2489d |
#
|
|
Packit Service |
a2489d |
# Copyright (c) 2008 Mateusz Loskot <mateusz@loskot.net>
|
|
Packit Service |
a2489d |
#
|
|
Packit Service |
a2489d |
# Copying and distribution of this file, with or without modification, are
|
|
Packit Service |
a2489d |
# permitted in any medium without royalty provided the copyright notice
|
|
Packit Service |
a2489d |
# and this notice are preserved. This file is offered as-is, without any
|
|
Packit Service |
a2489d |
# warranty.
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
#serial 10
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
AC_DEFUN([AX_LIB_EXPAT],
|
|
Packit Service |
a2489d |
[
|
|
Packit Service |
a2489d |
AC_ARG_WITH([expat],
|
|
Packit Service |
a2489d |
AS_HELP_STRING([--with-expat=@<:@ARG@:>@],
|
|
Packit Service |
a2489d |
[use Expat XML Parser from given prefix (ARG=path); check standard prefixes (ARG=yes); disable (ARG=no)]
|
|
Packit Service |
a2489d |
),
|
|
Packit Service |
a2489d |
[
|
|
Packit Service |
a2489d |
if test "$withval" = "yes"; then
|
|
Packit Service |
a2489d |
if test -f /usr/local/include/expat.h ; then
|
|
Packit Service |
a2489d |
expat_prefix=/usr/local
|
|
Packit Service |
a2489d |
elif test -f /usr/include/expat.h ; then
|
|
Packit Service |
a2489d |
expat_prefix=/usr
|
|
Packit Service |
a2489d |
else
|
|
Packit Service |
a2489d |
expat_prefix=""
|
|
Packit Service |
a2489d |
fi
|
|
Packit Service |
a2489d |
expat_requested="yes"
|
|
Packit Service |
a2489d |
elif test -d "$withval"; then
|
|
Packit Service |
a2489d |
expat_prefix="$withval"
|
|
Packit Service |
a2489d |
expat_requested="yes"
|
|
Packit Service |
a2489d |
else
|
|
Packit Service |
a2489d |
expat_prefix=""
|
|
Packit Service |
a2489d |
expat_requested="no"
|
|
Packit Service |
a2489d |
fi
|
|
Packit Service |
a2489d |
],
|
|
Packit Service |
a2489d |
[
|
|
Packit Service |
a2489d |
dnl Default behavior is implicit yes
|
|
Packit Service |
a2489d |
if test -f /usr/local/include/expat.h ; then
|
|
Packit Service |
a2489d |
expat_prefix=/usr/local
|
|
Packit Service |
a2489d |
elif test -f /usr/include/expat.h ; then
|
|
Packit Service |
a2489d |
expat_prefix=/usr
|
|
Packit Service |
a2489d |
else
|
|
Packit Service |
a2489d |
expat_prefix=""
|
|
Packit Service |
a2489d |
fi
|
|
Packit Service |
a2489d |
]
|
|
Packit Service |
a2489d |
)
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
AC_ARG_WITH([expat-inc],
|
|
Packit Service |
a2489d |
AS_HELP_STRING([--with-expat-inc=@<:@DIR@:>@],
|
|
Packit Service |
a2489d |
[path to Expat XML Parser headers]
|
|
Packit Service |
a2489d |
),
|
|
Packit Service |
a2489d |
[expat_include_dir="$withval"],
|
|
Packit Service |
a2489d |
[expat_include_dir=""]
|
|
Packit Service |
a2489d |
)
|
|
Packit Service |
a2489d |
AC_ARG_WITH([expat-lib],
|
|
Packit Service |
a2489d |
AS_HELP_STRING([--with-expat-lib=@<:@ARG@:>@],
|
|
Packit Service |
a2489d |
[link options for Expat XML Parser libraries]
|
|
Packit Service |
a2489d |
),
|
|
Packit Service |
a2489d |
[expat_lib_flags="$withval"],
|
|
Packit Service |
a2489d |
[expat_lib_flags=""]
|
|
Packit Service |
a2489d |
)
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
EXPAT_CFLAGS=""
|
|
Packit Service |
a2489d |
EXPAT_LIBS=""
|
|
Packit Service |
a2489d |
EXPAT_VERSION=""
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
dnl
|
|
Packit Service |
a2489d |
dnl Collect include/lib paths and flags
|
|
Packit Service |
a2489d |
dnl
|
|
Packit Service |
a2489d |
run_expat_test="no"
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
if test -n "$expat_prefix"; then
|
|
Packit Service |
a2489d |
expat_include_dir="$expat_prefix/include"
|
|
Packit Service |
a2489d |
expat_ld_flags="-L$expat_prefix/lib"
|
|
Packit Service |
a2489d |
expat_lib_flags="-lexpat"
|
|
Packit Service |
a2489d |
run_expat_test="yes"
|
|
Packit Service |
a2489d |
elif test "$expat_requested" = "yes"; then
|
|
Packit Service |
a2489d |
if test -n "$expat_include_dir" -a -n "$expat_lib_flags"; then
|
|
Packit Service |
a2489d |
run_expat_test="yes"
|
|
Packit Service |
a2489d |
fi
|
|
Packit Service |
a2489d |
else
|
|
Packit Service |
a2489d |
run_expat_test="no"
|
|
Packit Service |
a2489d |
fi
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
dnl
|
|
Packit Service |
a2489d |
dnl Check Expat XML Parser files
|
|
Packit Service |
a2489d |
dnl
|
|
Packit Service |
a2489d |
if test "$run_expat_test" = "yes"; then
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
saved_CPPFLAGS="$CPPFLAGS"
|
|
Packit Service |
a2489d |
CPPFLAGS="$CPPFLAGS -I$expat_include_dir"
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
saved_LIBS="$LIBS"
|
|
Packit Service |
a2489d |
LIBS="$LIBS $expat_lib_flags"
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
saved_LDFLAGS="$LDFLAGS"
|
|
Packit Service |
a2489d |
LDFLAGS="$LDFLAGS $expat_ld_flags"
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
dnl
|
|
Packit Service |
a2489d |
dnl Check Expat headers
|
|
Packit Service |
a2489d |
dnl
|
|
Packit Service |
a2489d |
AC_MSG_CHECKING([for Expat XML Parser headers in $expat_include_dir])
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
AC_LANG_PUSH([C++])
|
|
Packit Service |
a2489d |
AC_COMPILE_IFELSE([
|
|
Packit Service |
a2489d |
AC_LANG_PROGRAM(
|
|
Packit Service |
a2489d |
[[
|
|
Packit Service |
a2489d |
@%:@include <expat.h>
|
|
Packit Service |
a2489d |
]],
|
|
Packit Service |
a2489d |
[[]]
|
|
Packit Service |
a2489d |
)],
|
|
Packit Service |
a2489d |
[
|
|
Packit Service |
a2489d |
EXPAT_CFLAGS="-I$expat_include_dir"
|
|
Packit Service |
a2489d |
expat_header_found="yes"
|
|
Packit Service |
a2489d |
AC_MSG_RESULT([found])
|
|
Packit Service |
a2489d |
],
|
|
Packit Service |
a2489d |
[
|
|
Packit Service |
a2489d |
expat_header_found="no"
|
|
Packit Service |
a2489d |
AC_MSG_RESULT([not found])
|
|
Packit Service |
a2489d |
]
|
|
Packit Service |
a2489d |
)
|
|
Packit Service |
a2489d |
AC_LANG_POP([C++])
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
dnl
|
|
Packit Service |
a2489d |
dnl Check Expat libraries
|
|
Packit Service |
a2489d |
dnl
|
|
Packit Service |
a2489d |
if test "$expat_header_found" = "yes"; then
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
AC_MSG_CHECKING([for Expat XML Parser libraries])
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
AC_LANG_PUSH([C++])
|
|
Packit Service |
a2489d |
AC_LINK_IFELSE([
|
|
Packit Service |
a2489d |
AC_LANG_PROGRAM(
|
|
Packit Service |
a2489d |
[[
|
|
Packit Service |
a2489d |
@%:@include <expat.h>
|
|
Packit Service |
a2489d |
]],
|
|
Packit Service |
a2489d |
[[
|
|
Packit Service |
a2489d |
XML_Parser p = XML_ParserCreate(NULL);
|
|
Packit Service |
a2489d |
XML_ParserFree(p);
|
|
Packit Service |
a2489d |
p = NULL;
|
|
Packit Service |
a2489d |
]]
|
|
Packit Service |
a2489d |
)],
|
|
Packit Service |
a2489d |
[
|
|
Packit Service |
a2489d |
EXPAT_LIBS="$expat_lib_flags"
|
|
Packit Service |
a2489d |
EXPAT_LDFLAGS="$expat_ld_flags"
|
|
Packit Service |
a2489d |
test "$enable_rpath" = yes -a "$expat_prefix" != /usr && \
|
|
Packit Service |
a2489d |
EXPAT_LDFLAGS="$EXPAT_LDFLAGS -R$expat_prefix/lib"
|
|
Packit Service |
a2489d |
expat_lib_found="yes"
|
|
Packit Service |
a2489d |
AC_MSG_RESULT([found])
|
|
Packit Service |
a2489d |
],
|
|
Packit Service |
a2489d |
[
|
|
Packit Service |
a2489d |
expat_lib_found="no"
|
|
Packit Service |
a2489d |
AC_MSG_RESULT([not found])
|
|
Packit Service |
a2489d |
]
|
|
Packit Service |
a2489d |
)
|
|
Packit Service |
a2489d |
AC_LANG_POP([C++])
|
|
Packit Service |
a2489d |
fi
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
CPPFLAGS="$saved_CPPFLAGS"
|
|
Packit Service |
a2489d |
LDFLAGS="$saved_LDFLAGS"
|
|
Packit Service |
a2489d |
LIBS="$saved_LIBS"
|
|
Packit Service |
a2489d |
fi
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
AC_MSG_CHECKING([for Expat XML Parser])
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
if test "$run_expat_test" = "yes"; then
|
|
Packit Service |
a2489d |
if test "$expat_header_found" = "yes" -a "$expat_lib_found" = "yes"; then
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
AC_SUBST([EXPAT_CFLAGS])
|
|
Packit Service |
a2489d |
AC_SUBST([EXPAT_LDFLAGS])
|
|
Packit Service |
a2489d |
AC_SUBST([EXPAT_LIBS])
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
HAVE_EXPAT="yes"
|
|
Packit Service |
a2489d |
else
|
|
Packit Service |
a2489d |
HAVE_EXPAT="no"
|
|
Packit Service |
a2489d |
fi
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
AC_MSG_RESULT([$HAVE_EXPAT])
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
dnl
|
|
Packit Service |
a2489d |
dnl Check Expat version
|
|
Packit Service |
a2489d |
dnl
|
|
Packit Service |
a2489d |
if test "$HAVE_EXPAT" = "yes"; then
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
expat_version_req=ifelse([$1], [], [], [$1])
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
if test -n "$expat_version_req"; then
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
AC_MSG_CHECKING([if Expat XML Parser version is >= $expat_version_req])
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
if test -f "$expat_include_dir/expat.h"; then
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
expat_major=`cat $expat_include_dir/expat.h | \
|
|
Packit Service |
a2489d |
grep '^#define.*XML_MAJOR_VERSION.*[0-9]$' | \
|
|
Packit Service |
a2489d |
sed -e 's/#define XML_MAJOR_VERSION.//'`
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
expat_minor=`cat $expat_include_dir/expat.h | \
|
|
Packit Service |
a2489d |
grep '^#define.*XML_MINOR_VERSION.*[0-9]$' | \
|
|
Packit Service |
a2489d |
sed -e 's/#define XML_MINOR_VERSION.//'`
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
expat_revision=`cat $expat_include_dir/expat.h | \
|
|
Packit Service |
a2489d |
grep '^#define.*XML_MICRO_VERSION.*[0-9]$' | \
|
|
Packit Service |
a2489d |
sed -e 's/#define XML_MICRO_VERSION.//'`
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
EXPAT_VERSION="$expat_major.$expat_minor.$expat_revision"
|
|
Packit Service |
a2489d |
AC_SUBST([EXPAT_VERSION])
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
dnl Decompose required version string and calculate numerical representation
|
|
Packit Service |
a2489d |
expat_version_req_major=`expr $expat_version_req : '\([[0-9]]*\)'`
|
|
Packit Service |
a2489d |
expat_version_req_minor=`expr $expat_version_req : '[[0-9]]*\.\([[0-9]]*\)'`
|
|
Packit Service |
a2489d |
expat_version_req_revision=`expr $expat_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
|
|
Packit Service |
a2489d |
if test "x$expat_version_req_revision" = "x"; then
|
|
Packit Service |
a2489d |
expat_version_req_revision="0"
|
|
Packit Service |
a2489d |
fi
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
expat_version_req_number=`expr $expat_version_req_major \* 10000 \
|
|
Packit Service |
a2489d |
\+ $expat_version_req_minor \* 100 \
|
|
Packit Service |
a2489d |
\+ $expat_version_req_revision`
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
dnl Calculate numerical representation of detected version
|
|
Packit Service |
a2489d |
expat_version_number=`expr $expat_major \* 10000 \
|
|
Packit Service |
a2489d |
\+ $expat_minor \* 100 \
|
|
Packit Service |
a2489d |
\+ $expat_revision`
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
expat_version_check=`expr $expat_version_number \>\= $expat_version_req_number`
|
|
Packit Service |
a2489d |
if test "$expat_version_check" = "1"; then
|
|
Packit Service |
a2489d |
AC_MSG_RESULT([yes])
|
|
Packit Service |
a2489d |
else
|
|
Packit Service |
a2489d |
AC_MSG_RESULT([no])
|
|
Packit Service |
a2489d |
AC_MSG_WARN([Found Expat XML Parser $EXPAT_VERSION, which is older than required. Possible compilation failure.])
|
|
Packit Service |
a2489d |
fi
|
|
Packit Service |
a2489d |
else
|
|
Packit Service |
a2489d |
AC_MSG_RESULT([no])
|
|
Packit Service |
a2489d |
AC_MSG_WARN([Missing expat.h header. Unable to determine Expat version.])
|
|
Packit Service |
a2489d |
fi
|
|
Packit Service |
a2489d |
fi
|
|
Packit Service |
a2489d |
fi
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
else
|
|
Packit Service |
a2489d |
HAVE_EXPAT="no"
|
|
Packit Service |
a2489d |
AC_MSG_RESULT([$HAVE_EXPAT])
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
if test "$expat_requested" = "yes"; then
|
|
Packit Service |
a2489d |
AC_MSG_WARN([Expat XML Parser support requested but headers or library not found. Specify valid prefix of Expat using --with-expat=@<:@DIR@:>@ or provide include directory and linker flags using --with-expat-inc and --with-expat-lib])
|
|
Packit Service |
a2489d |
fi
|
|
Packit Service |
a2489d |
fi
|
|
Packit Service |
a2489d |
])
|