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'

Reply via email to