This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Tonight's snapshot


   From: Geoff Keating <geoffk@ozemail.com.au>
   Date: 16 Jul 1999 12:56:38 +1000

   It's caused by libiberty/Makefile.in defining MAKEOVERRIDES:

   Thu Mar 25 15:17:23 1993  Ian Lance Taylor  (ian@cygnus.com)

	   * Makefile.in (MAKEOVERRIDES): Define to be empty.

   This prevents prefix= being passed down to sub-makefiles.

   I don't suppose anyone remembers _why_ this was done?

Yes, I remember.

Not all versions of make pass down command line arguments.  Therefore,
for portability, Makefiles like libiberty/Makefile.in pass down all
necessary make arguments themselves.  That is the purpose of the
FLAGS_TO_PASS variable found in many Makefile.in files.  For some
reason prefix and exec_prefix have been left out of FLAGS_TO_PASS in
libiberty/Makefile.in; they should be added.  (This was quite possibly
a bug I introduced while converting libiberty to use autoconf; before
that change it may not have mattered whether the Makefile passed down
prefix and exec_prefix).

Once a Makefile is using FLAGS_TO_PASS, it is no longer necessary to
have GNU make pass down the arguments as well.  Some systems, such as
old versions of SCO Unix, have a very small value of ARG_SIZE.  On
those systems, given the large number of variables passed down from
the top level Makefile.in, GNU make happily uses up all the available
space and the exec of the sub-make fails.  Explicitly setting
MAKEOVERRIDES avoids this problem.

Incidentally, automake by default assumes that you are using a make
which does pass down all arguments.  When using automake one can
either go along with this assumption, or one can use AM_MAKEFLAGS
which again permits clearing MAKEOVERRIDES.

Ian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]