From d05a2f8d521c6cee015b658cff884b1e7511cd3d Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Sun, 24 Apr 2005 23:23:59 +0000 Subject: [PATCH] Fixed an XML output bug in mxmldoc. The "make install" target now uses the install command to set the proper permissions on UNIX/Linux/OSX. --- CHANGES | 9 +- Makefile.in | 63 +++++++----- configure | 121 +++++++++++++++++++++- configure.in | 7 +- doc/reference.html | 2 +- install-sh | 251 +++++++++++++++++++++++++++++++++++++++++++++ mxml.spec | 2 +- mxml.xml | 3 +- mxmldoc.c | 3 +- 9 files changed, 427 insertions(+), 34 deletions(-) create mode 100755 install-sh diff --git a/CHANGES b/CHANGES index 57e8cbd..d767c6e 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,13 @@ -CHANGES - 02/25/2005 +CHANGES - 04/24/2005 -------------------- +CHANGES IN Mini-XML 2.2.1 + + - Fixed an XML output bug in mxmldoc. + - The "make install" target now uses the install command + to set the proper permissions on UNIX/Linux/OSX. + + CHANGES IN Mini-XML 2.2 - Added shared library support (STR #17) diff --git a/Makefile.in b/Makefile.in index 1762821..d4c0041 100644 --- a/Makefile.in +++ b/Makefile.in @@ -28,6 +28,7 @@ CP = @CP@ DSO = @DSO@ DSOFLAGS = @DSOFLAGS@ LDFLAGS = $(OPTIM) @LDFLAGS@ +INSTALL = @INSTALL@ LIBMXML = @LIBMXML@ LN = @LN@ -s MKDIR = @MKDIR@ @@ -62,6 +63,18 @@ MAN1EXT = @MAN1EXT@ MAN3EXT = @MAN3EXT@ +# +# Install commands... +# + +INSTALL_BIN = $(LIBTOOL) $(INSTALL) -m 755 -s +INSTALL_DATA = $(INSTALL) -m 644 +INSTALL_DIR = $(INSTALL) -d +INSTALL_LIB = $(LIBTOOL) $(INSTALL) -m 755 +INSTALL_MAN = $(INSTALL) -m 644 +INSTALL_SCRIPT = $(INSTALL) -m 755 + + # # Rules... # @@ -112,44 +125,46 @@ clean: # install: $(TARGETS) install-$(LIBMXML) install-libmxml.a - -$(MKDIR) -p $(BUILDROOT)$(bindir) - $(CP) mxmldoc $(BUILDROOT)$(bindir) - -$(MKDIR) -p $(BUILDROOT)$(docdir) - $(CP) $(DOCFILES) $(BUILDROOT)$(docdir) - -$(MKDIR) -p $(BUILDROOT)$(includedir) - $(CP) mxml.h $(BUILDROOT)$(includedir) - -$(MKDIR) -p $(BUILDROOT)$(libdir)/pkgconfig - $(CP) mxml.pc $(BUILDROOT)$(libdir)/pkgconfig - -$(MKDIR) -p $(BUILDROOT)$(mandir)/cat1 - $(CP) doc/mxmldoc.$(CAT1EXT) $(BUILDROOT)$(mandir)/cat1/mxmldoc.$(CAT1EXT) - -$(MKDIR) -p $(BUILDROOT)$(mandir)/cat3 - $(CP) doc/mxml.$(CAT3EXT) $(BUILDROOT)$(mandir)/cat3/mxml.$(CAT3EXT) - -$(MKDIR) -p $(BUILDROOT)$(mandir)/man1 - $(CP) doc/mxmldoc.man $(BUILDROOT)$(mandir)/man1/mxmldoc.$(MAN1EXT) - -$(MKDIR) -p $(BUILDROOT)$(mandir)/man3 - $(CP) doc/mxml.man $(BUILDROOT)$(mandir)/man3/mxml.$(MAN3EXT) + $(INSTALL_DIR) $(BUILDROOT)$(bindir) + $(INSTALL_BIN) mxmldoc $(BUILDROOT)$(bindir) + $(INSTALL_DIR) $(BUILDROOT)$(docdir) + for file in $(DOCFILES); do \ + $(INSTALL_MAN) $$file $(BUILDROOT)$(docdir); \ + done + $(INSTALL_DIR) $(BUILDROOT)$(includedir) + $(INSTALL_DATA) mxml.h $(BUILDROOT)$(includedir) + $(INSTALL_DIR) $(BUILDROOT)$(libdir)/pkgconfig + $(INSTALL_DATA) mxml.pc $(BUILDROOT)$(libdir)/pkgconfig + $(INSTALL_DIR) $(BUILDROOT)$(mandir)/cat1 + $(INSTALL_MAN) doc/mxmldoc.$(CAT1EXT) $(BUILDROOT)$(mandir)/cat1/mxmldoc.$(CAT1EXT) + $(INSTALL_DIR) $(BUILDROOT)$(mandir)/cat3 + $(INSTALL_MAN) doc/mxml.$(CAT3EXT) $(BUILDROOT)$(mandir)/cat3/mxml.$(CAT3EXT) + $(INSTALL_DIR) $(BUILDROOT)$(mandir)/man1 + $(INSTALL_MAN) doc/mxmldoc.man $(BUILDROOT)$(mandir)/man1/mxmldoc.$(MAN1EXT) + $(INSTALL_DIR) $(BUILDROOT)$(mandir)/man3 + $(INSTALL_MAN) doc/mxml.man $(BUILDROOT)$(mandir)/man3/mxml.$(MAN3EXT) install-libmxml.a: - -$(MKDIR) -p $(BUILDROOT)$(libdir) - $(CP) libmxml.a $(BUILDROOT)$(libdir) + $(INSTALL_DIR) $(BUILDROOT)$(libdir) + $(INSTALL_LIB) libmxml.a $(BUILDROOT)$(libdir) install-libmxml.so.1.0: - -$(MKDIR) -p $(BUILDROOT)$(libdir) - $(CP) libmxml.so.1.0 $(BUILDROOT)$(libdir) + $(INSTALL_DIR) $(BUILDROOT)$(libdir) + $(INSTALL_LIB) libmxml.so.1.0 $(BUILDROOT)$(libdir) $(RM) $(BUILDROOT)$(libdir)/libmxml.so $(LN) libmxml.so.1.0 $(BUILDROOT)$(libdir)/libmxml.so $(RM) $(BUILDROOT)$(libdir)/libmxml.so.1 $(LN) libmxml.so.1.0 $(BUILDROOT)$(libdir)/libmxml.so.1 install-libmxml.sl.1: - -$(MKDIR) -p $(BUILDROOT)$(libdir) - $(CP) libmxml.sl.1 $(BUILDROOT)$(libdir) + $(INSTALL_DIR) $(BUILDROOT)$(libdir) + $(INSTALL_LIB) libmxml.sl.1 $(BUILDROOT)$(libdir) $(RM) $(BUILDROOT)$(libdir)/libmxml.so $(LN) libmxml.sl.1 $(BUILDROOT)$(libdir)/libmxml.sl install-libmxml.1.dylib: - -$(MKDIR) -p $(BUILDROOT)$(libdir) - $(CP) libmxml.1.dylib $(BUILDROOT)$(libdir) + $(INSTALL_DIR) $(BUILDROOT)$(libdir) + $(INSTALL_LIB) libmxml.1.dylib $(BUILDROOT)$(libdir) $(RM) $(BUILDROOT)$(libdir)/libmxml.dylib $(LN) libmxml.1.dylib $(BUILDROOT)$(libdir)/libmxml.dylib diff --git a/configure b/configure index 182c000..da3cca7 100755 --- a/configure +++ b/configure @@ -272,7 +272,7 @@ PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="mxml.h" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS VERSION LDFLAGS OPTIM docdir CC CFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX RANLIB ac_ct_RANLIB AR CP LN MKDIR NROFF GROFF RM ARFLAGS DSO DSOFLAGS LIBMXML PICFLAG CAT1EXT CAT3EXT MAN1EXT MAN3EXT PC_CFLAGS PC_LIBS LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS VERSION LDFLAGS OPTIM docdir CC CFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA RANLIB ac_ct_RANLIB AR CP LN MKDIR NROFF GROFF RM ARFLAGS DSO DSOFLAGS LIBMXML PICFLAG CAT1EXT CAT3EXT MAN1EXT MAN3EXT PC_CFLAGS PC_LIBS LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -1269,7 +1269,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers config.h" -VERSION=2.2 +VERSION=2.2.1 cat >>confdefs.h <<_ACEOF #define MXML_VERSION "Mini-XML v$VERSION" @@ -2613,6 +2613,114 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu +ac_aux_dir= +for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f $ac_dir/shtool; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 +echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} + { (exit 1); exit 1; }; } +fi +ac_config_guess="$SHELL $ac_aux_dir/config.guess" +ac_config_sub="$SHELL $ac_aux_dir/config.sub" +ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done + + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL=$ac_install_sh + fi +fi +echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +if test "$INSTALL" = "$ac_install_sh"; then + # Use full path to install-sh script... + INSTALL="`pwd`/install-sh -c" +fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 @@ -3808,6 +3916,7 @@ Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir +INSTALL="$INSTALL" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF @@ -4003,6 +4112,9 @@ s,@OBJEXT@,$OBJEXT,;t t s,@CXX@,$CXX,;t t s,@CXXFLAGS@,$CXXFLAGS,;t t s,@ac_ct_CXX@,$ac_ct_CXX,;t t +s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t +s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t +s,@INSTALL_DATA@,$INSTALL_DATA,;t t s,@RANLIB@,$RANLIB,;t t s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t s,@AR@,$AR,;t t @@ -4186,6 +4298,10 @@ case $ac_abs_builddir in esac + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_builddir$INSTALL ;; + esac if test x"$ac_file" != x-; then { echo "$as_me:$LINENO: creating $ac_file" >&5 @@ -4247,6 +4363,7 @@ s,@builddir@,$ac_builddir,;t t s,@abs_builddir@,$ac_abs_builddir,;t t s,@top_builddir@,$ac_top_builddir,;t t s,@abs_top_builddir@,$ac_abs_top_builddir,;t t +s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out rm -f $tmp/stdin if test x"$ac_file" != x-; then diff --git a/configure.in b/configure.in index 0cd5e2b..71cc190 100644 --- a/configure.in +++ b/configure.in @@ -23,7 +23,7 @@ dnl Set the name of the config header file... AC_CONFIG_HEADER(config.h) dnl Version number... -VERSION=2.2 +VERSION=2.2.1 AC_SUBST(VERSION) AC_DEFINE_UNQUOTED(MXML_VERSION, "Mini-XML v$VERSION") @@ -67,6 +67,11 @@ fi dnl Checks for programs... AC_PROG_CC AC_PROG_CXX +AC_PROG_INSTALL +if test "$INSTALL" = "$ac_install_sh"; then + # Use full path to install-sh script... + INSTALL="`pwd`/install-sh -c" +fi AC_PROG_RANLIB AC_PATH_PROG(AR,ar) AC_PATH_PROG(CP,cp) diff --git a/doc/reference.html b/doc/reference.html index 7f4abde..ec9ce98 100644 --- a/doc/reference.html +++ b/doc/reference.html @@ -2,7 +2,7 @@ Documentation - +