GNU bug report logs -
#19579
Long lines, short awk
Previous Next
Reported by: "Daniel Richard G." <skunk <at> iSKUNK.ORG>
Date: Tue, 13 Jan 2015 06:03:01 UTC
Severity: normal
Tags: moreinfo
Done: Mike Frysinger <vapier <at> gentoo.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Hello list,
I am building a source package, prepared with Automake 1.15, on HP-UX.
While running the configure script, I get
[...]
config.status: creating include/Makefile
config.status: creating scripts/Makefile
config.status: creating src/Makefile
config.status: creating src/lib/Makefile
awk: Input line -rm -rf ../../src/l cannot be longer than 3,000 bytes.
The input line number is 21137.
The source line number is 235.
config.status: error: could not create src/lib/Makefile
It so happens that src/lib/Makefile covers a large number of source
files, spread out across many directories. Line 21137 of Makefile.in is
the "-rm -rf" line shown below:
distclean: distclean-am
-rm -rf ../../src/lib/libobj/$(DEPDIR) foo/bar/$(DEPDIR) foo/baz/$(DEPDIR) ...
The line includes every single subdir-objects subdirectory known to the
makefile, and is well over 15kB long. The maintainer-clean target also
has an identical line.
I recognize that the usual thing to do here is specify e.g. AWK=gawk,
but other sections of the makefile (e.g. clean-libtool target) avoid
this issue altogether by specifying a series of short "rm" commands
instead of a single giant invocation. (Moreover, even if $AWK didn't
have a line-length limitation, the shell could still balk with an
"Argument list too long" error.) IMO, it is better to have the distclean
and maintainer-clean targets follow this same approach.
--Daniel
--
Daniel Richard G. || skunk <at> iSKUNK.ORG
My ASCII-art .sig got a bad case of Times New Roman.
This bug report was last modified 3 years and 148 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.