I am playing around with makefiles and I came across %.o or %.c. From what I understood, it specify all c or o files. But why this work:
%.o: %.c
$(CC) -c $^ -o $@
and this doesn't work
SOURCE := $(wildcard *.c)
$(SOURCE:.c=.o): SOURCE
$(CC) -c $^ -o $@
Both expression specify all the files. so what %.o: symbol in make file does ?