Ho un sacco di applicazioni che sono costruiti con lo stesso tipo di regola make:Regola del modello Makefile per nessuna estensione?
apps = foo bar baz
all: $(apps)
foo: foo.o $(objects)
$(link)
bar: bar.o $(objects)
$(link)
baz: baz.o $(objects)
$(link)
Se avessero un'estensione (ad esempio .x
) ho potuto fare una regola modello simile:
%.x: %.o $(objects)
$(link)
e non dovrei scrivere una nuova regola per ogni app.
Ma non hanno un'estensione, e sono abbastanza sicuro che:
%: %.o $(objects)
$(link)
non funziona (perché specifica che per costruire qualsiasi file che è possibile utilizzare questa regola).
Esiste comunque una regola che copra tutte le regole di costruzione $(apps)
?
Non sono sicuro di aver capito, stai dicendo che la risposta di [Beta] (http://stackoverflow.com/a/15718701/1131467) non è corretta? –
no, non l'ho detto! , entrambe le risposte pubblicate sono corrette in teoria - in effetti stavo provando la stessa cosa.Rendere le regole del pattern statico è una scelta ovvia per questi scenari ..... ma provare a renderli troppo generici non ha funzionato. Ho appena postato la mia osservazione che mi sembrava logica, solo per farti sapere. – nsd