Как правильно сделать чистку в ядре Makefile
Я портирую драйвер на ядро 3.4, и когда я делаю make clean, он не очищает некоторые файлы.o, так что теперь я задаюсь вопросом, каков правильный способ сделать это.
У меня есть следующий Makefile (примечание: в отдельном каталоге от ядра):
obj-y += foo.o
foo-objs += foo1.o foo2.o
clean-files := foo3.o
Когда я запускаю make clean, он стирает foo3.o, но оставляет foo.o, foo1.o и foo2.o. Я мог бы поместить все это в чистые файлы, но это кажется излишним, и я думаю, что был бы какой-то способ заставить Makefile автоматически уничтожить все объекты в каталоге obj-y.
Спасибо,
Джон
2 ответа
Решение
Вы можете использовать регулярные выражения в make-файлах и писать *.o вместо foo1.o, foo2.o и т. Д.
Обычный способ - иметь "чистую" цель, которая выглядит следующим образом:
clean:
$(RM) .*.cmd *.o *.ko -r .tmp*
Так я привык make clean
мой код водителя:
clean:
$(MAKE) -C $(KDIR) M=$$PWD clean