Próbuję wykonać instrukcję make, aby sprawdzić architekturę. Jestem bardzo blisko do uzyskania go do pracy:Błąd warunkowy pliku Makefile
test:
ifeq ("$(shell arch)", "armv7l")
echo "This is an arm system"
else
echo "This is not an arm system."
endif
mam jeden problem: choć wydaje się to rozwiązać do ifeq ("i386", "armv7l")
które powinny być fałszywe, pojawia się następujący błąd:
$ 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
tak, to rozróżnia dwa ciągi w porównaniu do siebie, ale występuje błąd składni. Co jest nie tak?
Ile wyraźniej to może być? Po prostu próbuję sprawdzić architekturę i warunkowo wykonać instrukcje. Ale dziękuję za odpowiedź. Przyjęty. –
Jeśli naprawdę chciałeś napisać instrukcję if w każdym wierszu receptury, to zgadzam się, że jest to jasne. Zazwyczaj jednak ludzie chcą zrobić coś więcej, np. Użyć różnych flag kompilatora lub różnych kompilatorów, dodać różne pliki źródłowe itp. Istnieje wiele bardziej eleganckich sposobów na zrobienie tego typu rzeczy, niż dodanie wielu -wskazania na wszystkie twoje receptury plików makefile. – MadScientist
Przy okazji '==' jest równoznaczne z '=' –