Проблема в том, что исходные и объектные файлы должны быть размещены в разных каталогах, и для этого нет неявного правила.
Вам необходимо добавить правило для того, как преобразовать исходный файл в файл.объектный файл:
$(BUILD_PATH)/%.o: log/%.c
Теперь make
знает, как создавать объектные файлы из исходных файлов.
Однако существует еще одна проблема:
$(LOG_TARGET) : $(LOG_OBJS)
$(CC) $(FLAGS) $(CFLAGS) -o $@ $(LDFLAGS)
Команда не выводит какие-либо входные файлы, вам нужно добавить все объектные файлы, которые будут связаны:
$(LOG_TARGET) : $(LOG_OBJS)
$(CC) $(FLAGS) $(CFLAGS) -o $@ $^ $(LDFLAGS)
# ^^
# List of all "prerequisites" (object files) to be linked