关于在makefile中使用for循环的有关问题

关于在makefile中使用for循环的问题
CC :=gcc 
CFLAGS := -g -Wall 
SOURCE := $(wildcard *.c)
TARGETS := $(patsubst %.c,%,$(SOURCE))
ALL : $(TARGETS)
@for temp in $(TARGETS)
do
$(temp):$(temp).c 
$(CC) $(CFLAGS) $< -o $@ 
done

最近正在学习linux c,写了个测试用的makefile,gcc命令倒是成功执行了,但是结束的时候会报这个错
/bin/sh: -c:行1: 语法错误: 未预期的文件结尾
make: *** [ALL] 错误 1
请问这是怎么回事,如何修改(是在执行完所有gcc命令之后才报的错)

------解决方案--------------------
makefile有foreach函数
------解决方案--------------------
搜“跟我一起写Makefile”