* Ralf Wildenhues wrote on Wed, Jul 06, 2005 at 07:05:01PM CEST:
> * Juergen Leising wrote on Wed, Jul 06, 2005 at 09:03:49AM CEST:
> >
> > The following error message appears due to a bug in
> > func_mode_install ():
> >
> > /bin/sh ../../../libtool --mode=install cp -f 'libeic.la'
> > '/usr/local/lib/bastard/libeic.la'
> > libtool: install: you must specify a destination
> > libtool: install: Try `libtool --help --mode=install' for more
> > information.
> Proposed patch (against HEAD, similar for backport):
I have installed this slightly simpler patch, which also allows
backslash as directory separator, to all branches. I decided to ignore
the slight chance of misparse that may ensue with a group named `cp':
install -g cp ...
Cheers,
Ralf
HEAD/branch-2-0:
* config/ltmain.m4sh (func_mode_install): Do not assume `-f'
needs an argument if the install program is `cp'. Cleanup
install mode somewhat.
Reported by Juergen Leising <[EMAIL PROTECTED]>.
Index: config/ltmain.m4sh
===
RCS file: /cvsroot/libtool/libtool/config/ltmain.m4sh,v
retrieving revision 1.72
diff -u -r1.72 ltmain.m4sh
--- config/ltmain.m4sh 3 Jul 2005 16:55:50 - 1.72
+++ config/ltmain.m4sh 8 Jul 2005 13:41:32 -
@@ -1685,15 +1685,15 @@
# install_prog (especially on Windows NT).
if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
# Allow the use of GNU shtool's install command.
- $ECHO "X$nonopt" | $Xsed | $GREP shtool > /dev/null; then
+ $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
# Aesthetically quote it.
func_quote_for_eval "$nonopt"
install_prog="$func_quote_for_eval_result "
- arg="$1"
+ arg=$1
shift
else
install_prog=
- arg="$nonopt"
+ arg=$nonopt
fi
# The real first argument should be the name of the installation program.
@@ -1713,28 +1713,33 @@
do
if test -n "$dest"; then
files="$files $dest"
- dest="$arg"
+ dest=$arg
continue
fi
case $arg in
-d) isdir=yes ;;
- -f) prev="-f" ;;
- -g) prev="-g" ;;
- -m) prev="-m" ;;
- -o) prev="-o" ;;
+ -f)
+ case " $install_prog " in
+ *[[\\\ /]]cp\ *) ;;
+ *) prev=$arg ;;
+ esac
+ ;;
+ -g | -m | -o)
+ prev=$arg
+ ;;
-s)
stripme=" -s"
continue
;;
- -*) ;;
-
+ -*)
+ ;;
*)
# If the previous option needed an argument, then skip it.
if test -n "$prev"; then
prev=
else
- dest="$arg"
+ dest=$arg
continue
fi
;;
branch-1-5:
* ltmain.in (install mode): Do not assume `-f' needs an argument if
the install program is `cp'. Cleanup install mode somewhat.
Reported by Juergen Leising <[EMAIL PROTECTED]>.
Index: ltmain.in
===
RCS file: /cvsroot/libtool/libtool/Attic/ltmain.in,v
retrieving revision 1.334.2.76
diff -u -r1.334.2.76 ltmain.in
--- ltmain.in 3 Jul 2005 16:57:34 - 1.334.2.76
+++ ltmain.in 8 Jul 2005 13:42:26 -
@@ -5361,7 +5361,7 @@
# install_prog (especially on Windows NT).
if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
# Allow the use of GNU shtool's install command.
- $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
+ $echo "X$nonopt" | grep shtool > /dev/null; then
# Aesthetically quote it.
arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
case $arg in
@@ -5374,7 +5374,7 @@
shift
else
install_prog=
- arg="$nonopt"
+ arg=$nonopt
fi
# The real first argument should be the name of the installation program.
@@ -5399,28 +5399,31 @@
do
if test -n "$dest"; then
files="$files $dest"
- dest="$arg"
+ dest=$arg
continue
fi
case $arg in
-d) isdir=yes ;;
- -f) prev="-f" ;;
- -g) prev="-g" ;;
- -m) prev="-m" ;;
- -o) prev="-o" ;;
+ -f)
+ case " $install_prog " in
+ *[\\\ /]cp\ *) ;;
+ *) prev=$arg ;;
+ esac
+ ;;
+ -g | -m | -o) prev=$arg ;;
-s)
stripme=" -s"
continue
;;
- -*) ;;
-
+ -*)
+ ;;
*)
# If the previous option needed an argument, then skip it.
if test -n "$prev"; then
prev=
else
- dest="$arg"
+ dest=$arg
continue
fi
;;