Как правильно сделать чистку в ядре 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
Другие вопросы по тегам