Спасаясь в Makefile


Я пытаюсь сделать это в файле makefile, и это ужасно не удается:

M_ARCH := $(shell g++ -dumpmachine | awk '{split(,a,"-");print a[1]}')

знаете почему? Я думаю, это связано с побегом, но что и где?

2 65

2 ответа:

это знак доллара, в makefiles вам нужно будет ввести $$ чтобы получить один знак доллара:

M_ARCH := $(shell g++ -dumpmachine | awk '{split($,a,"-");print a[1]}')

сделать довольно шепелявый, когда вы доберетесь до него. Вот версия без awk, которая делает то же самое:

space := $() #

M_ARCH := $(firstword $(subst -,$(space),$(shell g++ -dumpmachine)))

all:
    $(info $(M_ARCH))