it-swarm.com.de

Flucht ins Makefile

Ich versuche dies in einem Makefile zu tun und es schlägt furchtbar fehl:

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

weißt du, warum? Ich denke, es hat mit Flucht zu tun, aber was und wo?

78
Jonas Byström

Es ist das Dollarzeichen. In Makefiles musst du $$ um ein einzelnes Dollarzeichen zu bekommen:

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

Make ist ziemlich lispy, wenn Sie sich darauf einlassen. Hier ist eine nicht-awk-Version, die dasselbe tut:

space := $() #

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

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