coreutils' Makefiles are currently created using
automake-1.9.6 and autoconf-2.59c

There are some very long lines in the Makefiles generated
for upcoming coreutils-5.90.  Here's an example:

  LIBOBJS =  ${LIBOBJDIR}backupfile$U.o ${LIBOBJDIR}basename$U.o ...

The LTLIBOBJS definition had the same problem,
and I see that am__DEPENDENCIES_1 is also very long.

  $ grep -E '^.{2000}' */Makefile|sed 's/=.*/=/'
  doc/Makefile:LIBOBJS =
  doc/Makefile:LTLIBOBJS =
  lib/Makefile:am__DEPENDENCIES_1 =
  lib/Makefile:LIBOBJS =
  lib/Makefile:LTLIBOBJS =
  man/Makefile:LIBOBJS =
  man/Makefile:LTLIBOBJS =
  src/Makefile:LIBOBJS =
  src/Makefile:LTLIBOBJS =
  tests/Makefile:LIBOBJS =
  tests/Makefile:LTLIBOBJS =

Not only will this cause trouble with non-GNU Make programs,
but the scripts in config.status that perform the s/@LIBOBJS@/.../
substitution may be too long for some non-GNU versions of sed.

Note that this is *not* a problem with automake.
The Makefile.in files are all fine.  In Makefile.in,
the lines look like these:

  LIBOBJS = @LIBOBJS@
  LTLIBOBJS = @LTLIBOBJS@
  am__DEPENDENCIES_1 = @LIBOBJS@

Of course, we can suggest that people use GNU sed and GNU make,
and that will work -- assuming they never end up with so many
lib/*.c files that this problem afflicts one of them, too.
That would be a problem.


Reply via email to