IN ファイル形式とは?
.in ファイルは、GNU Autotools ビルドシステムによって処理されるプレーンテキストのテンプレートファイルです。最も一般的な例は、プロジェクトの Makefile のテンプレートである Makefile.in や、C/C++ の設定ヘッダーのテンプレートである config.h.in です。開発者が GNU Autoconf によって生成されたスクリプトである ./configure を実行すると、スクリプトはこれらの .in テンプレートを読み取り、@VARIABLE@ プレースホルダーをビルド環境から検出された値(コンパイラパス、ライブラリフラグ、システム機能など)に置き換え、最終的な出力ファイルを書き出します。
GNU Autoconf は 1991 年に David MacKenzie によって作成され、現在は GNU Project によってメンテナンスされています。現在のリリースは Autoconf 2.72(2023年12月)です。トップレベルのマクロ入力ファイルは歴史的に configure.in と命名されていましたが、曖昧さを避けるために Autoconf 2.50 で configure.ac に変更されました。ただし、多くの古いプロジェクトでは依然として元の名前が使用されています。
一般的な .in テンプレートの種類:
Makefile.in-./configure実行後にMakefileになりますconfig.h.in-#define//* #undef */の置換が行われconfig.hになりますfoo.pc.in- pkg-config の.pcファイルになります
.in ファイルはプレーンテキストであるため、任意のエディタで開いて読むことができます。関連する拡張子には、.ac(Autoconf マクロファイル)、.am(Automake 入力)、.m4(M4 マクロファイル)があります。.in 拡張子は Autotools 専用ではなく、CMake の configure_file() コマンドでも .in テンプレートが使用されますが、Autotools ビルドシステムを使用するソフトウェア開発者が主要なユースケースとなっています。
セキュリティと安全性
リスク: LOW.in テンプレートファイルはプレーンテキストであり、それ自体でコードを実行することはありません。テキストエディタで安全に開くことができます。.in ファイルを処理する configure スクリプトはシェルスクリプト(コードを実行するもの)であるため、信頼できないソースから ./configure を実行する際には通常の注意が必要です。.in ファイル自体は受動的です。
形式の詳細
概要- McAfee VirusScan 内部/一時ファイル - 一部の McAfee アンチウイルスバージョンでは、一時データや隔離関連データの内部ファイル拡張子として .in を使用します。これは公開された形式ではなく、ユーザーが遭遇することは稀です。
- 汎用テンプレート/入力ファイル - 多くのアプリケーションで、出力ファイルを生成するために処理されるテンプレートや入力ファイルの汎用的な慣習として .in が使用されます(例:CMake の configure_file は .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 マクロ入力の古い名称。Autoconf 2.50 で configure.ac に名称変更された |
| 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 KB-500 KB (configure.in は通常 5-100 KB、Makefile.in はプロジェクトの複雑さにより大きく異なる) |
| 現在の Autoconf バージョン | GNU Autoconf 2.72(2023年12月リリース) |
| プラットフォーム | 主に 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 の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。IN ファイルについて最初の質問をしてみましょう。