2012-09-05 6 views
13

Eventuali duplicati:
How to get the second dependency file using Automatic Variables in a Makefile?Posso ottenere solo il secondo prerequisito in GNU make?

Sto usando GNU make, e sto usando le variabili automatiche, quali ad $<, $^ ecc so che $< è solo il primo requisito, e $^ sono tutti i prerequisiti. C'è un modo per ottenere solo il secondo prerequisito?

+0

Puoi dire un po 'di più sul motivo per cui hai bisogno di questo, o cosa stai cercando di realizzare? Potresti essere in grado di separare '$ ^' elemento per elemento (ad esempio trattarlo come una matrice), e quindi afferrare il secondo in questo modo. – Novelocrat

+0

@Beta, Sì - questo è un duplicato. Voterò per chiuderlo in quanto tale. – pauldoo

risposta

34

Assumendo che il prerequisiti sono gettoni regolari,

echo $(word 2,$^) 

spesso mi trovo a dare il primo argomento una posizione speciale, e l'accesso ai restanti prerequisiti con

echo $(filter-out $<,$^) 
+0

Il trucco del filtro è esattamente quello che stavo cercando :) – vbwx

-2

Il meglio che posso venire con, che ritengo sia un po 'un trucco, è quello di utilizzare echo $^ | cut -f2 -d' ', à la:

output.txt: a.txt b.txt 
    cat $< | ./something `echo $^ | cut -f2 -d' '` > [email protected] 

Mi piacerebbe sentire una risposta migliore di questa. :)

+6

Ecco qui: '$ (parola 2, $ ^)' –