GNU, makefile by autotools - правила и рецепты для создания исходных текстов на языке C - PullRequest
0 голосов
/ 29 октября 2018

Для сборки программы из источника на языке C, как определяются правила и рецепты правил в make-файле, если последний генерируется autotools стандартным способом? Это означает отсутствие изменений во время autoconf, automake и configure. Давайте предположим, что libtool не используется. Система GNU и инструменты сборки.

Являются ли эти два отдельных правила одним для составления другого, а для связывания? Рецепты какой формы в точности применяются автоинструменты?

Я не нашел этих спецификаций в руководстве по automake. Однако пары правил-целей для некоторых других языков программирования довольно хорошо определены в этом руководстве.

Другими словами, где указано, как make-файлы, сгенерированные autotools, строят программы из C-источников в предположениях, как указано выше?

1 Ответ

0 голосов
/ 01 ноября 2018

Для создания программы из источника на языке C, каковы правила и рецепты правила в make-файле указываются, если последний генерируется автоинструмент стандартным способом?

Автоинструменты предназначены для реализации стандартов кодирования GNU применительно к системам сборки, как описано со ссылками, в руководстве Automake . Существует отдельная документация для стандартов кодирования, включая стандартные ориентированные на пользователя цели, которые, как ожидается, Makefiles предоставит . Automake обеспечивает их.

Кроме того, Automake документирует некоторые цели, предназначенные для использования в качестве точек расширения разработчиками. Automake по-разному предоставляет их или использует, если разработчик предоставляет их.

Кроме того, Automake предоставляет правило для каждой цели, которую вы явно указываете в своем Makefile.am. Вы можете свободно использовать их в нерекурсивной системе сборки, но YMMV, если ваша система сборки рекурсивна.

Конечно, make-файлы Autotools содержат гораздо больше целей, чем те, но их имена следует учитывать в деталях реализации. Все рецепты правил также являются деталями реализации, хотя о некоторых из них можно многое предсказать из документации различных переменных Automake и их работы . Если вам интересно, то как насчет просмотра сгенерированных Makefile.in или Makefile?

Являются ли эти два отдельных правила одним для составления другого, для связь

Из того факта, что создание проекта с помощью системы сборки на основе Autotools генерирует не только конечную цель, но и объектный файл для каждого исходного файла, мы можем определить, что, по крайней мере в текущих версиях Autotools, действительно есть как правила компиляции исходников в объектные файлы, так и правила связывания объектов в исполняемые файлы и / или библиотеки. Опять же, вы также можете просто посмотреть на сгенерированный Makefile [.in].

Рецепты какой формы в точности применяются автоинструменты?

Особенности не документированы и, в принципе, могут несколько отличаться в разных версиях Automake. Но опять же, вы можете многое сделать из переменных и всегда можете создать пример для изучения.

Я не нашел этих спецификаций в руководстве по automake. тем не мение пары правил-целей для некоторых других языков программирования довольно хороши указано в этом руководстве.

Основное место, в котором руководство AutoMake обсуждает конкретные положения для конкретных языков, - в главе 8, Создание программ и библиотек . Первые несколько разделов описывают, как все работает в целом и для C, стандартного целевого языка Autotools, а затем есть несколько разделов, описывающих положения для других поддерживаемых языков. В руководстве действительно указывается форма правил сборки, используемых для источников на Фортране 77 и Фортране 95, но не ясно, почему. В любом случае, это исключения. Подобное не предусмотрено для других языков.

Другими словами, где указано, как make-файлы генерируются с помощью autotools создавать программы из C-источников, исходя из предположений, указанных выше?

Конкретная форма правил сборки для C-источников не задокументирована, но в более общем смысле это тема глав 2-4 и большей части главы 8 руководства.

...