@@ -1,530 +0,0 @@ | |||
#! /bin/sh | |||
# depcomp - compile a program generating dependencies as side-effects | |||
scriptversion=2005-07-09.11 | |||
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. | |||
# This program is free software; you can redistribute it and/or modify | |||
# it under the terms of the GNU General Public License as published by | |||
# the Free Software Foundation; either version 2, or (at your option) | |||
# any later version. | |||
# This program is distributed in the hope that it will be useful, | |||
# but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
# GNU General Public License for more details. | |||
# You should have received a copy of the GNU General Public License | |||
# along with this program; if not, write to the Free Software | |||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | |||
# 02110-1301, USA. | |||
# As a special exception to the GNU General Public License, if you | |||
# distribute this file as part of a program that contains a | |||
# configuration script generated by Autoconf, you may include it under | |||
# the same distribution terms that you use for the rest of that program. | |||
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. | |||
case $1 in | |||
'') | |||
echo "$0: No command. Try \`$0 --help' for more information." 1>&2 | |||
exit 1; | |||
;; | |||
-h | --h*) | |||
cat <<\EOF | |||
Usage: depcomp [--help] [--version] PROGRAM [ARGS] | |||
Run PROGRAMS ARGS to compile a file, generating dependencies | |||
as side-effects. | |||
Environment variables: | |||
depmode Dependency tracking mode. | |||
source Source file read by `PROGRAMS ARGS'. | |||
object Object file output by `PROGRAMS ARGS'. | |||
DEPDIR directory where to store dependencies. | |||
depfile Dependency file to output. | |||
tmpdepfile Temporary file to use when outputing dependencies. | |||
libtool Whether libtool is used (yes/no). | |||
Report bugs to <bug-automake@gnu.org>. | |||
EOF | |||
exit $? | |||
;; | |||
-v | --v*) | |||
echo "depcomp $scriptversion" | |||
exit $? | |||
;; | |||
esac | |||
if test -z "$depmode" || test -z "$source" || test -z "$object"; then | |||
echo "depcomp: Variables source, object and depmode must be set" 1>&2 | |||
exit 1 | |||
fi | |||
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. | |||
depfile=${depfile-`echo "$object" | | |||
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} | |||
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} | |||
rm -f "$tmpdepfile" | |||
# Some modes work just like other modes, but use different flags. We | |||
# parameterize here, but still list the modes in the big case below, | |||
# to make depend.m4 easier to write. Note that we *cannot* use a case | |||
# here, because this file can only contain one case statement. | |||
if test "$depmode" = hp; then | |||
# HP compiler uses -M and no extra arg. | |||
gccflag=-M | |||
depmode=gcc | |||
fi | |||
if test "$depmode" = dashXmstdout; then | |||
# This is just like dashmstdout with a different argument. | |||
dashmflag=-xM | |||
depmode=dashmstdout | |||
fi | |||
case "$depmode" in | |||
gcc3) | |||
## gcc 3 implements dependency tracking that does exactly what | |||
## we want. Yay! Note: for some reason libtool 1.4 doesn't like | |||
## it if -MD -MP comes after the -MF stuff. Hmm. | |||
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile" | |||
stat=$? | |||
if test $stat -eq 0; then : | |||
else | |||
rm -f "$tmpdepfile" | |||
exit $stat | |||
fi | |||
mv "$tmpdepfile" "$depfile" | |||
;; | |||
gcc) | |||
## There are various ways to get dependency output from gcc. Here's | |||
## why we pick this rather obscure method: | |||
## - Don't want to use -MD because we'd like the dependencies to end | |||
## up in a subdir. Having to rename by hand is ugly. | |||
## (We might end up doing this anyway to support other compilers.) | |||
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like | |||
## -MM, not -M (despite what the docs say). | |||
## - Using -M directly means running the compiler twice (even worse | |||
## than renaming). | |||
if test -z "$gccflag"; then | |||
gccflag=-MD, | |||
fi | |||
"$@" -Wp,"$gccflag$tmpdepfile" | |||
stat=$? | |||
if test $stat -eq 0; then : | |||
else | |||
rm -f "$tmpdepfile" | |||
exit $stat | |||
fi | |||
rm -f "$depfile" | |||
echo "$object : \\" > "$depfile" | |||
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz | |||
## The second -e expression handles DOS-style file names with drive letters. | |||
sed -e 's/^[^:]*: / /' \ | |||
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" | |||
## This next piece of magic avoids the `deleted header file' problem. | |||
## The problem is that when a header file which appears in a .P file | |||
## is deleted, the dependency causes make to die (because there is | |||
## typically no way to rebuild the header). We avoid this by adding | |||
## dummy dependencies for each header file. Too bad gcc doesn't do | |||
## this for us directly. | |||
tr ' ' ' | |||
' < "$tmpdepfile" | | |||
## Some versions of gcc put a space before the `:'. On the theory | |||
## that the space means something, we add a space to the output as | |||
## well. | |||
## Some versions of the HPUX 10.20 sed can't process this invocation | |||
## correctly. Breaking it into two sed invocations is a workaround. | |||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" | |||
rm -f "$tmpdepfile" | |||
;; | |||
hp) | |||
# This case exists only to let depend.m4 do its work. It works by | |||
# looking at the text of this script. This case will never be run, | |||
# since it is checked for above. | |||
exit 1 | |||
;; | |||
sgi) | |||
if test "$libtool" = yes; then | |||
"$@" "-Wp,-MDupdate,$tmpdepfile" | |||
else | |||
"$@" -MDupdate "$tmpdepfile" | |||
fi | |||
stat=$? | |||
if test $stat -eq 0; then : | |||
else | |||
rm -f "$tmpdepfile" | |||
exit $stat | |||
fi | |||
rm -f "$depfile" | |||
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files | |||
echo "$object : \\" > "$depfile" | |||
# Clip off the initial element (the dependent). Don't try to be | |||
# clever and replace this with sed code, as IRIX sed won't handle | |||
# lines with more than a fixed number of characters (4096 in | |||
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; | |||
# the IRIX cc adds comments like `#:fec' to the end of the | |||
# dependency line. | |||
tr ' ' ' | |||
' < "$tmpdepfile" \ | |||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ | |||
tr ' | |||
' ' ' >> $depfile | |||
echo >> $depfile | |||
# The second pass generates a dummy entry for each header file. | |||
tr ' ' ' | |||
' < "$tmpdepfile" \ | |||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ | |||
>> $depfile | |||
else | |||
# The sourcefile does not contain any dependencies, so just | |||
# store a dummy comment line, to avoid errors with the Makefile | |||
# "include basename.Plo" scheme. | |||
echo "#dummy" > "$depfile" | |||
fi | |||
rm -f "$tmpdepfile" | |||
;; | |||
aix) | |||
# The C for AIX Compiler uses -M and outputs the dependencies | |||
# in a .u file. In older versions, this file always lives in the | |||
# current directory. Also, the AIX compiler puts `$object:' at the | |||
# start of each line; $object doesn't have directory information. | |||
# Version 6 uses the directory in both cases. | |||
stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` | |||
tmpdepfile="$stripped.u" | |||
if test "$libtool" = yes; then | |||
"$@" -Wc,-M | |||
else | |||
"$@" -M | |||
fi | |||
stat=$? | |||
if test -f "$tmpdepfile"; then : | |||
else | |||
stripped=`echo "$stripped" | sed 's,^.*/,,'` | |||
tmpdepfile="$stripped.u" | |||
fi | |||
if test $stat -eq 0; then : | |||
else | |||
rm -f "$tmpdepfile" | |||
exit $stat | |||
fi | |||
if test -f "$tmpdepfile"; then | |||
outname="$stripped.o" | |||
# Each line is of the form `foo.o: dependent.h'. | |||
# Do two passes, one to just change these to | |||
# `$object: dependent.h' and one to simply `dependent.h:'. | |||
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" | |||
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" | |||
else | |||
# The sourcefile does not contain any dependencies, so just | |||
# store a dummy comment line, to avoid errors with the Makefile | |||
# "include basename.Plo" scheme. | |||
echo "#dummy" > "$depfile" | |||
fi | |||
rm -f "$tmpdepfile" | |||
;; | |||
icc) | |||
# Intel's C compiler understands `-MD -MF file'. However on | |||
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c | |||
# ICC 7.0 will fill foo.d with something like | |||
# foo.o: sub/foo.c | |||
# foo.o: sub/foo.h | |||
# which is wrong. We want: | |||
# sub/foo.o: sub/foo.c | |||
# sub/foo.o: sub/foo.h | |||
# sub/foo.c: | |||
# sub/foo.h: | |||
# ICC 7.1 will output | |||
# foo.o: sub/foo.c sub/foo.h | |||
# and will wrap long lines using \ : | |||
# foo.o: sub/foo.c ... \ | |||
# sub/foo.h ... \ | |||
# ... | |||
"$@" -MD -MF "$tmpdepfile" | |||
stat=$? | |||
if test $stat -eq 0; then : | |||
else | |||
rm -f "$tmpdepfile" | |||
exit $stat | |||
fi | |||
rm -f "$depfile" | |||
# Each line is of the form `foo.o: dependent.h', | |||
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. | |||
# Do two passes, one to just change these to | |||
# `$object: dependent.h' and one to simply `dependent.h:'. | |||
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" | |||
# Some versions of the HPUX 10.20 sed can't process this invocation | |||
# correctly. Breaking it into two sed invocations is a workaround. | |||
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | | |||
sed -e 's/$/ :/' >> "$depfile" | |||
rm -f "$tmpdepfile" | |||
;; | |||
tru64) | |||
# The Tru64 compiler uses -MD to generate dependencies as a side | |||
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. | |||
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put | |||
# dependencies in `foo.d' instead, so we check for that too. | |||
# Subdirectories are respected. | |||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` | |||
test "x$dir" = "x$object" && dir= | |||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` | |||
if test "$libtool" = yes; then | |||
# With Tru64 cc, shared objects can also be used to make a | |||
# static library. This mecanism is used in libtool 1.4 series to | |||
# handle both shared and static libraries in a single compilation. | |||
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. | |||
# | |||
# With libtool 1.5 this exception was removed, and libtool now | |||
# generates 2 separate objects for the 2 libraries. These two | |||
# compilations output dependencies in in $dir.libs/$base.o.d and | |||
# in $dir$base.o.d. We have to check for both files, because | |||
# one of the two compilations can be disabled. We should prefer | |||
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is | |||
# automatically cleaned when .libs/ is deleted, while ignoring | |||
# the former would cause a distcleancheck panic. | |||
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 | |||
tmpdepfile2=$dir$base.o.d # libtool 1.5 | |||
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 | |||
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 | |||
"$@" -Wc,-MD | |||
else | |||
tmpdepfile1=$dir$base.o.d | |||
tmpdepfile2=$dir$base.d | |||
tmpdepfile3=$dir$base.d | |||
tmpdepfile4=$dir$base.d | |||
"$@" -MD | |||
fi | |||
stat=$? | |||
if test $stat -eq 0; then : | |||
else | |||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" | |||
exit $stat | |||
fi | |||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" | |||
do | |||
test -f "$tmpdepfile" && break | |||
done | |||
if test -f "$tmpdepfile"; then | |||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" | |||
# That's a tab and a space in the []. | |||
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" | |||
else | |||
echo "#dummy" > "$depfile" | |||
fi | |||
rm -f "$tmpdepfile" | |||
;; | |||
#nosideeffect) | |||
# This comment above is used by automake to tell side-effect | |||
# dependency tracking mechanisms from slower ones. | |||
dashmstdout) | |||
# Important note: in order to support this mode, a compiler *must* | |||
# always write the preprocessed file to stdout, regardless of -o. | |||
"$@" || exit $? | |||
# Remove the call to Libtool. | |||
if test "$libtool" = yes; then | |||
while test $1 != '--mode=compile'; do | |||
shift | |||
done | |||
shift | |||
fi | |||
# Remove `-o $object'. | |||
IFS=" " | |||
for arg | |||
do | |||
case $arg in | |||
-o) | |||
shift | |||
;; | |||
$object) | |||
shift | |||
;; | |||
*) | |||
set fnord "$@" "$arg" | |||
shift # fnord | |||
shift # $arg | |||
;; | |||
esac | |||
done | |||
test -z "$dashmflag" && dashmflag=-M | |||
# Require at least two characters before searching for `:' | |||
# in the target name. This is to cope with DOS-style filenames: | |||
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. | |||
"$@" $dashmflag | | |||
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" | |||
rm -f "$depfile" | |||
cat < "$tmpdepfile" > "$depfile" | |||
tr ' ' ' | |||
' < "$tmpdepfile" | \ | |||
## Some versions of the HPUX 10.20 sed can't process this invocation | |||
## correctly. Breaking it into two sed invocations is a workaround. | |||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" | |||
rm -f "$tmpdepfile" | |||
;; | |||
dashXmstdout) | |||
# This case only exists to satisfy depend.m4. It is never actually | |||
# run, as this mode is specially recognized in the preamble. | |||
exit 1 | |||
;; | |||
makedepend) | |||
"$@" || exit $? | |||
# Remove any Libtool call | |||
if test "$libtool" = yes; then | |||
while test $1 != '--mode=compile'; do | |||
shift | |||
done | |||
shift | |||
fi | |||
# X makedepend | |||
shift | |||
cleared=no | |||
for arg in "$@"; do | |||
case $cleared in | |||
no) | |||
set ""; shift | |||
cleared=yes ;; | |||
esac | |||
case "$arg" in | |||
-D*|-I*) | |||
set fnord "$@" "$arg"; shift ;; | |||
# Strip any option that makedepend may not understand. Remove | |||
# the object too, otherwise makedepend will parse it as a source file. | |||
-*|$object) | |||
;; | |||
*) | |||
set fnord "$@" "$arg"; shift ;; | |||
esac | |||
done | |||
obj_suffix="`echo $object | sed 's/^.*\././'`" | |||
touch "$tmpdepfile" | |||
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" | |||
rm -f "$depfile" | |||
cat < "$tmpdepfile" > "$depfile" | |||
sed '1,2d' "$tmpdepfile" | tr ' ' ' | |||
' | \ | |||
## Some versions of the HPUX 10.20 sed can't process this invocation | |||
## correctly. Breaking it into two sed invocations is a workaround. | |||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" | |||
rm -f "$tmpdepfile" "$tmpdepfile".bak | |||
;; | |||
cpp) | |||
# Important note: in order to support this mode, a compiler *must* | |||
# always write the preprocessed file to stdout. | |||
"$@" || exit $? | |||
# Remove the call to Libtool. | |||
if test "$libtool" = yes; then | |||
while test $1 != '--mode=compile'; do | |||
shift | |||
done | |||
shift | |||
fi | |||
# Remove `-o $object'. | |||
IFS=" " | |||
for arg | |||
do | |||
case $arg in | |||
-o) | |||
shift | |||
;; | |||
$object) | |||
shift | |||
;; | |||
*) | |||
set fnord "$@" "$arg" | |||
shift # fnord | |||
shift # $arg | |||
;; | |||
esac | |||
done | |||
"$@" -E | | |||
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | |||
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | | |||
sed '$ s: \\$::' > "$tmpdepfile" | |||
rm -f "$depfile" | |||
echo "$object : \\" > "$depfile" | |||
cat < "$tmpdepfile" >> "$depfile" | |||
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" | |||
rm -f "$tmpdepfile" | |||
;; | |||
msvisualcpp) | |||
# Important note: in order to support this mode, a compiler *must* | |||
# always write the preprocessed file to stdout, regardless of -o, | |||
# because we must use -o when running libtool. | |||
"$@" || exit $? | |||
IFS=" " | |||
for arg | |||
do | |||
case "$arg" in | |||
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") | |||
set fnord "$@" | |||
shift | |||
shift | |||
;; | |||
*) | |||
set fnord "$@" "$arg" | |||
shift | |||
shift | |||
;; | |||
esac | |||
done | |||
"$@" -E | | |||
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" | |||
rm -f "$depfile" | |||
echo "$object : \\" > "$depfile" | |||
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" | |||
echo " " >> "$depfile" | |||
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" | |||
rm -f "$tmpdepfile" | |||
;; | |||
none) | |||
exec "$@" | |||
;; | |||
*) | |||
echo "Unknown depmode $depmode" 1>&2 | |||
exit 1 | |||
;; | |||
esac | |||
exit 0 | |||
# Local Variables: | |||
# mode: shell-script | |||
# sh-indentation: 2 | |||
# eval: (add-hook 'write-file-hooks 'time-stamp) | |||
# time-stamp-start: "scriptversion=" | |||
# time-stamp-format: "%:y-%02m-%02d.%02H" | |||
# time-stamp-end: "$" | |||
# End: |
@@ -1,323 +0,0 @@ | |||
#!/bin/sh | |||
# install - install a program, script, or datafile | |||
scriptversion=2005-05-14.22 | |||
# This originates from X11R5 (mit/util/scripts/install.sh), which was | |||
# later released in X11R6 (xc/config/util/install.sh) with the | |||
# following copyright and license. | |||
# | |||
# Copyright (C) 1994 X Consortium | |||
# | |||
# Permission is hereby granted, free of charge, to any person obtaining a copy | |||
# of this software and associated documentation files (the "Software"), to | |||
# deal in the Software without restriction, including without limitation the | |||
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or | |||
# sell copies of the Software, and to permit persons to whom the Software is | |||
# furnished to do so, subject to the following conditions: | |||
# | |||
# The above copyright notice and this permission notice shall be included in | |||
# all copies or substantial portions of the Software. | |||
# | |||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN | |||
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- | |||
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
# | |||
# Except as contained in this notice, the name of the X Consortium shall not | |||
# be used in advertising or otherwise to promote the sale, use or other deal- | |||
# ings in this Software without prior written authorization from the X Consor- | |||
# tium. | |||
# | |||
# | |||
# FSF changes to this file are in the public domain. | |||
# | |||
# Calling this script install-sh is preferred over install.sh, to prevent | |||
# `make' implicit rules from creating a file called install from it | |||
# when there is no Makefile. | |||
# | |||
# This script is compatible with the BSD install script, but was written | |||
# from scratch. It can only install one file at a time, a restriction | |||
# shared with many OS's install programs. | |||
# set DOITPROG to echo to test this script | |||
# Don't use :- since 4.3BSD and earlier shells don't like it. | |||
doit="${DOITPROG-}" | |||
# put in absolute paths if you don't have them in your path; or use env. vars. | |||
mvprog="${MVPROG-mv}" | |||
cpprog="${CPPROG-cp}" | |||
chmodprog="${CHMODPROG-chmod}" | |||
chownprog="${CHOWNPROG-chown}" | |||
chgrpprog="${CHGRPPROG-chgrp}" | |||
stripprog="${STRIPPROG-strip}" | |||
rmprog="${RMPROG-rm}" | |||
mkdirprog="${MKDIRPROG-mkdir}" | |||
chmodcmd="$chmodprog 0755" | |||
chowncmd= | |||
chgrpcmd= | |||
stripcmd= | |||
rmcmd="$rmprog -f" | |||
mvcmd="$mvprog" | |||
src= | |||
dst= | |||
dir_arg= | |||
dstarg= | |||
no_target_directory= | |||
usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE | |||
or: $0 [OPTION]... SRCFILES... DIRECTORY | |||
or: $0 [OPTION]... -t DIRECTORY SRCFILES... | |||
or: $0 [OPTION]... -d DIRECTORIES... | |||
In the 1st form, copy SRCFILE to DSTFILE. | |||
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. | |||
In the 4th, create DIRECTORIES. | |||
Options: | |||
-c (ignored) | |||
-d create directories instead of installing files. | |||
-g GROUP $chgrpprog installed files to GROUP. | |||
-m MODE $chmodprog installed files to MODE. | |||
-o USER $chownprog installed files to USER. | |||
-s $stripprog installed files. | |||
-t DIRECTORY install into DIRECTORY. | |||
-T report an error if DSTFILE is a directory. | |||
Environment variables override the default commands: | |||
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG | |||
" | |||
while test -n "$1"; do | |||
case $1 in | |||
-c) shift | |||
continue;; | |||
-d) dir_arg=true | |||
shift | |||
continue;; | |||
-g) chgrpcmd="$chgrpprog $2" | |||
shift | |||
shift | |||
continue;; | |||
--help) echo "$usage"; exit $?;; | |||
-m) chmodcmd="$chmodprog $2" | |||
shift | |||
shift | |||
continue;; | |||
-o) chowncmd="$chownprog $2" | |||
shift | |||
shift | |||
continue;; | |||
-s) stripcmd=$stripprog | |||
shift | |||
continue;; | |||
-t) dstarg=$2 | |||
shift | |||
shift | |||
continue;; | |||
-T) no_target_directory=true | |||
shift | |||
continue;; | |||
--version) echo "$0 $scriptversion"; exit $?;; | |||
*) # When -d is used, all remaining arguments are directories to create. | |||
# When -t is used, the destination is already specified. | |||
test -n "$dir_arg$dstarg" && break | |||
# Otherwise, the last argument is the destination. Remove it from $@. | |||
for arg | |||
do | |||
if test -n "$dstarg"; then | |||
# $@ is not empty: it contains at least $arg. | |||
set fnord "$@" "$dstarg" | |||
shift # fnord | |||
fi | |||
shift # arg | |||
dstarg=$arg | |||
done | |||
break;; | |||
esac | |||
done | |||
if test -z "$1"; then | |||
if test -z "$dir_arg"; then | |||
echo "$0: no input file specified." >&2 | |||
exit 1 | |||
fi | |||
# It's OK to call `install-sh -d' without argument. | |||
# This can happen when creating conditional directories. | |||
exit 0 | |||
fi | |||
for src | |||
do | |||
# Protect names starting with `-'. | |||
case $src in | |||
-*) src=./$src ;; | |||
esac | |||
if test -n "$dir_arg"; then | |||
dst=$src | |||
src= | |||
if test -d "$dst"; then | |||
mkdircmd=: | |||
chmodcmd= | |||
else | |||
mkdircmd=$mkdirprog | |||
fi | |||
else | |||
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command | |||
# might cause directories to be created, which would be especially bad | |||
# if $src (and thus $dsttmp) contains '*'. | |||
if test ! -f "$src" && test ! -d "$src"; then | |||
echo "$0: $src does not exist." >&2 | |||
exit 1 | |||
fi | |||
if test -z "$dstarg"; then | |||
echo "$0: no destination specified." >&2 | |||
exit 1 | |||
fi | |||
dst=$dstarg | |||
# Protect names starting with `-'. | |||
case $dst in | |||
-*) dst=./$dst ;; | |||
esac | |||
# If destination is a directory, append the input filename; won't work | |||
# if double slashes aren't ignored. | |||
if test -d "$dst"; then | |||
if test -n "$no_target_directory"; then | |||
echo "$0: $dstarg: Is a directory" >&2 | |||
exit 1 | |||
fi | |||
dst=$dst/`basename "$src"` | |||
fi | |||
fi | |||
# This sed command emulates the dirname command. | |||
dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` | |||
# Make sure that the destination directory exists. | |||
# Skip lots of stat calls in the usual case. | |||
if test ! -d "$dstdir"; then | |||
defaultIFS=' | |||
' | |||
IFS="${IFS-$defaultIFS}" | |||
oIFS=$IFS | |||
# Some sh's can't handle IFS=/ for some reason. | |||
IFS='%' | |||
set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` | |||
shift | |||
IFS=$oIFS | |||
pathcomp= | |||
while test $# -ne 0 ; do | |||
pathcomp=$pathcomp$1 | |||
shift | |||
if test ! -d "$pathcomp"; then | |||
$mkdirprog "$pathcomp" | |||
# mkdir can fail with a `File exist' error in case several | |||
# install-sh are creating the directory concurrently. This | |||
# is OK. | |||
test -d "$pathcomp" || exit | |||
fi | |||
pathcomp=$pathcomp/ | |||
done | |||
fi | |||
if test -n "$dir_arg"; then | |||
$doit $mkdircmd "$dst" \ | |||
&& { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ | |||
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ | |||
&& { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ | |||
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } | |||
else | |||
dstfile=`basename "$dst"` | |||
# Make a couple of temp file names in the proper directory. | |||
dsttmp=$dstdir/_inst.$$_ | |||
rmtmp=$dstdir/_rm.$$_ | |||
# Trap to clean up those temp files at exit. | |||
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 | |||
trap '(exit $?); exit' 1 2 13 15 | |||
# Copy the file name to the temp name. | |||
$doit $cpprog "$src" "$dsttmp" && | |||
# and set any options; do chmod last to preserve setuid bits. | |||
# | |||
# If any of these fail, we abort the whole thing. If we want to | |||
# ignore errors from any of these, just make sure not to ignore | |||
# errors from the above "$doit $cpprog $src $dsttmp" command. | |||
# | |||
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ | |||
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ | |||
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ | |||
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && | |||
# Now rename the file to the real destination. | |||
{ $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ | |||
|| { | |||
# The rename failed, perhaps because mv can't rename something else | |||
# to itself, or perhaps because mv is so ancient that it does not | |||
# support -f. | |||
# Now remove or move aside any old file at destination location. | |||
# We try this two ways since rm can't unlink itself on some | |||
# systems and the destination file might be busy for other | |||
# reasons. In this case, the final cleanup might fail but the new | |||
# file should still install successfully. | |||
{ | |||
if test -f "$dstdir/$dstfile"; then | |||
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ | |||
|| $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ | |||
|| { | |||
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 | |||
(exit 1); exit 1 | |||
} | |||
else | |||
: | |||
fi | |||
} && | |||
# Now rename the file to the real destination. | |||
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile" | |||
} | |||
} | |||
fi || { (exit 1); exit 1; } | |||
done | |||
# The final little trick to "correctly" pass the exit status to the exit trap. | |||
{ | |||
(exit 0); exit 0 | |||
} | |||
# Local variables: | |||
# eval: (add-hook 'write-file-hooks 'time-stamp) | |||
# time-stamp-start: "scriptversion=" | |||
# time-stamp-format: "%:y-%02m-%02d.%02H" | |||
# time-stamp-end: "$" | |||
# End: |
@@ -1,360 +0,0 @@ | |||
#! /bin/sh | |||
# Common stub for a few missing GNU programs while installing. | |||
scriptversion=2005-06-08.21 | |||
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 | |||
# Free Software Foundation, Inc. | |||
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. | |||
# This program is free software; you can redistribute it and/or modify | |||
# it under the terms of the GNU General Public License as published by | |||
# the Free Software Foundation; either version 2, or (at your option) | |||
# any later version. | |||
# This program is distributed in the hope that it will be useful, | |||
# but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
# GNU General Public License for more details. | |||
# You should have received a copy of the GNU General Public License | |||
# along with this program; if not, write to the Free Software | |||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | |||
# 02110-1301, USA. | |||
# As a special exception to the GNU General Public License, if you | |||
# distribute this file as part of a program that contains a | |||
# configuration script generated by Autoconf, you may include it under | |||
# the same distribution terms that you use for the rest of that program. | |||
if test $# -eq 0; then | |||
echo 1>&2 "Try \`$0 --help' for more information" | |||
exit 1 | |||
fi | |||
run=: | |||
# In the cases where this matters, `missing' is being run in the | |||
# srcdir already. | |||
if test -f configure.ac; then | |||
configure_ac=configure.ac | |||
else | |||
configure_ac=configure.in | |||
fi | |||
msg="missing on your system" | |||
case "$1" in | |||
# Try to run requested program, and just exit if it succeeds. | |||
run= | |||
shift | |||
"$@" && exit 0 | |||
# Exit code 63 means version mismatch. This often happens | |||
# when the user try to use an ancient version of a tool on | |||
# a file that requires a minimum version. In this case we | |||
# we should proceed has if the program had been absent, or | |||
# if --run hadn't been passed. | |||
if test $? = 63; then | |||
run=: | |||
msg="probably too old" | |||
fi | |||
;; | |||
-h|--h|--he|--hel|--help) | |||
echo "\ | |||
$0 [OPTION]... PROGRAM [ARGUMENT]... | |||
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an | |||
error status if there is no known handling for PROGRAM. | |||
Options: | |||
-h, --help display this help and exit | |||
-v, --version output version information and exit | |||
--run try to run the given command, and emulate it if it fails | |||
Supported PROGRAM values: | |||
aclocal touch file \`aclocal.m4' | |||
autoconf touch file \`configure' | |||
autoheader touch file \`config.h.in' | |||
automake touch all \`Makefile.in' files | |||
bison create \`y.tab.[ch]', if possible, from existing .[ch] | |||
flex create \`lex.yy.c', if possible, from existing .c | |||
help2man touch the output file | |||
lex create \`lex.yy.c', if possible, from existing .c | |||
makeinfo touch the output file | |||
tar try tar, gnutar, gtar, then tar without non-portable flags | |||
yacc create \`y.tab.[ch]', if possible, from existing .[ch] | |||
Send bug reports to <bug-automake@gnu.org>." | |||
exit $? | |||
;; | |||
-v|--v|--ve|--ver|--vers|--versi|--versio|--version) | |||
echo "missing $scriptversion (GNU Automake)" | |||
exit $? | |||
;; | |||
-*) | |||
echo 1>&2 "$0: Unknown \`$1' option" | |||
echo 1>&2 "Try \`$0 --help' for more information" | |||
exit 1 | |||
;; | |||
esac | |||
# Now exit if we have it, but it failed. Also exit now if we | |||
# don't have it and --version was passed (most likely to detect | |||
# the program). | |||
case "$1" in | |||
lex|yacc) | |||
# Not GNU programs, they don't have --version. | |||
;; | |||
tar) | |||
if test -n "$run"; then | |||
echo 1>&2 "ERROR: \`tar' requires --run" | |||
exit 1 | |||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then | |||
exit 1 | |||
fi | |||
;; | |||
*) | |||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then | |||
# We have it, but it failed. | |||
exit 1 | |||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then | |||
# Could not run --version or --help. This is probably someone | |||
# running `$TOOL --version' or `$TOOL --help' to check whether | |||
# $TOOL exists and not knowing $TOOL uses missing. | |||
exit 1 | |||
fi | |||
;; | |||
esac | |||
# If it does not exist, or fails to run (possibly an outdated version), | |||
# try to emulate it. | |||
case "$1" in | |||
aclocal*) | |||
echo 1>&2 "\ | |||
WARNING: \`$1' is $msg. You should only need it if | |||
you modified \`acinclude.m4' or \`${configure_ac}'. You might want | |||
to install the \`Automake' and \`Perl' packages. Grab them from | |||
any GNU archive site." | |||
touch aclocal.m4 | |||
;; | |||
autoconf) | |||
echo 1>&2 "\ | |||
WARNING: \`$1' is $msg. You should only need it if | |||
you modified \`${configure_ac}'. You might want to install the | |||
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU | |||
archive site." | |||
touch configure | |||
;; | |||
autoheader) | |||
echo 1>&2 "\ | |||
WARNING: \`$1' is $msg. You should only need it if | |||
you modified \`acconfig.h' or \`${configure_ac}'. You might want | |||
to install the \`Autoconf' and \`GNU m4' packages. Grab them | |||
from any GNU archive site." | |||
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` | |||
test -z "$files" && files="config.h" | |||
touch_files= | |||
for f in $files; do | |||
case "$f" in | |||
*:*) touch_files="$touch_files "`echo "$f" | | |||
sed -e 's/^[^:]*://' -e 's/:.*//'`;; | |||
*) touch_files="$touch_files $f.in";; | |||
esac | |||
done | |||
touch $touch_files | |||
;; | |||
automake*) | |||
echo 1>&2 "\ | |||
WARNING: \`$1' is $msg. You should only need it if | |||
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. | |||
You might want to install the \`Automake' and \`Perl' packages. | |||
Grab them from any GNU archive site." | |||
find . -type f -name Makefile.am -print | | |||
sed 's/\.am$/.in/' | | |||
while read f; do touch "$f"; done | |||
;; | |||
autom4te) | |||
echo 1>&2 "\ | |||
WARNING: \`$1' is needed, but is $msg. | |||
You might have modified some files without having the | |||
proper tools for further handling them. | |||
You can get \`$1' as part of \`Autoconf' from any GNU | |||
archive site." | |||
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` | |||
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` | |||
if test -f "$file"; then | |||
touch $file | |||
else | |||
test -z "$file" || exec >$file | |||
echo "#! /bin/sh" | |||
echo "# Created by GNU Automake missing as a replacement of" | |||
echo "# $ $@" | |||
echo "exit 0" | |||
chmod +x $file | |||
exit 1 | |||
fi | |||
;; | |||
bison|yacc) | |||
echo 1>&2 "\ | |||
WARNING: \`$1' $msg. You should only need it if | |||
you modified a \`.y' file. You may need the \`Bison' package | |||
in order for those modifications to take effect. You can get | |||
\`Bison' from any GNU archive site." | |||
rm -f y.tab.c y.tab.h | |||
if [ $# -ne 1 ]; then | |||
eval LASTARG="\${$#}" | |||
case "$LASTARG" in | |||
*.y) | |||
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` | |||
if [ -f "$SRCFILE" ]; then | |||
cp "$SRCFILE" y.tab.c | |||
fi | |||
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` | |||
if [ -f "$SRCFILE" ]; then | |||
cp "$SRCFILE" y.tab.h | |||
fi | |||
;; | |||
esac | |||
fi | |||
if [ ! -f y.tab.h ]; then | |||
echo >y.tab.h | |||
fi | |||
if [ ! -f y.tab.c ]; then | |||
echo 'main() { return 0; }' >y.tab.c | |||
fi | |||
;; | |||
lex|flex) | |||
echo 1>&2 "\ | |||
WARNING: \`$1' is $msg. You should only need it if | |||
you modified a \`.l' file. You may need the \`Flex' package | |||
in order for those modifications to take effect. You can get | |||
\`Flex' from any GNU archive site." | |||
rm -f lex.yy.c | |||
if [ $# -ne 1 ]; then | |||
eval LASTARG="\${$#}" | |||
case "$LASTARG" in | |||
*.l) | |||
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` | |||
if [ -f "$SRCFILE" ]; then | |||
cp "$SRCFILE" lex.yy.c | |||
fi | |||
;; | |||
esac | |||
fi | |||
if [ ! -f lex.yy.c ]; then | |||
echo 'main() { return 0; }' >lex.yy.c | |||
fi | |||
;; | |||
help2man) | |||
echo 1>&2 "\ | |||
WARNING: \`$1' is $msg. You should only need it if | |||
you modified a dependency of a manual page. You may need the | |||
\`Help2man' package in order for those modifications to take | |||
effect. You can get \`Help2man' from any GNU archive site." | |||
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` | |||
if test -z "$file"; then | |||
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` | |||
fi | |||
if [ -f "$file" ]; then | |||
touch $file | |||
else | |||
test -z "$file" || exec >$file | |||
echo ".ab help2man is required to generate this page" | |||
exit 1 | |||
fi | |||
;; | |||
makeinfo) | |||
echo 1>&2 "\ | |||
WARNING: \`$1' is $msg. You should only need it if | |||
you modified a \`.texi' or \`.texinfo' file, or any other file | |||
indirectly affecting the aspect of the manual. The spurious | |||
call might also be the consequence of using a buggy \`make' (AIX, | |||
DU, IRIX). You might want to install the \`Texinfo' package or | |||
the \`GNU make' package. Grab either from any GNU archive site." | |||
# The file to touch is that specified with -o ... | |||
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` | |||
if test -z "$file"; then | |||
# ... or it is the one specified with @setfilename ... | |||
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` | |||
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` | |||
# ... or it is derived from the source name (dir/f.texi becomes f.info) | |||
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info | |||
fi | |||
# If the file does not exist, the user really needs makeinfo; | |||
# let's fail without touching anything. | |||
test -f $file || exit 1 | |||
touch $file | |||
;; | |||
tar) | |||
shift | |||
# We have already tried tar in the generic part. | |||
# Look for gnutar/gtar before invocation to avoid ugly error | |||
# messages. | |||
if (gnutar --version > /dev/null 2>&1); then | |||
gnutar "$@" && exit 0 | |||
fi | |||
if (gtar --version > /dev/null 2>&1); then | |||
gtar "$@" && exit 0 | |||
fi | |||
firstarg="$1" | |||
if shift; then | |||
case "$firstarg" in | |||
*o*) | |||
firstarg=`echo "$firstarg" | sed s/o//` | |||
tar "$firstarg" "$@" && exit 0 | |||
;; | |||
esac | |||
case "$firstarg" in | |||
*h*) | |||
firstarg=`echo "$firstarg" | sed s/h//` | |||
tar "$firstarg" "$@" && exit 0 | |||
;; | |||
esac | |||
fi | |||
echo 1>&2 "\ | |||
WARNING: I can't seem to be able to run \`tar' with the given arguments. | |||
You may want to install GNU tar or Free paxutils, or check the | |||
command line arguments." | |||
exit 1 | |||
;; | |||
*) | |||
echo 1>&2 "\ | |||
WARNING: \`$1' is needed, and is $msg. | |||
You might have modified some files without having the | |||
proper tools for further handling them. Check the \`README' file, | |||
it often tells you about the needed prerequisites for installing | |||
this package. You may also peek at any GNU archive site, in case | |||
some other package would contain this missing \`$1' program." | |||
exit 1 | |||
;; | |||
esac | |||
exit 0 | |||
# Local variables: | |||
# eval: (add-hook 'write-file-hooks 'time-stamp) | |||
# time-stamp-start: "scriptversion=" | |||
# time-stamp-format: "%:y-%02m-%02d.%02H" | |||
# time-stamp-end: "$" | |||
# End: |