funkcja define w pliku makefile

Mam widok struktury folderów projektu testowego:

TOPDIR
├── a
│   └── a.c
├── b
│   └── b.c
├── c
│   └── c.c
└── makefile

Napisałem testowy plik makefile:

CC        := gcc
LD        := ld

MAKE_DIR = $(PWD)
MODULES := a b c
SRC_DIR := $(addprefix ${MAKE_DIR}/,$(MODULES))

SRC := $(foreach sdir,$(SRC_DIR),$(wildcard $(sdir)/*.c))
OBJ := $(patsubst %.c,%.o,$(SRC))

INCLUDES := $(addprefix -I,$(SRC_DIR))

vpath %.c $(SRC_DIR)

define make-goal
$1/%.o: %.c
    $(CC) $(INCLUDES) -c $< -o $@
endef

all:
    $(foreach sdir,$(SRC_DIR),$(eval $(call make-goal,$(sdir))))

w trakcie produkcji po prostu ZATRZYMAŁ i pokazuje:

makefile:37: *** prerequisites cannot be defined in command scripts.  Stop.

linia 37 to :

$(foreach sdir,$(SRC_DIR),$(eval $(call make-goal,$(sdir))))

co jest nie tak z moim makefile?

questionAnswers(1)

yourAnswerToTheQuestion