Почему не работает пример substr makefile

Я пытаюсь запустить под ubuntu пример makefile c функцией substr. Этот пример

comma:= ,
empty:=
space:= $(empty) $(empty)
foo:= a b c
bar:= $(subst $(space),$(comma),$(foo))
# bar is now `a,b,c'.

В своём makefile записал таким образом

all:
    comma:= ,
    empty:=
    space:= $(empty) $(empty)
    foo:= a b c
    bar:= $(subst $(space),$(comma),$(foo))
    # bar is now `a,b,c'.

При запуске выходит такая ошибка:

elvin@ubuntu:~$ make all
comma:= ,
/bin/sh: 1: comma:=: not found
makefile:2: recipe for target 'all' failed
make: *** [all] Error 127

Что я делаю не так в этом примере и как избавиться от этой ошибки?


Ответы (1 шт):

Автор решения: Ainar-G

Определения макросов находятся вне рецептов.

comma := ,
empty :=
space := $(empty) $(empty)
foo := a b c
bar := $(subst $(space),$(comma),$(foo))

all:
    echo $(bar)
→ Ссылка