makefile: improve support
makefile: improve support

Improve support for makefile syntax:
- simple variables (eg `$(var)`) and special variables (eg `$@`)
- variable inside strings (eg `"blabla $(var) blabla"`)
- functions (eg `$(patsubst arg,arg,$(var))`)
- variable assignement (eg `var=toto`, `var+=toto`, `var:=toto`)
- targets (eg `all: dependency $(var)`)
- language keywords (`define`, `endef`, `ifeq`, etc.)

Signed-off-by: Joel Porquet <4816dabf8db1bc6cac35b3a24cab2ff844b5b0c7@porquet.org>

highlightjs/highlight.js,carlokok/highlight.js,StanislawSwierc/highlight.js,isagalaev/highlight.js,StanislawSwierc/highlight.js,highlightjs/highlight.js,carlokok/highlight.js,carlokok/highlight.js,isagalaev/highlight.js,palmin/highlight.js,palmin/highlight.js,carlokok/highlight.js,highlightjs/highlight.js,MakeNowJust/highlight.js,palmin/highlight.js,highlightjs/highlight.js,MakeNowJust/highlight.js,MakeNowJust/highlight.js