[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
more `Limitations of Make'
From: |
Alexandre Duret-Lutz |
Subject: |
more `Limitations of Make' |
Date: |
Tue, 20 Apr 2004 23:39:04 +0200 |
User-agent: |
Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3.50 (gnu/linux) |
Does this look OK?
2004-04-20 Alexandre Duret-Lutz <address@hidden>
* 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.
Index: doc/autoconf.texi
===================================================================
RCS file: /cvsroot/autoconf/autoconf/doc/autoconf.texi,v
retrieving revision 1.808
diff -u -r1.808 autoconf.texi
--- doc/autoconf.texi 30 Mar 2004 07:55:25 -0000 1.808
+++ doc/autoconf.texi 20 Apr 2004 21:37:15 -0000
@@ -11578,10 +11578,11 @@
@table @asis
@item @code{$<}
address@hidden 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.
address@hidden 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,
@@ -11663,6 +11664,13 @@
# baz
@end example
address@hidden 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 address@hidden
A command-line variable definition such as @code{foo=bar} overrides any
@@ -11749,6 +11757,14 @@
@example
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
--
Alexandre Duret-Lutz
- more `Limitations of Make',
Alexandre Duret-Lutz <=