From 6531fd7d8f2c362cd322a3682bb4a9d67e7e7754 Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Sun, 27 Jul 2003 23:11:40 +0000 Subject: [PATCH] Add --with-ansi configure option to avoid using non-ANSI strdup() function. --- config.h.in | 13 +++++-- configure | 98 +++++++++++++++++++++++++++++++++++++++++++++++++-- configure.in | 22 +++++++++--- mxml-attr.c | 6 ++-- mxml-file.c | 6 ++-- mxml-node.c | 6 ++-- mxml-search.c | 6 ++-- mxmldoc.c | 6 ++-- testmxml.c | 6 ++-- 9 files changed, 141 insertions(+), 28 deletions(-) diff --git a/config.h.in b/config.h.in index 1dac15b..3218008 100644 --- a/config.h.in +++ b/config.h.in @@ -1,5 +1,5 @@ /* - * "$Id: config.h.in,v 1.1 2003/07/20 13:41:17 mike Exp $" + * "$Id: config.h.in,v 1.2 2003/07/27 23:11:40 mike Exp $" * * Configuration file for mini-XML, a small XML-like file parsing library. * @@ -16,6 +16,15 @@ * GNU General Public License for more details. */ +/* + * Include necessary headers... + */ + +#include +#include +#include + + /* * Do we have the strXXX() functions? */ @@ -36,5 +45,5 @@ extern char *mxml_strdup(const char *); /* - * End of "$Id: config.h.in,v 1.1 2003/07/20 13:41:17 mike Exp $". + * End of "$Id: config.h.in,v 1.2 2003/07/27 23:11:40 mike Exp $". */ diff --git a/configure b/configure index 44294f3..22ad6b1 100755 --- a/configure +++ b/configure @@ -789,12 +789,13 @@ if test -n "$ac_init_help"; then Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-debug turn on debugging default=no + --enable-debug turn on debugging, default=no Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-docdir set directory for documentation + --with-ansi set full ANSI C mode, default=no + --with-docdir set directory for documentation, default=${prefix}/share/doc/mxml Some influential environment variables: CC C compiler command @@ -1165,6 +1166,15 @@ LDFLAGS="${LDFLAGS:=}" OPTIM="-O" + +# Check whether --with-ansi or --without-ansi was given. +if test "${with_ansi+set}" = set; then + withval="$with_ansi" + use_ansi="$withval" +else + use_ansi="no" +fi; + # Check whether --enable-debug or --disable-debug was given. if test "${enable_debug+set}" = set; then enableval="$enable_debug" @@ -2610,8 +2620,85 @@ esac +for ac_func in strlcat strlcpy +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +char (*f) (); + +#ifdef F77_DUMMY_MAIN +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } +#endif +int +main () +{ +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +f = $ac_func; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +if test "x$use_ansi" != xyes; then -for ac_func in strdup strlcat strlcpy +for ac_func in strdup do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -2686,9 +2773,14 @@ _ACEOF fi done +fi if test -n "$GCC"; then CFLAGS="-Wall $CFLAGS" + + if test "x$use_ansi" = xyes; then + CFLAGS="-ansi -pedantic $CFLAGS" + fi fi if test "$prefix" = "NONE"; then diff --git a/configure.in b/configure.in index e974928..746a1bd 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ dnl -dnl "$Id: configure.in,v 1.6 2003/07/20 13:41:17 mike Exp $" +dnl "$Id: configure.in,v 1.7 2003/07/27 23:11:40 mike Exp $" dnl dnl Configuration script for mini-XML, a small XML-like file parsing library. dnl @@ -31,14 +31,18 @@ AC_SUBST(LDFLAGS) OPTIM="-O" AC_SUBST(OPTIM) -AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=no]], +AC_ARG_WITH(ansi, [ --with-ansi set full ANSI C mode, default=no], + use_ansi="$withval", + use_ansi="no") + +AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging, default=no], if eval "test x$enable_debug = xyes"; then OPTIM="-g" else LDFLAGS="$LDFLAGS -s" fi) -AC_ARG_WITH(docdir, [ --with-docdir set directory for documentation], +AC_ARG_WITH(docdir, [ --with-docdir set directory for documentation, default=${prefix}/share/doc/mxml], docdir="$withval", docdir="NONE") @@ -82,11 +86,19 @@ esac AC_SUBST(ARFLAGS) dnl Checks for string functions. -AC_CHECK_FUNCS(strdup strlcat strlcpy) +AC_CHECK_FUNCS(strlcat strlcpy) + +if test "x$use_ansi" != xyes; then + AC_CHECK_FUNCS(strdup) +fi dnl Add -Wall for GCC... if test -n "$GCC"; then CFLAGS="-Wall $CFLAGS" + + if test "x$use_ansi" = xyes; then + CFLAGS="-ansi -pedantic $CFLAGS" + fi fi dnl Fix "prefix" variable if it hasn't been specified... @@ -149,5 +161,5 @@ dnl Output the makefile, etc... AC_OUTPUT(Makefile mxml.list) dnl -dnl End of "$Id: configure.in,v 1.6 2003/07/20 13:41:17 mike Exp $". +dnl End of "$Id: configure.in,v 1.7 2003/07/27 23:11:40 mike Exp $". dnl diff --git a/mxml-attr.c b/mxml-attr.c index fd69d72..c120570 100644 --- a/mxml-attr.c +++ b/mxml-attr.c @@ -1,5 +1,5 @@ /* - * "$Id: mxml-attr.c,v 1.3 2003/07/20 13:41:17 mike Exp $" + * "$Id: mxml-attr.c,v 1.4 2003/07/27 23:11:40 mike Exp $" * * Attribute support code for mini-XML, a small XML-like file parsing library. * @@ -25,8 +25,8 @@ * Include necessary headers... */ -#include "mxml.h" #include "config.h" +#include "mxml.h" /* @@ -156,5 +156,5 @@ mxmlElementSetAttr(mxml_node_t *node, /* I - Element node */ /* - * End of "$Id: mxml-attr.c,v 1.3 2003/07/20 13:41:17 mike Exp $". + * End of "$Id: mxml-attr.c,v 1.4 2003/07/27 23:11:40 mike Exp $". */ diff --git a/mxml-file.c b/mxml-file.c index b6e2688..0bf0bbb 100644 --- a/mxml-file.c +++ b/mxml-file.c @@ -1,5 +1,5 @@ /* - * "$Id: mxml-file.c,v 1.19 2003/07/26 17:24:14 mike Exp $" + * "$Id: mxml-file.c,v 1.20 2003/07/27 23:11:40 mike Exp $" * * File loading code for mini-XML, a small XML-like file parsing library. * @@ -36,8 +36,8 @@ * Include necessary headers... */ -#include "mxml.h" #include "config.h" +#include "mxml.h" /* @@ -1432,5 +1432,5 @@ mxml_write_ws(mxml_node_t *node, /* I - Current node */ /* - * End of "$Id: mxml-file.c,v 1.19 2003/07/26 17:24:14 mike Exp $". + * End of "$Id: mxml-file.c,v 1.20 2003/07/27 23:11:40 mike Exp $". */ diff --git a/mxml-node.c b/mxml-node.c index 5413be2..b755b96 100644 --- a/mxml-node.c +++ b/mxml-node.c @@ -1,5 +1,5 @@ /* - * "$Id: mxml-node.c,v 1.6 2003/07/20 13:41:17 mike Exp $" + * "$Id: mxml-node.c,v 1.7 2003/07/27 23:11:40 mike Exp $" * * Node support code for mini-XML, a small XML-like file parsing library. * @@ -32,8 +32,8 @@ * Include necessary headers... */ -#include "mxml.h" #include "config.h" +#include "mxml.h" /* @@ -490,5 +490,5 @@ mxml_new(mxml_node_t *parent, /* I - Parent node */ /* - * End of "$Id: mxml-node.c,v 1.6 2003/07/20 13:41:17 mike Exp $". + * End of "$Id: mxml-node.c,v 1.7 2003/07/27 23:11:40 mike Exp $". */ diff --git a/mxml-search.c b/mxml-search.c index 167eaac..d69776d 100644 --- a/mxml-search.c +++ b/mxml-search.c @@ -1,5 +1,5 @@ /* - * "$Id: mxml-search.c,v 1.7 2003/07/20 13:41:17 mike Exp $" + * "$Id: mxml-search.c,v 1.8 2003/07/27 23:11:40 mike Exp $" * * Search/navigation functions for mini-XML, a small XML-like file * parsing library. @@ -27,8 +27,8 @@ * Include necessary headers... */ -#include "mxml.h" #include "config.h" +#include "mxml.h" /* @@ -195,5 +195,5 @@ mxmlWalkPrev(mxml_node_t *node, /* I - Current node */ /* - * End of "$Id: mxml-search.c,v 1.7 2003/07/20 13:41:17 mike Exp $". + * End of "$Id: mxml-search.c,v 1.8 2003/07/27 23:11:40 mike Exp $". */ diff --git a/mxmldoc.c b/mxmldoc.c index d4be978..be35f40 100644 --- a/mxmldoc.c +++ b/mxmldoc.c @@ -1,5 +1,5 @@ /* - * "$Id: mxmldoc.c,v 1.15 2003/07/26 17:24:14 mike Exp $" + * "$Id: mxmldoc.c,v 1.16 2003/07/27 23:11:40 mike Exp $" * * Documentation generator using mini-XML, a small XML-like file parsing * library. @@ -34,8 +34,8 @@ * Include necessary headers... */ -#include "mxml.h" #include "config.h" +#include "mxml.h" /* @@ -2081,5 +2081,5 @@ ws_cb(mxml_node_t *node, /* I - Element node */ /* - * End of "$Id: mxmldoc.c,v 1.15 2003/07/26 17:24:14 mike Exp $". + * End of "$Id: mxmldoc.c,v 1.16 2003/07/27 23:11:40 mike Exp $". */ diff --git a/testmxml.c b/testmxml.c index 9d6f315..e8e9dca 100644 --- a/testmxml.c +++ b/testmxml.c @@ -1,5 +1,5 @@ /* - * "$Id: testmxml.c,v 1.11 2003/07/20 13:49:09 mike Exp $" + * "$Id: testmxml.c,v 1.12 2003/07/27 23:11:40 mike Exp $" * * Test program for mini-XML, a small XML-like file parsing library. * @@ -27,8 +27,8 @@ * Include necessary headers... */ -#include "mxml.h" #include "config.h" +#include "mxml.h" /* @@ -392,5 +392,5 @@ whitespace_cb(mxml_node_t *node, /* I - Element node */ /* - * End of "$Id: testmxml.c,v 1.11 2003/07/20 13:49:09 mike Exp $". + * End of "$Id: testmxml.c,v 1.12 2003/07/27 23:11:40 mike Exp $". */