2012-08-09 9 views
9

Per esempio, ho una variabile che contiene un elenco di dipendenzeCome si modifica l'estensione del file delle variabili makefile?

BOARDS:=lance.mcm light.mcm sac.mcm 

ho bisogno di un'altra variabile denominata NET tale che

NET:=lance.net light.net sac.net 

dovrebbe essere impostato in modo tale che quando cambio la variabile TAVOLE, NET dovrebbe cambiare pure. Ad esempio, se aggiungo un nuovo zor.mcm nella variabile BOARDS, dovrebbe aggiungere automaticamente zor.net alla variabile NET.

+0

Superset: multiple ext ensions: http://stackoverflow.com/questions/12069457/how-to-change-the-extension-of-each-file-in-a-list-with-multiple-extensions-in-g –

risposta

22

La soluzione migliore che ho trovato è quello di utilizzare questa sintassi:

NET:=$(BOARDS:.mcm=.net) 

Questo sarà sulle schede e cambiare la .mcm in .net

+0

Un po 'più di spiegazione in [Come modificare l'estensione di ogni file in un elenco con più estensioni in GNU make?] (http://stackoverflow.com/a/12071918/1730674) – askewchan

9

In alternativa:

BOARDS:=lance.mcm light.mcm sac.mcm 
NET:= $(addsuffix .net, $(basename $(BOARDS))) 

Questo conserverà il contenuto all'interno del percorso percorso del file nel caso in cui corrisponda al modello

+0

Questo è il motivo per cui ho postato la domanda in primo luogo. Questo è perfetto, grazie! – wonton

Problemi correlati