Come aggiungere commenti su più righe nei makefile


113

C'è un modo per commentare più righe nei makefile come nella sintassi C /* */?


Quale versione di marca stai usando?
egrunin

Risposte:


152

No, non c'è niente come i /* */commenti in stile C nei makefile. Come suggerito da qualcun altro, è possibile creare un commento su più righe utilizzando le continuazioni di riga. Per esempio:

# This is the first line of a comment \
and this is still part of the comment \
as is this, since I keep ending each line \
with a backslash character

Tuttavia, immagino che tu stia probabilmente cercando di commentare temporaneamente una parte del tuo makefile per motivi di debug, e aggiungere una barra rovesciata su ogni riga non è realmente pratico. Se stai usando GNU make, ti suggerisco di usare la ifeqdirettiva con un'espressione deliberatamente falsa. Per esempio:

ifeq ("x","y")
# here's all your 'commented' makefile content...
endif

Spero che aiuti.


3
Nota che se vuoi "commentare" le righe in una regola, non indentare le righe ifeq, endif.
Simon Márton,

13

Credo che la risposta sia no. L'unico stile di commento che riesco a trovare è # per ogni riga, oppure usa \ per mandare a capo la prima riga.


10

Una nota sull'idea di utilizzare ifeqper fare commenti su più righe in make (1). Non funzionano molto bene poiché se scrivi quanto segue:

ifeq (0,1)
    do not risk ifeq comments
    else trouble will find you
    ifeq is even worse
endif

Il testo tra ifeq e endif verrà comunque analizzato da make, il che significa che non puoi scrivere quello che vuoi in quella sezione. E se vuoi scrivere un commento lungo e scrivere quello che vuoi nel commento (inclusi $ segni, due punti e altro che hanno tutti un significato per make), allora devi commentare ogni singola riga. Allora perché ifeq... :)


Non è corretto. L'unico "parsing" che gmake fa del testo all'interno di ifeq è cercare un endif. Puoi verificarlo facilmente con un makefile che ha una sintassi fasulla all'interno di ifeq. Finché la condizione nell'ifeq viene valutata come falsa, gmake ignorerà felicemente gli errori di sintassi all'interno dell'ifeq.
Eric Melski

3
Non è corretto. Prova il seguente esempio: ifeq (0, 1) non rischiare ifeq commenti altrimenti i problemi ti troveranno endif L' altro all'inizio della riga genera errori. Così il resto , ifeq , ifneq e forse molti altri simboli che Non so circa vi darà problemi.
Mark Veltzer

Questo è un punto giusto, ma la maggior parte degli errori sintattici verrà ignorata.
Eric Melski


3

Non esattamente quello che stai cercando, ma simile nello spirito. Non mi aspetto che sia la risposta accettata, ma forse può aiutare qualcuno.

Supponendo che tu stia modificando i tuoi makefile in VIM:
decidi quali righe vuoi commentare o selezionale con "v".

Quindi puoi usare la regex s/^/#/per commentare le linee
e s/^#//per ripristinarle.

--Appunti--

  • Per aprire la riga di comando di vim, premere :(due punti)
  • Per preparare il comando per le successive 'n' righe, utilizzare .,+n
  • Una riga di esempio che utilizza "v" ha il seguente aspetto: '<,'>s/^/#/

2
Invece è più facile usare la modalità blocco. Vai all'inizio della prima riga per commentare, ctrl-v, freccia giù fino alla fine, I maiuscola, #, escape. Per eliminare i commenti: ctrl-v, freccia giù fino in fondo, x
brunch875

1

In emacs, puoi contrassegnare la regione che vuoi commentare e premere M-;(che viene eseguita comment-dwim).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.