web-dev-qa-db-fra.com

S'échapper dans un makefile

J'essaie de le faire dans un makefile et cela é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 l'évasion, mais quoi et où?

78
Jonas Byström

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

M_Arch := $(Shell g++ -dumpmachine | awk '{split($$1,a,"-");print a[1]}')
150
Martin

Make est assez vif quand vous y arrivez. Voici une version non awk qui fait la même chose:

space := $() #

M_Arch := $(firstword $(subst -,$(space),$(Shell g++ -dumpmachine)))

all:
    $(info $(M_Arch))
16
richq