[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Warning! autoconf can generate very long lines in Makefiles
From: |
Jim Meyering |
Subject: |
Warning! autoconf can generate very long lines in Makefiles |
Date: |
Thu, 29 Sep 2005 14:22:00 +0200 |
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.
- Warning! autoconf can generate very long lines in Makefiles,
Jim Meyering <=