Я пытаюсь сделать это в make-файле, и он перестал работать ужасно:
M_ARCH := $(shell g++ -dumpmachine | awk '{split($1,a,"-");print a[1]}')
Вы знаете почему? Я предполагаю, что это имеет отношение к выходу, но какой и где?
Это знак доллара. В make-файлах вам нужно будет ввести $$
, чтобы получить единственный знак доллара:
M_ARCH := $(shell g++ -dumpmachine | awk '{split($$1,a,"-");print a[1]}')
Make довольно шепелявит, когда вы к ней подходите. Вот версия, отличная от awk, которая делает то же самое:
space := $() #
M_ARCH := $(firstword $(subst -,$(space),$(shell g++ -dumpmachine)))
all:
$(info $(M_ARCH))