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 [EMAIL PROTECTED] 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'