コンテンツにスキップ

Autotools/autoconf-archive

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

GNU autoconf-archive は、Autoconf によるビルド環境の設定を簡略化するために設計された 汎用的で高品質なマクロのコレクション を提供するオープンソースプロジェクトです。

概要

[編集]

Autoconf 自体には組み込みのマクロがいくつかありますが、Autoconf Archive はそれを補完する形で、より多くのユースケースに対応するためのカスタムマクロを提供します。これらのマクロは、依存関係の検出や特定の環境設定を自動化するために広く使われています。

主な特徴

[編集]
  1. 多目的マクロの収集
    • ライブラリやツールチェーンの検出、特定のプラットフォーム向けの設定を行うためのマクロが含まれています。
    • 例: OpenSSLSQLiteZlib などの検出、または C++ 標準の対応確認。
  2. 自由に使用可能
    • マクロは多くの場合、GPL 互換ライセンスで提供され、商用およびオープンソースプロジェクトで自由に利用可能です。
  3. ポータビリティの向上
    • クロスプラットフォーム対応のビルドスクリプト作成を支援します。
  4. コミュニティベースの管理
    • マクロは広く使用され、改善・更新が続けられているため、信頼性が高いです。

インストール方法

[編集]

Linux パッケージマネージャを使用

[編集]

多くのディストリビューションで利用可能です。

  • Debian/Ubuntu
    sudo apt install autoconf-archive
    
  • Fedora
    sudo dnf install autoconf-archive
    
  • FreeBSD
    # Ports からビルド/インストール
    doas make -C /usr/ports/devel/autoconf-archive install clean
    
    # Packages からインストール
    doas pkg install autoconf-archive
    

ソースコードからインストール

[編集]

公式サイトからソースコードをダウンロードしてインストールできます。

  1. アーカイブをダウンロード
    GNU Autoconf Archive 公式サイト
  2. 展開とインストール
    tar -xvf autoconf-archive-<version>.tar.xz
    cd autoconf-archive-<version>
    ./configure
    make
    doas make install
    

使用例

[編集]

必要なマクロを選択

[編集]

マクロはすべて AX_ で始まります。たとえば:

  • AX_CHECK_OPENSSL:OpenSSL の検出
  • AX_CXX_COMPILE_STDCXX:C++ 標準規格のサポート確認

configure.ac にマクロを追加

[編集]

必要なマクロを configure.ac に記述します。以下は OpenSSL の存在確認を行う例です。

AC_INIT([MyProject], [1.0])
AC_CONFIG_SRCDIR([src/main.c])
AC_CONFIG_HEADERS([config.h])

# OpenSSL の検出
AX_CHECK_OPENSSL(
  [],
  [AC_MSG_ERROR([OpenSSL is required but was not found.])]
)

AC_OUTPUT

autoreconf を実行

[編集]

マクロを有効化するには以下を実行します。

autoreconf -i

configure を実行

[編集]

生成されたスクリプトを実行し、プロジェクトを設定します。

./configure

主なマクロの例

[編集]
主なマクロの例
マクロ名 機能
AX_CHECK_OPENSSL OpenSSL の存在を確認し、ライブラリパスを設定する。
AX_LIB_SQLITE3 SQLite3 ライブラリを検出。
AX_CXX_COMPILE_STDCXX C++ 標準規格(例: C++11, C++14)に対応しているか確認。
AX_PYTHON_DEVEL Python の開発環境(ヘッダやライブラリ)を検出。
AX_PROG_CC_FOR_BUILD ホスト用とビルド用の C コンパイラを検出。

メリット

[編集]
  1. 作業の効率化
    • 自分で複雑なマクロを書く必要がなくなり、開発時間を短縮できます。
  2. 信頼性と安定性
    • 実績のあるマクロを使用することで、バグや問題の発生を減らせます。
  3. 幅広いサポート
    • 多くのプラットフォームやライブラリをサポートしており、クロスプラットフォーム開発が容易です。

まとめ

[編集]

GNU autoconf-archive は、Autotools を使用するプロジェクトにおいて、設定や依存関係管理を簡素化するための非常に便利なツールです。豊富なマクロのライブラリを活用することで、開発者はビルド環境を迅速かつ信頼性の高い形で構築できます。