2013-08-21 2 views
19

Ich habe eine Make-Datei, die wie folgt lautet:Wie in der Ausgabe nicht in einer Make-Datei einen Kommentar drucken

install: 
    @somecommand 

    #some explanation for next command 
    @lastcommand 

Was passiert, ist, dass der Kommentar #some explanation for next command gedruckt wird, wenn ich make install auszuführen. Wie kann ich einen Kommentar in einem Makefile machen, das nicht gedruckt wird? Vielleicht suche ich nach dem Unix-Äquivalent für den Windowsy echo off?

(Effektiv das Gegenteil von this question.)

Antwort

35

nicht den Kommentar einrücken Sie - wenn die Linie mit einer Registerkarte beginnt, es ist ein Befehl, der von der Shell ausgeführt wird (und die Schale behandelt den Kommentar als ein Kommentar).

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" 

Beispielausgabe:

$ 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 
$ 
+3

Ein gegliederter Kommentar Präfix mit einer '@' wird auch nicht angezeigt werden, wenn Sie * wirklich * wollen einrücken es :-) – cmbuckley

+3

@cbuckley: Das ist wahr, aber es ist eine sehr schwere Art, einen Kommentar zu schreiben, weil 'make' fork und exec eine Shell, die den Kommentar scannen wird, ableiten, dass es ein Kommentar ist, und dann erfolgreich beenden ... es sei denn, 'make' optimiert das, was es wahrscheinlich nicht tut. –

+0

Yeah ... zuvor endete mein Kommentar mit etwas in der Wirkung von "... aber das ist wahrscheinlich lächerlich." Nicht sicher, warum ich es entfernt habe! – cmbuckley