Autotools: как очистить файлы, созданные "./configure" в проекте lighttpd?

Я тестирую lighttpd для встроенного проекта Linux. Я получил последний исходный пакет и начал писать мастер Makefile, инкапсулирующий все настройки, компиляцию, установку (для тестирования) и т.д.

И наоборот, я хочу очистить каждый шаг. После очистки не должно быть никаких сгенерированных файлов. Это важно для повторного тестирования.

Интересно, есть ли способ сделать полную очистку генерируемого ./configure? Я не знаком с autotools в деталях.

Любые подсказки?

Ответы

Ответ 1

Я лично действительно использовал бы функции программного обеспечения для управления версиями (вы должны использовать его) для этого. Это очистка сделает независимым от вашего процесса сборки. См. svn-cleanup или git clean.

Тем не менее, automake позволяет настраивать, когда удалять файлы. У этого есть (намеренно?) Встроенные ограничения на то, что файлы, сгенерированные autotools, могут быть удалены таким образом, хотя. Посмотрите определения для MOSTLYCLEANFILES, CLEANFILES, DISTCLEANFILES и MAINTAINERCLEANFILES и настройте Makefile.am. С ними вы можете удалить много вещей с помощью

make mostlyclean
make clean
make distclean
make maintainer-clean

Вы не сможете удалить, например. Makefile или .deps/ таким образом.

Что касается надежности make clean, он должен "работать на 100%", если вы будете придерживаться четкого указания ваших файлов и избегать ручного вмешательства. В противном случае продлить правила очистки.

Ответ 2

В дополнение к ответ Бенджамина Банни, сгенерированные имена файлов могут быть перечислены в файле .gitignore, чтобы они игнорировались, а не отслеживались с помощью git и дон При запуске git status раздражать и беспокоиться. Вы не можете удалить эти файлы с помощью git clean. В этом случае я лично использую команду rm -rf * ; git checkout ..

Но не используйте это, если у вас есть другие проигнорированные файлы, которые вы не хотите удалять!