From bc1f20f01c1a6668ea7eba598ef85a56b4b121b8 Mon Sep 17 00:00:00 2001 From: yamaoka Date: Fri, 8 Feb 2008 01:13:28 +0000 Subject: [PATCH] * Makefile.in (datarootdir): Define. (install): Quote directory name that might contain whitespace. * mkinstalldirs: Replace it with the 2006-05-11.19 version. --- Makefile.in | 15 +++--- mkinstalldirs | 158 +++++++++++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 144 insertions(+), 29 deletions(-) diff --git a/Makefile.in b/Makefile.in index 04dee77..8ea2506 100644 --- a/Makefile.in +++ b/Makefile.in @@ -12,8 +12,9 @@ PDVIPS=@PDVIPS@ PTEX=@PTEX@ SHELL=/bin/sh TEXI2DVI=@TEXI2DVI@ -infodir=@infodir@ prefix=@prefix@ +datarootdir=@datarootdir@ +infodir=@infodir@ .SUFFIXES: .pdf .ps .texi @@ -23,13 +24,13 @@ all: $(INFO_DEPS) @texi=$<; rm -f $@ $@-[0-9] $@-[0-9][0-9]; $(EMACSINFO) $$texi t install: all - $(SHELL) ./mkinstalldirs $(infodir) + $(SHELL) ./mkinstalldirs "$(infodir)" @list='$(INFO_DEPS)';\ for file in $$list; do\ for ifile in `echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do\ if test -f $$ifile; then\ - echo " $(INSTALL_DATA) $$ifile $(infodir)/$$ifile";\ - $(INSTALL_DATA) $$ifile $(infodir)/$$ifile;\ + echo "$(INSTALL_DATA) $$ifile \"$(infodir)/$$ifile\"";\ + $(INSTALL_DATA) $$ifile "$(infodir)/$$ifile";\ else : ; fi;\ done;\ done @@ -37,9 +38,9 @@ install: all | fgrep -s -v -i debian'>/dev/null 2>&1; then\ list='$(INFO_DEPS)';\ for file in $$list; do\ - if test -f $(infodir)/$$file; then\ - echo " $(INSTALL_INFO) --info-dir=$(infodir) $(infodir)/$$file";\ - $(INSTALL_INFO) --info-dir=$(infodir) $(infodir)/$$file || :;\ + if test -f "$(infodir)/$$file"; then\ + echo "$(INSTALL_INFO) --info-dir=\"$(infodir)\" \"$(infodir)/$$file\"";\ + $(INSTALL_INFO) --info-dir="$(infodir)" "$(infodir)/$$file" || :;\ else : ; fi\ done;\ else : ; fi diff --git a/mkinstalldirs b/mkinstalldirs index 9e4b309..be98de6 100755 --- a/mkinstalldirs +++ b/mkinstalldirs @@ -1,38 +1,152 @@ #! /bin/sh # mkinstalldirs --- make directory hierarchy -# Author: Noah Friedman + +scriptversion=2006-05-11.19 + +# Original author: Noah Friedman # Created: 1993-05-16 -# Public domain +# Public domain. +# +# This file is maintained in Automake, please report +# bugs to or send patches to +# . +nl=' +' +IFS=" "" $nl" errstatus=0 +dirmode= + +usage="\ +Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... + +Create each directory DIR (with mode MODE, if specified), including all +leading file name components. + +Report bugs to ." + +# process command line arguments +while test $# -gt 0 ; do + case $1 in + -h | --help | --h*) # -h for help + echo "$usage" + exit $? + ;; + -m) # -m PERM arg + shift + test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } + dirmode=$1 + shift + ;; + --version) + echo "$0 $scriptversion" + exit $? + ;; + --) # stop option processing + shift + break + ;; + -*) # unknown option + echo "$usage" 1>&2 + exit 1 + ;; + *) # first non-opt arg + break + ;; + esac +done + +for file +do + if test -d "$file"; then + shift + else + break + fi +done + +case $# in + 0) exit 0 ;; +esac + +# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and +# mkdir -p a/c at the same time, both will detect that a is missing, +# one will create a, then the other will try to create a and die with +# a "File exists" error. This is a problem when calling mkinstalldirs +# from a parallel make. We use --version in the probe to restrict +# ourselves to GNU mkdir, which is thread-safe. +case $dirmode in + '') + if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then + echo "mkdir -p -- $*" + exec mkdir -p -- "$@" + else + # On NextStep and OpenStep, the `mkdir' command does not + # recognize any option. It will interpret all options as + # directories to create, and then abort because `.' already + # exists. + test -d ./-p && rmdir ./-p + test -d ./--version && rmdir ./--version + fi + ;; + *) + if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && + test ! -d ./--version; then + echo "mkdir -m $dirmode -p -- $*" + exec mkdir -m "$dirmode" -p -- "$@" + else + # Clean up after NextStep and OpenStep mkdir. + for d in ./-m ./-p ./--version "./$dirmode"; + do + test -d $d && rmdir $d + done + fi + ;; +esac for file do - set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` - shift + case $file in + /*) pathcomp=/ ;; + *) pathcomp= ;; + esac + oIFS=$IFS + IFS=/ + set fnord $file + shift + IFS=$oIFS + + for d + do + test "x$d" = x && continue - pathcomp= - for d - do - pathcomp="$pathcomp$d" - case "$pathcomp" in - -* ) pathcomp=./$pathcomp ;; - esac + pathcomp=$pathcomp$d + case $pathcomp in + -*) pathcomp=./$pathcomp ;; + esac - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" 1>&2 + if test ! -d "$pathcomp"; then + echo "mkdir $pathcomp" - (mkdir "$pathcomp" && chmod a+rx "$pathcomp") || lasterr=$? + mkdir "$pathcomp" || lasterr=$? - if test ! -d "$pathcomp"; then - errstatus=$lasterr - fi - fi + if test ! -d "$pathcomp"; then + errstatus=$lasterr + else + if test ! -z "$dirmode"; then + echo "chmod $dirmode $pathcomp" + lasterr= + chmod "$dirmode" "$pathcomp" || lasterr=$? - pathcomp="$pathcomp/" - done + if test ! -z "$lasterr"; then + errstatus=$lasterr + fi + fi + fi + fi + + pathcomp=$pathcomp/ + done done exit $errstatus - -# mkinstalldirs ends here -- 1.7.10.4