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 ?