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 .
.
Но не используйте это, если у вас есть другие проигнорированные файлы, которые вы не хотите удалять!