Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.)

like image 676
knocte Avatar asked Aug 21 '13 14:08

knocte


People also ask

How do I hide output in makefile?

If you want to inhibit the display of commands during a particular make run, you can use the -s option. If you want to inhibit the display of all command lines in every run, add the special target . SILENT to your makefile .

What is $@ in makefile?

The variable $@ represents the name of the target and $< represents the first prerequisite required to create the output file.

What is @echo in makefile?

The ' @ ' is discarded before the line is passed to the shell. Typically you would use this for a command whose only effect is to print something, such as an echo command to indicate progress through the makefile: @echo About to make distribution files.


1 Answers

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 $ 
like image 100
Jonathan Leffler Avatar answered Nov 05 '22 00:11

Jonathan Leffler