Sto tentando di fare una dichiarazione per verificare l'architettura. Sono molto vicino ad ottenere a lavorare:Errore condizionale Makefile
test:
ifeq ("$(shell arch)", "armv7l")
echo "This is an arm system"
else
echo "This is not an arm system."
endif
Ho un problema: anche se questo sembra per risolvere a ifeq ("i386", "armv7l")
che dovrebbe essere falso, ottengo il seguente errore:
$ make
ifeq ("i386", "armv7l")
/bin/sh: -c: line 0: syntax error near unexpected token `"i386",'
/bin/sh: -c: line 0: `ifeq ("i386", "armv7l")'
make: *** [test] Error 2
Quindi, è la risoluzione di due stringhe che si confrontano tra loro, ma c'è un errore di sintassi. Cosa c'è che non va qui?
Quanto più chiara può essere? Sto solo provando a controllare l'architettura e a fare dichiarazioni condizionatamente. Ma grazie per la risposta. Accettato. –
Se davvero volevi scrivere un'istruzione if in ogni singola riga della ricetta, allora sono d'accordo che è chiaro. La maggior parte delle volte, però, le persone vogliono davvero fare qualcosa di più, come usare diversi flag di compilatore o compilatori diversi, aggiungere diversi file sorgenti, ecc. Esistono modi molto più eleganti per fare questo genere di cose che aggiungere molti se -statements in tutte le tue ricette makefile. – MadScientist
Tra l'altro '==' è sinonimo di '=' –