Почему make не собирает все объектные файлы?
Есть Makefile:
CC = gcc
CFLAGS = -Wall -Werror -g
first.o: header.h
%.o: %.c
$(CC) -c $(CFLAGS) $< -o $@
main: first.o second.o main.o
$(CC) $(CFLAGS) $^ -o $@
При его запуске он всегда пересобирает только first.o. Я же ожидаю того, что first.o будет пересобираться при внесении изменений в header.h. Вопрос: в чем причина подобного поведения и как его исправить?