Escaping in makefile

Jonas Byström picture Jonas Byström · Mar 4, 2010 · Viewed 46.4k times · Source

I'm trying to do this in a makefile and it fails horribly:

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

do you know why? I guess it has to do with escaping, but what and where?

Answer

Martin picture Martin · Mar 4, 2010

It's the dollar sign, in makefiles you'll have to type $$ to get a single dollar sign:

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