[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 @@
 @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{}.  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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]