knocte
knocte

Reputation: 17919

How to NOT print in the output a comment in a makefile

I have a makefile that is like this:

install:
    @somecommand

    #some explanation for next command
    @lastcommand

What happens is that the comment #some explanation for next command is being printed when I execute make install. How can I make a comment in a makefile that doesn't get printed? Maybe I'm looking for the unix equivalent for the windowsy echo off?

(Effectively, the opposite of this question.)

Upvotes: 55

Views: 14120

Answers (2)

nextloop
nextloop

Reputation: 322

just use @ at the begin of the line.

all:
    @echo "test 1"
    @# echo "test 2"
    echo "test 3"
  • output:
$ make

test 1
echo "test 3"
test 3

Upvotes: 7

Jonathan Leffler
Jonathan Leffler

Reputation: 753455

Don't indent the comment — when the line starts with a tab, it is a command that is executed by the shell (and the shell treats the comment as a comment).

Proof of concept (ss.mk):

all:
    echo "This is the first command"
    # This comment is echoed

# This comment is not echoed
    echo "This is the second command"

Sample output:

$ make -f ss.mk
echo "This is the first command"
This is the first command
# This comment is echoed
echo "This is the second command"
This is the second command
$

Upvotes: 91

Related Questions