S’échapper dans le makefile

J’essaie de faire cela dans un makefile et ça échoue horriblement:

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

est-ce que tu sais pourquoi? Je suppose que cela a à voir avec la fuite, mais quoi et où?

C’est le signe dollar, dans les fichiers makefiles vous devrez taper $$ pour obtenir un seul signe dollar:

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

Faire est assez lispy quand vous arrivez à cela. Voici une version non awk qui fait la même chose:

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