Вы можете изменить:
OBJECT_FILES = brd.o logger.o test_brd.o
в
OBJECT_FILES_EXCEPT_LOGGER = brd.o test_brd.o
OBJECT_FILES = $(OBJECT_FILES_EXCEPT_LOGGER) logger.o
и измените свою чистоту на:
clean:
rm -f $(TARGET) $(OBJECT_FILES_EXCEPT_LOGGER)
Но весь пункт , который нужно очистить, - это полная перестройка. Если вам не нужна полная перестройка, просто используйте make
сам по себе, и он создаст только то, что ему нужно. При правильно скомпилированном make-файле вам почти никогда не потребуется выполнять полное перестроение (единственное исключение, о котором я могу подумать, это когда вы меняете сам make-файл, но я даже игнорирую , что , заставляя все правила зависеть от также makefile).
Кстати,
brd.o: brd.c logger.c
и
test_brd.o: test_brd.c brd.c
не пишите мне - нет никакой зависимости ни между brd.o
и logger.c
, ни между test_brd.o
и brd.c
(по крайней мере, на основании ваших операторов компиляции). Единственный способ получить зависимость - это если вы #include
поместите один файл C в другой, и это редко хорошая идея.