Вопрос по autotools, build, build-automation, c, makefile – Makefile.in без Makefile.am в проектах

2

В нескольких проектах я видел Makefile.in без Makefile.am. Например. ударhttp://git.savannah.gnu.org/cgit/bash.git/tree/ и дтачhttp://dtach.cvs.sourceforge.net/viewvc/dtach/dtach/

Я всегда думал, что Makefile.in был создан automake. Также, если бы Makefile.am был пользовательским файлом, я бы не подумал, что он будет исключен из репозитория кода. В дереве исходных текстов bash файл Makefile.in слишком велик, чтобы его можно было писать вручную, и файл Makefile.in в dtach также выглядит сгенерированным. Как Makefile.in генерировался в таких проектах, как эти два?

Ваш Ответ

2   ответа
1

Makefile.in выглядит как обычный Makefile, но обычно ожидается, что он будет завершен сценарием настройки (например, с указанием расположения библиотеки в другом каталоге).

Makefile.am используется Automake для создания такого Makefile.in. Если разработчики, которые создали пакет, который вы используете, уже имели Makefile и для него создавали Makefile.am, это было слишком много усилий, они просто конвертировали его в Makefile.in.

4

libtool а такжеautomake Автоинструменты могут использоваться независимо друг от друга (или вообще не использоваться), в зависимости от того, что вам нужноautoconf сделать. Следовательно, это неrequired использоватьautomake чтобы генерироватьMakefile.in.

automake Инструмент также заметно выводит, что он был использован:

# Makefile.in generated by automake 1.11.1 from Makefile.am.

Так что вполне вероятно, чтоMakefile.ins, которые вы видели, редактируются "вручную".

Похожие вопросы