📄 neon-xml-parser.m4
字号:
# Copyright (C) 1998-2004 Joe Orton <joe@manyfish.co.uk> -*- autoconf -*-## This file is free software; you may copy and/or distribute it with# or without modifications, as long as this notice is preserved.# This software is distributed in the hope that it will be useful, but# WITHOUT ANY WARRANTY, to the extent permitted by law; without even# the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR# PURPOSE.# The above license applies to THIS FILE ONLY, the neon library code# itself may be copied and distributed under the terms of the GNU# LGPL, see COPYING.LIB for more details# This file is part of the neon HTTP/WebDAV client library.# See http://www.webdav.org/neon/ for the latest version. # Please send any feedback to <neon@webdav.org># Check for XML parser, supporting libxml 2.x and expat 1.95.x,# or a bundled copy of expat.# * Bundled expat if a directory name argument is passed# -> expat dir must contain minimal expat sources, i.e.# xmltok, xmlparse sub-directories. See sitecopy/cadaver for# examples of how to do this.## Usage: # NEON_XML_PARSER()# or# NEON_XML_PARSER(expat-dir)dnl Find expat: run $1 if found, else $2AC_DEFUN([NE_XML_EXPAT], [AC_CHECK_HEADER(expat.h, [AC_CHECK_LIB(expat, XML_SetXmlDeclHandler, [ AC_DEFINE(HAVE_EXPAT, 1, [Define if you have expat]) neon_xml_parser_message="expat" NEON_LIBS="$NEON_LIBS -lexpat" neon_xml_parser=expat ], [$1])], [$1])])dnl Find libxml2: run $1 if found, else $2AC_DEFUN([NE_XML_LIBXML2], [AC_CHECK_PROG(XML2_CONFIG, xml2-config, xml2-config)if test -n "$XML2_CONFIG"; then neon_xml_parser_message="libxml `$XML2_CONFIG --version`" AC_DEFINE(HAVE_LIBXML, 1, [Define if you have libxml]) # xml2-config in some versions erroneously includes -I/include # in the --cflags output. CPPFLAGS="$CPPFLAGS `$XML2_CONFIG --cflags | sed 's| -I/include||g'`" NEON_LIBS="$NEON_LIBS `$XML2_CONFIG --libs | sed 's|-L/usr/lib ||g'`" AC_CHECK_HEADERS(libxml/xmlversion.h libxml/parser.h,,[ AC_MSG_ERROR([could not find parser.h, libxml installation problem?])]) neon_xml_parser=libxml2else $1fi])dnl Configure for a bundled expat build.AC_DEFUN([NE_XML_BUNDLED_EXPAT], [AC_REQUIRE([AC_C_BIGENDIAN])# Define XML_BYTE_ORDER for expat sources.if test $ac_cv_c_bigendian = "yes"; then ne_xml_border=21else ne_xml_border=12fi# mini-expat doesn't pick up config.hCPPFLAGS="$CPPFLAGS -DXML_BYTE_ORDER=$ne_xml_border -DXML_DTD -I$1/xmlparse -I$1/xmltok"# Use the bundled expat sourcesAC_LIBOBJ($1/xmltok/xmltok)AC_LIBOBJ($1/xmltok/xmlrole)AC_LIBOBJ($1/xmlparse/xmlparse)AC_LIBOBJ($1/xmlparse/hashtable)AC_DEFINE(HAVE_EXPAT)AC_DEFINE(HAVE_XMLPARSE_H, 1, [Define if using expat which includes xmlparse.h])])AC_DEFUN([NEON_XML_PARSER], [dnl Switches to force choice of libraryAC_ARG_WITH([libxml2],AC_HELP_STRING([--with-libxml2], [force use of libxml 2.x]))AC_ARG_WITH([expat], AC_HELP_STRING([--with-expat], [force use of expat]))dnl Flag to force choice of included expat, if available.ifelse($#, 1, [AC_ARG_WITH([included-expat],AC_HELP_STRING([--with-included-expat], [use bundled expat sources]),,with_included_expat=no)],with_included_expat=no)if test "$NEON_NEED_XML_PARSER" = "yes"; then # Find an XML parser neon_xml_parser=none # Forced choice of expat: case $with_expat in yes) NE_XML_EXPAT([AC_MSG_ERROR([expat library not found, cannot proceed])]) ;; no) ;; */libexpat.la) # Special case for Subversion ne_expdir=`echo $with_expat | sed 's:/libexpat.la$::'` AC_DEFINE(HAVE_EXPAT) CPPFLAGS="$CPPFLAGS -I$ne_expdir" if test "x${NEON_TARGET}" = "xlibneon.la"; then NEON_LTLIBS=$with_expat else # no dependency on libexpat => crippled libneon, so do partial install ALLOW_INSTALL=lib fi neon_xml_parser=expat neon_xml_parser_message="expat in $ne_expdir" ;; /*) AC_MSG_ERROR([--with-expat does not take a directory argument]) ;; esac # If expat wasn't specifically enabled and libxml was: if test "${neon_xml_parser}-${with_libxml}-${with_included_expat}" = "none-yes-no"; then NE_XML_LIBXML2( [AC_MSG_ERROR([libxml2.x library not found, cannot proceed])]) fi # Otherwise, by default search for libxml2 then expat: if test "${neon_xml_parser}-${with_included_expat}" = "none-no"; then NE_XML_LIBXML2([NE_XML_EXPAT([:])]) fi # If an XML parser still has not been found, fail or use the bundled expat if test "$neon_xml_parser" = "none"; then m4_if($1, [], [AC_MSG_ERROR([no XML parser was found: expat or libxml 2.x required])], [# Configure the bundled copy of expat NE_XML_BUNDLED_EXPAT($1) neon_xml_parser_message="bundled expat in $1"]) fi AC_MSG_NOTICE([XML parser used: $neon_xml_parser_message])fi])
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -