Ho un makefile strutturato qualcosa di simile:makefile eseguire un altro obiettivo
all :
compile executable
clean :
rm -f *.o $(EXEC)
mi sono reso conto che stavo correndo costantemente "make clean" seguito da "chiaro" nel mio terminale prima di eseguire "fare tutto". Mi piace avere un terminale pulito prima di provare a setacciare gli errori di compilazione C++. Così ho provato ad aggiungere un terzo target:
fresh :
rm -f *.o $(EXEC)
clear
make all
Questo funziona, tuttavia questo esegue una seconda istanza di make (credo). C'è un modo giusto per ottenere la stessa funzionalità senza eseguire una seconda istanza di make?
@ sas4740.: fondamentalmente tutto segue '.PHONY:' viene considerato come una parola chiave che viene sempre eseguita, mentre i target non fasulli sono intesi come file. – Dacav
sono "condizionali prerequisiti" condizionali? per target t2 Voglio prima fare t0, che solo se t0 succede t1 e solo se entrambi i successi eseguono qualche task in t3 – fantastory
@fantastory, no, I ** think ** sono indipendenti. 't2' dipenderà da' t0', 't1' e' t3'. Se hai bisogno di questo dovresti mettere 't3' come richiesto da' t2', 't1' come richiesto da' t3' e 't0' come richiesto da' t1'. Questo significa 3 diverse regole. Dovresti verificare questo, comunque. Non sono sicuro al 100%. – Dacav