manpagez: man pages & more
info autoconf
Home | html | info | man

File: autoconf.info,  Node: Comments in Make Rules,  Next: Newlines in Make Rules,  Prev: Parallel Make,  Up: Portable Make

12.11 Comments in Make Rules
============================

Never put comments in a rule.

   Some ‘make’ treat anything starting with a tab as a command for the
current rule, even if the tab is immediately followed by a ‘#’.  The
‘make’ from Tru64 Unix V5.1 is one of them.  The following makefile runs
‘# foo’ through the shell.

     all:
             # foo

   As a workaround, you can use the ‘:’ no-op command with a string
argument that gets ignored:

     all:
             : "foo"

   Conversely, if you want to use the ‘#’ character in some command, you
can only do so by expanding it inside a rule (*note Comments in Make
Macros::).  So for example, if ‘COMMENT_CHAR’ is substituted by
‘config.status’ as ‘#’, then the following substitutes ‘@COMMENT_CHAR@’
in a generated header:

     foo.h: foo.h.in
             sed -e 's|@''COMMENT_CHAR''@|@COMMENT_CHAR@|g' \
                 $(srcdir)/foo.h.in > $@

   The funny shell quoting avoids a substitution at ‘config.status’ run
time of the left-hand side of the ‘sed’ ‘s’ command.

© manpagez.com 2000-2025
Individual documents may contain additional copyright information.