This is the mail archive of the
automake@gnu.org
mailing list for the automake project.
Re: Automake Bug?
On Sun, Aug 27, 2000 at 04:50:32AM -0300, Alexandre Oliva wrote:
>
> AFAIK, POSIX-compliant implementations of `make' should pass down to
> sub-makes any variables set in the command-line of the top-level make.
> GNU make, for example, does this, so DESTDIR works as expected.
That's kinda what I thought it should do, but it was too late for me
to spend an hour digging around the info to find out. However, DESTDIR
/doesn't/ work in this particular case (and, I think, in several other
GNU package). And indeed, I am using GNU make:
GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.
I was using 3.77, so I updated. Still doesn't work. DESTDIR gets passed
down to the Makefile in intl and several other subdirs, but not to src
and doc. Attached is the output of 'make -n DESTDIR=/FOO install'.
Wil
--
W. Reilly Cooley wcooley@nakedape.cc
Naked Ape Consulting http://nakedape.cc
LNXS: Linux/GNU for servers, networks, and http://lnxs.org
people who take care of them. *Now with integrated crypto!*
irc.openprojects.net #lnxs
Mencken and Nathan's Fifteenth Law of The Average American:
The worst actress in the company is always the manager's wife.
set fnord n -- DESTDIR=/FOO; amf=$2; \
dot_seen=no; \
target=`echo install-recursive | sed s/-recursive//`; \
list='intl po doc src tests djgpp m4 vms bootstrap'; for subdir in $list; do \
echo "Making $target in $subdir"; \
if test "$subdir" = "."; then \
dot_seen=yes; \
local_target="$target-am"; \
else \
local_target="$target"; \
fi; \
(cd $subdir && make $local_target) \
|| case "$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done; \
if test "$dot_seen" = "no"; then \
make "$target-am" || exit 1; \
fi; test -z "$fail"
Making install in intl
make[1]: Entering directory `/usr/src/bos/bin/grep/intl'
if test "grep" = "gettext" \
&& test '' = 'intl-compat.o'; then \
if test -r ./mkinstalldirs; then \
./mkinstalldirs /FOO//lib /FOO//usr/include; \
else \
../mkinstalldirs /FOO//lib /FOO//usr/include; \
fi; \
/usr/bin/ginstall -c -m 644 intlh.inst /FOO//usr/include/libintl.h; \
/usr/bin/ginstall -c -m 644 libintl.a /FOO//lib/libintl.a; \
else \
: ; \
fi
if test "grep" = "gettext"; then \
if test -r ./mkinstalldirs; then \
./mkinstalldirs /FOO//usr/share/gettext/intl; \
else \
../mkinstalldirs /FOO//usr/share/gettext/intl; \
fi; \
/usr/bin/ginstall -c -m 644 VERSION /FOO//usr/share/gettext/intl/VERSION; \
dists="ChangeLog Makefile.in linux-msg.sed po2tbl.sed.in xopen-msg.sed gettext.h gettextP.h hash-string.h libgettext.h loadinfo.h bindtextdom.c dcgettext.c dgettext.c gettext.c finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c explodename.c intl-compat.c cat-compat.c"; \
for file in $dists; do \
/usr/bin/ginstall -c -m 644 ./$file /FOO//usr/share/gettext/intl/$file; \
done; \
else \
: ; \
fi
make[1]: Leaving directory `/usr/src/bos/bin/grep/intl'
Making install in po
make[1]: Entering directory `/usr/src/bos/bin/grep/po'
PATH=../src:$PATH : --default-domain=grep --directory=.. \
--add-comments --keyword=_ --keyword=N_ \
--files-from=./POTFILES.in \
&& test ! -f grep.po \
|| ( rm -f ./grep.pot \
&& mv grep.po ./grep.pot )
rm -f cat-id-tbl.tmp
sed -f ../intl/po2tbl.sed ./grep.pot \
| sed -e "s/@PACKAGE NAME@/grep/" > cat-id-tbl.tmp
if cmp -s cat-id-tbl.tmp ./cat-id-tbl.c; then \
rm cat-id-tbl.tmp; \
else \
echo cat-id-tbl.c changed; \
rm -f ./cat-id-tbl.c; \
mv cat-id-tbl.tmp ./cat-id-tbl.c; \
fi
cd . && rm -f stamp-cat-id && echo timestamp > stamp-cat-id
:
if test -r ".././mkinstalldirs"; then \
.././mkinstalldirs /FOO//usr/share; \
else \
/bin/sh ../mkinstalldirs /FOO//usr/share; \
fi
catalogs='de.gmo es.gmo el.gmo fr.gmo ko.gmo nl.gmo no.gmo pl.gmo pt_BR.gmo ru.gmo sl.gmo sv.gmo'; \
for cat in $catalogs; do \
cat=`basename $cat`; \
case "$cat" in \
*.gmo) destdir=/FOO//usr/share/locale;; \
*) destdir=/FOO//usr/share/locale;; \
esac; \
lang=`echo $cat | sed 's/\.gmo$//'`; \
dir=$destdir/$lang/LC_MESSAGES; \
if test -r ".././mkinstalldirs"; then \
.././mkinstalldirs /FOO$dir; \
else \
/bin/sh ../mkinstalldirs /FOO$dir; \
fi; \
if test -r $cat; then \
/usr/bin/ginstall -c -m 644 $cat /FOO$dir/grep.mo; \
echo "installing $cat as /FOO$dir/grep.mo"; \
else \
/usr/bin/ginstall -c -m 644 ./$cat /FOO$dir/grep.mo; \
echo "installing ./$cat as" \
"/FOO$dir/grep.mo"; \
fi; \
if test -r $cat.m; then \
/usr/bin/ginstall -c -m 644 $cat.m /FOO$dir/grep.mo.m; \
echo "installing $cat.m as /FOO$dir/grep.mo.m"; \
else \
if test -r ./$cat.m ; then \
/usr/bin/ginstall -c -m 644 ./$cat.m \
/FOO$dir/grep.mo.m; \
echo "installing ./$cat as" \
"/FOO$dir/grep.mo.m"; \
else \
true; \
fi; \
fi; \
done
if test "grep" = "gettext"; then \
if test -r ".././mkinstalldirs"; then \
.././mkinstalldirs /FOO//usr/share/gettext/po; \
else \
/bin/sh ../mkinstalldirs /FOO//usr/share/gettext/po; \
fi; \
/usr/bin/ginstall -c -m 644 ./Makefile.in.in \
/FOO//usr/share/gettext/po/Makefile.in.in; \
else \
: ; \
fi
make[1]: Leaving directory `/usr/src/bos/bin/grep/po'
Making install in doc
make[1]: Entering directory `/usr/src/bos/bin/grep/doc'
make install-exec-am install-data-am
make[2]: Entering directory `/usr/src/bos/bin/grep/doc'
make[2]: Nothing to be done for `install-exec-am'.
:
/bin/sh ../mkinstalldirs /FOO//usr/share/info
list='grep.info'; \
for file in $list; do \
d=.; \
for ifile in `cd $d && echo $file $file-[0-9] $file-[0-9][0-9]`; do \
if test -f $d/$ifile; then \
echo " /usr/bin/ginstall -c -m 644 $d/$ifile /FOO//usr/share/info/$ifile"; \
/usr/bin/ginstall -c -m 644 $d/$ifile /FOO//usr/share/info/$ifile; \
else : ; fi; \
done; \
done
:
if /bin/sh -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
list='grep.info'; \
for file in $list; do \
echo " install-info --info-dir=/FOO//usr/share/info /FOO//usr/share/info/$file";\
install-info --info-dir=/FOO//usr/share/info /FOO//usr/share/info/$file || :;\
done; \
else : ; fi
:
make install-man1
make[3]: Entering directory `/usr/src/bos/bin/grep/doc'
/bin/sh ../mkinstalldirs /FOO//usr/share/man/man1
list=''; \
l2='grep.1 fgrep.1 egrep.1'; for i in $l2; do \
case "$i" in \
*.1*) list="$list $i" ;; \
esac; \
done; \
for i in $list; do \
if test -f ./$i; then file=./$i; \
else file=$i; fi; \
ext=`echo $i | sed -e 's/^.*\\.//'`; \
inst=`echo $i | sed -e 's/\\.[0-9a-z]*$//'`; \
inst=`echo $inst | sed 's,x,x,'`.$ext; \
echo " /usr/bin/ginstall -c -m 644 $file /FOO//usr/share/man/man1/$inst"; \
/usr/bin/ginstall -c -m 644 $file /FOO//usr/share/man/man1/$inst; \
done
make[3]: Leaving directory `/usr/src/bos/bin/grep/doc'
make[2]: Leaving directory `/usr/src/bos/bin/grep/doc'
make[1]: Leaving directory `/usr/src/bos/bin/grep/doc'
Making install in src
make[1]: Entering directory `/usr/src/bos/bin/grep/src'
make install-exec-am install-data-am
make[2]: Entering directory `/usr/src/bos/bin/grep/src'
:
/bin/sh ../mkinstalldirs /FOO//bin
list='grep egrep fgrep'; for p in $list; do \
if test -f $p; then \
echo " /usr/bin/ginstall -c $p /FOO//bin/`echo $p|sed 's/$//'|sed 's,x,x,'|sed 's/$//'`"; \
/usr/bin/ginstall -c $p /FOO//bin/`echo $p|sed 's/$//'|sed 's,x,x,'|sed 's/$//'`; \
else :; fi; \
done
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/usr/src/bos/bin/grep/src'
make[1]: Leaving directory `/usr/src/bos/bin/grep/src'
Making install in tests
make[1]: Entering directory `/usr/src/bos/bin/grep/tests'
make install-exec-am install-data-am
make[2]: Entering directory `/usr/src/bos/bin/grep/tests'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/usr/src/bos/bin/grep/tests'
make[1]: Leaving directory `/usr/src/bos/bin/grep/tests'
Making install in djgpp
make[1]: Entering directory `/usr/src/bos/bin/grep/djgpp'
make install-exec-am install-data-am
make[2]: Entering directory `/usr/src/bos/bin/grep/djgpp'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/usr/src/bos/bin/grep/djgpp'
make[1]: Leaving directory `/usr/src/bos/bin/grep/djgpp'
Making install in m4
make[1]: Entering directory `/usr/src/bos/bin/grep/m4'
make install-exec-am install-data-am
make[2]: Entering directory `/usr/src/bos/bin/grep/m4'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/usr/src/bos/bin/grep/m4'
make[1]: Leaving directory `/usr/src/bos/bin/grep/m4'
Making install in vms
make[1]: Entering directory `/usr/src/bos/bin/grep/vms'
make install-exec-am install-data-am
make[2]: Entering directory `/usr/src/bos/bin/grep/vms'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/usr/src/bos/bin/grep/vms'
make[1]: Leaving directory `/usr/src/bos/bin/grep/vms'
Making install in bootstrap
make[1]: Entering directory `/usr/src/bos/bin/grep/bootstrap'
make install-exec-am install-data-am
make[2]: Entering directory `/usr/src/bos/bin/grep/bootstrap'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/usr/src/bos/bin/grep/bootstrap'
make[1]: Leaving directory `/usr/src/bos/bin/grep/bootstrap'
make[1]: Entering directory `/usr/src/bos/bin/grep'
if test ! -f config.hin; then \
rm -f ./stamp-h.in; \
make ./stamp-h.in; \
else :; fi
if test ! -f config.h; then \
rm -f stamp-h; \
make stamp-h; \
else :; fi
make install-exec-am install-data-am
make[2]: Entering directory `/usr/src/bos/bin/grep'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/usr/src/bos/bin/grep'
make[1]: Leaving directory `/usr/src/bos/bin/grep'