コンテンツにスキップ

Autotools/config.guess

出典: フリー教科書『ウィキブックス(Wikibooks)』

GNU config.guess は、GNU Autotools に含まれるスクリプトで、現在のシステム(ハードウェア、オペレーティングシステム、バージョン)を自動的に判別して、標準化された形式で出力する役割を果たします。

このスクリプトは、ソフトウェアの移植性向上 のために使用され、異なるプラットフォーム間でのソフトウェアビルドを円滑に進めるための基盤を提供します。

主な役割

[編集]
  1. システム情報の判別
    • 実行中のシステムの CPU アーキテクチャ、OS、バージョンなどを自動的に検出します。
  2. 標準的な形式で出力
    • 出力は以下の形式で表されます:
    CPU-TYPE-MANUFACTURER-OPERATING_SYSTEM
    

使用方法

[編集]

実行コマンド

[編集]
./config.guess

実行例

[編集]
$ ./config.guess
x86_64-unknown-freebsd14.2

出力形式とその意味

[編集]

以下は config.guess の出力形式とそれぞれの部分の意味です:

CPU-TYPE-MANUFACTURER-OPERATING_SYSTEM
  1. CPU-TYPE
    • プロセッサのアーキテクチャ(例:x86_64、armv7l、aarch64)。
  2. MANUFACTURER
    • 製造元(例:pc、unknown、apple)。製造元が特定できない場合は unknown と出力されます。
  3. OPERATING_SYSTEM
    • 使用中の OS とそのバージョン(例:linux-gnu、freebsd14.2、darwin22.1.0)。

具体例

[編集]

1. x86_64-pc-linux-gnu

[編集]
  • x86_64: 64ビット Intel/AMD アーキテクチャ
  • pc: 一般的なパーソナルコンピュータ
  • linux: Linux カーネル
  • gnu: GNU ツールチェーン

2. aarch64-apple-darwin22.1.0

[編集]
  • aarch64: ARM 64ビット アーキテクチャ
  • apple: Apple 製品
  • darwin22.1.0: macOS の Darwin カーネル(バージョン 22.1.0)

3. armv7l-unknown-linux-gnueabihf

[編集]
  • armv7l: ARMv7 Little-endian アーキテクチャ
  • unknown: 製造元が特定されていない
  • linux: Linux カーネル
  • gnueabihf: GNU ツールチェーン(ハードウェア浮動小数点サポート)

4. x86_64-unknown-freebsd14.2

[編集]
  • x86_64: 64ビット Intel/AMD アーキテクチャ
  • unknown: 製造元が特定されていない
  • freebsd14.2: FreeBSD 14.2 のオペレーティングシステム

5. powerpc-ibm-aix7.3.0.0

[編集]
  • powerpc: PowerPC アーキテクチャ
  • ibm: IBM 製品
  • aix7.3.0.0: IBM AIX 7.3(バージョン 0.0)

6. mips64-unknown-linux-gnu

[編集]
  • mips64: MIPS 64ビット アーキテクチャ
  • unknown: 製造元が特定されていない
  • linux-gnu: Linux カーネル(GNU ツールチェーン)

関連ファイルとツール

[編集]
  1. config.sub
    • config.guess の出力を正規化し、他の Autotools ツールが使用できる形式に変換します。
  2. configure スクリプト
    • ビルドプロセスの中で config.guess を呼び出してシステム情報を取得します。

注意点

[編集]
  1. 環境依存
    • 特殊な環境では正確な判別ができない場合があります。
  2. 更新の必要性
    • 新しいアーキテクチャや OS に対応するために、config.guessconfig.sub の更新が必要な場合があります。
    $ wget -O config.guess 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD' 
    $ wget -O config.sub 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'
    

まとめ

[編集]

GNU config.guess は、現在のホストシステムを自動的に判別し、移植性の高いビルドプロセスを実現する重要なツールです。その出力は標準化された形式であり、クロスプラットフォームなソフトウェア開発やクロスコンパイル環境で広く活用されています。