Что такое формат файла IN?
Файл .in - это текстовый файл-шаблон, обрабатываемый системой сборки GNU Autotools. Наиболее распространенными примерами являются Makefile.in (шаблон для Makefile проекта) и config.h.in (шаблон для конфигурационного заголовка C/C++). Когда разработчик запускает ./configure - скрипт, созданный GNU Autoconf, - этот скрипт считывает шаблоны .in, заменяет заполнители @VARIABLE@ значениями, определенными в среде сборки (пути к компилятору, флаги библиотек, системные функции), и записывает итоговые выходные файлы.
GNU Autoconf был создан Дэвидом Маккензи в 1991 году и поддерживается проектом GNU. Текущим выпуском является Autoconf 2.72 (декабрь 2023 г.). Файл макросов верхнего уровня исторически назывался configure.in; в Autoconf 2.50 он был переименован в configure.ac для уменьшения двусмысленности, хотя многие старые проекты до сих пор используют оригинальное имя.
Общие типы шаблонов .in:
Makefile.in- превращается вMakefileпосле запуска./configureconfig.h.in- превращается вconfig.hс подстановками#define//* #undef */foo.pc.in- превращается в файл pkg-config.pc
Поскольку файлы .in являются обычным текстом, их может открыть и прочитать любой редактор. Связанные расширения включают .ac (файлы макросов Autoconf), .am (входные данные Automake) и .m4 (файлы макросов M4). Обратите внимание, что расширение .in не является исключительным для Autotools - команда CMake configure_file() также использует шаблоны .in, - но разработчики ПО, работающие с системами сборки Autotools, представляют основной сценарий использования.
Безопасность и защита
РИСК: LOWФайл-шаблон .in является обычным текстом и не может выполнять код сам по себе. Его безопасно открывать в текстовом редакторе. Скрипт configure, который обрабатывает файлы .in, является сценарием оболочки (который выполняет код) - к нему применимы обычные меры предосторожности при запуске ./configure из ненадежного источника. Сам файл .in пассивен.
Детали формата
в двух словах- Внутренний/временный файл McAfee VirusScan - Некоторые версии антивируса McAfee используют .in в качестве внутреннего расширения файла для временных данных или данных, связанных с карантином; не является документированным публичным форматом и редко встречается пользователям.
- Универсальный шаблон/входной файл - Многие приложения используют .in как общее соглашение для любого шаблона или входного файла, который обрабатывается для создания выходного файла (например, configure_file в CMake использует шаблоны .in).
- Входные данные для сборки модуля Perl - Некоторые системы сборки Perl/CPAN используют файлы .in в качестве входных шаблонов для файлов, генерируемых во время установки модуля.
Программы, открывающие файлы IN
Технические подробности
глубокая спецификация| Кодировка файла | Обычный текст ASCII/UTF-8 |
| Основная роль | Файл-шаблон, используемый ./configure (созданным GNU Autoconf) для создания конечных выходных файлов сборки |
| Синтаксис заполнителей | Маркеры @VARIABLE@, заменяемые configure на обнаруженные системные значения (путь к компилятору, флаги библиотек, флаги функций) |
| Общие типы шаблонов | Makefile.in → Makefile; config.h.in → config.h; foo.pc.in → foo.pc (метаданные pkg-config) |
| Структура config.h.in | Содержит директивы #undef FEATURE; configure заменяет их на #define FEATURE 1 или /* #undef FEATURE */ |
| configure.in против configure.ac | configure.in - старое название для входного файла макросов Autoconf верхнего уровня; переименован в configure.ac в Autoconf 2.50 |
| Язык макросов M4 | Файлы configure.in / configure.ac используют макросы M4 и вызовы AC_* (AC_INIT, AC_PROG_CC, AC_CHECK_LIB и т. д.) |
| Конвейер Automake | Makefile.am (входные данные Automake) → Makefile.in (создается automake) → Makefile (создается ./configure) |
| Бинарная сигнатура | Отсутствует - обычный текст, нет магических байтов |
| Типичный размер файла | 1 КБ-500 КБ (configure.in обычно 5-100 КБ; Makefile.in сильно варьируется в зависимости от сложности проекта) |
| Текущая версия Autoconf | GNU Autoconf 2.72, выпущена в декабре 2023 г. |
| Платформа | Преимущественно Linux/macOS/Unix; доступно в Windows через MSYS2, Cygwin или WSL |
| Связанные расширения | .ac (файлы макросов Autoconf), .am (шаблоны ввода Automake), .m4 (необработанные определения макросов M4) |
| Выпущен | 1991 (GNU Autoconf 1.0 by David MacKenzie) |
| Последняя версия | Autoconf 2.72 (December 2023) |
| Открыть стандартное | Да · без роялти |
| Спецификация | www.gnu.org |
Конвертации IN
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах IN.