C'è un modo per uscire con una condizione di errore se un file non esiste? Attualmente sto facendo qualcosa di simile:Verificare se un file esiste nella destinazione makefile e chiudere se non presente
all: foo
foo:
test -s /opt/local/bin/gsort || echo "GNU sort does not exist! Exiting..." && exit
Esecuzione make
corre il all
bersaglio, che corre foo
.
L'aspettativa è che se il condizionale test -s
non riesce, vengono eseguite le istruzioni echo/exit
.
Tuttavia, anche se /usr/bin/gsort
esiste, ottengo il risultato della dichiarazione echo
ma il comando exit
non funziona. Questo è l'opposto di quello che spero di ottenere.
Qual è il modo corretto di fare qualcosa come sopra?
Se provo questo sulla riga di comando, avendo il lato destro del '' || tra parentesi, per ottenere un guscio di sub, lo fa funzionare come previsto. Non ho idea se sia lo stesso in un makefile. Senza la parentesi, l'"uscita" verrà eseguita anche se il test è positivo. – HonkyTonk