2017-01-21 5 views
0

Я читаю исходный код GCC и задаю несколько вопросов. Очевидно, что GCC построен с помощью autotools. Но я не могу найти файлы Makefile.am, необходимые для automake. Файл GCC Makefile.in написан вручную? И если они написаны вручную, где я могу найти документы, описывающие синтаксис Makefile.in?Makefile.in без Makefile.am в GCC?

Аналогичный вопрос: Makefile.in without Makefile.am in projects

+0

Это инструмент GNU, поэтому, если Makefile.in был сгенерирован из чего-то, что-то должно было быть доступно также. У вас есть доступ к ChangeLog, вы можете видеть, что изменения в Makefile.in появляются как «change bla bla», а не «регенерировать», например configure. Вы можете сделать вывод. –

+0

Да. Но, с другой стороны, Makefile.in действительно большой и трудночитаемый. Я когда-либо сомневался, что такой файл был сгенерирован автоматически некоторыми частными скриптами-хранителями ... – noinput

ответ

1

Makefile.am является более поздним дополнением к семейству Autotools и не все проекты используют его. GCC, в частности, не использует его. Верхний уровень Makefile.in формируется из Makefile.tpl с использованием autogen (см. here). Другие Makefile.in составлены вручную в соответствии с Autoconf rules.

+0

В самой верхней папке используется файл шаблона Makefile.tpl. Но я не мог найти аналогичный файл шаблона в других подкаталогах, например libcpp, есть только Makefile.in. Этот файл написан «вручную»? – noinput

+0

Да, эти другие 'Makefile.in' редактируются вручную (согласно [Правилам Autoconf] (https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Makefile -Substitutions.html # Makefile-Замена)). – yugr

+0

@noinput Был ли этот ответ полезным? – yugr

Смежные вопросы