From: Alexandre Duret-Lutz Date: Wed, 21 Apr 2004 08:23:18 +0000 (+0000) Subject: * doc/autoconf.texi (Limitations of Make): Update documentation X-Git-Tag: AUTOCONF-2.59c~710 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d8d1f67499e329cfcd038c7aab2cbf1938b250ef;p=thirdparty%2Fautoconf.git * doc/autoconf.texi (Limitations of Make): Update documentation for `$<'. New entry `Long lines', based on a report from Simon Josefsson. Augment the documentation for SHELL = @SHELL@ with a paragraph about DJGPP, based on a mail from Richard Dawe. --- diff --git a/ChangeLog b/ChangeLog index 1372b0509..141b54135 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2004-04-21 Alexandre Duret-Lutz + + * doc/autoconf.texi (Limitations of Make): Update documentation + for `$<'. New entry `Long lines', based on a report from Simon + Josefsson. Augment the documentation for SHELL = @SHELL@ with a + paragraph about DJGPP, based on a mail from Richard Dawe. + 2004-04-20 Paul Eggert * tests/c.at (C keywords): Don't assume that GCC supports diff --git a/doc/autoconf.texi b/doc/autoconf.texi index 09a7bfaca..fb9b83422 100644 --- a/doc/autoconf.texi +++ b/doc/autoconf.texi @@ -11602,10 +11602,11 @@ are executed by the shell, all its weaknesses are inherited@enddots{} @table @asis @item @code{$<} -@acronym{POSIX} says that the @samp{$<} construct in makefiles can be used -only in inference rules and in the @samp{.DEFAULT} rule; its meaning in -ordinary rules is unspecified. Solaris 8's @command{make} for instance -will replace it with the argument. +@acronym{POSIX} says that the @samp{$<} construct in makefiles can be +used only in inference rules and in the @samp{.DEFAULT} rule; its +meaning in ordinary rules is unspecified. Solaris 8's @command{make} +for instance will replace it with the empty string. OpenBSD (3.0 and +later) @command{make} will diagnose these uses and error out. @item Leading underscore in macro names Some @command{make}s don't support leading underscores in macro names, @@ -11687,6 +11688,13 @@ line with @code{#}, not only the first. # baz @end example +@item Long lines. + +OSF/1 4.0d's @command{make} cannot process @file{Makefile}s with lines +longer than 38912 bytes. It exits with a @code{Line too long} +diagnostic. A later version, Tru64 5.1's @command{make} has been +reported to crash with lines around 20KB. + @item @code{make macro=value} and sub-@command{make}s. A command-line variable definition such as @code{foo=bar} overrides any @@ -11774,6 +11782,14 @@ your @file{Makefile}s. If you use Autoconf, do SHELL = @@SHELL@@ @end example +Do not force @code{SHELL = /bin/sh} because that is not correct +everywhere. For instance there is no @code{/bin/sh} in DJGPP, and when +its GNU @code{make} port sees such a setting it enters a special +emulation mode where features like pipes and redirections are emulated +on top of DOS's @command{command.com}. Unfortunately this emulation is +incomplete; for instance it does not handle command substitutions. +On DJGPP @code{SHELL} should point the port of Bash. + @acronym{POSIX}-compliant @command{make}s should never acquire the value of $(SHELL) from the environment, even when @code{make -e} is used (otherwise, think about what would happen to your rules if