SCons

SConsは、古典的なmakeユーティリティの代替として開発された、オープンソースのソフトウェアビルドツールです。Autotoolsの機能やccacheのようなコンパイラキャッシュ機能も統合されており、従来のツールと比較して、より使いやすく信頼性の高いビルド環境を提供します。

特徴



Pythonベースの設定: SConsの設定ファイルはPythonスクリプトとして記述します。これにより、柔軟で高度なビルド設定を容易に行うことができます。
自動依存関係解析: C、C++、FORTRANなどのファイルに対する依存関係を自動的に解析します。`make depend`や`make clean`といったコマンドを追加することなく、必要な依存関係をすべて把握できます。他の言語やファイルタイプについても、ユーザーが依存関係スキャナを定義することで容易に拡張可能です。
移植性の高い依存関係解析: Autotoolsとは異なり、gccに組み込まれた依存関係分析機能は使用しません。代わりに、C/C++のソースファイルに対して`#include`を正規表現でスキャンします。これにより、gcc以外のコンパイラでも同様の依存関係スキャンが行えるため、移植性が高くなります。ただし、gccを使用する場合は、プリプロセッサフラグを無視するため、依存関係分析の精度がやや劣る場合があります。
豊富な対応言語とツール: C、C++、D、Java、FORTRAN、Objective-CYacc、Lex、QtSWIGなどを標準でサポートしています。TeXLaTeXによるドキュメント作成も可能です。また、ユーザー定義のビルダーを使用することで、他の言語やファイルタイプにも対応できます。
バージョン管理システムとの連携: SCCS、RCS、CVS、Subversion、BitKeeperPerforceといったバージョン管理システムからソースファイルを取得できます。
Visual Studioのサポート: Microsoft Visual Studio .NETおよび過去のVisual Studioをサポートしており、.dsp、.dsw、.sln、.vcprojファイルなどを生成できます。
柔軟な更新検出: ファイル内容の更新をMD5シグネチャで検出する機能と、タイムスタンプによる検出機能をサポートしており、どちらかを選択できます。
高速な並列ビルド: ディレクトリ構成に関係なく、指定した数のジョブを同時に実行できる並列ビルドをサポートしています。
autoconfのような機能: `#include`ファイル、ライブラリ、関数、typedefを探す機能も組み込まれており、autoconfと同様の機能を提供します。
グローバルな依存関係ビュー: 全体の依存関係をグローバルに把握できるため、複数回のビルドやターゲットの並び替えが不要です。
キャッシュ機能: ビルドしたファイルをキャッシュで共有することで、複数回のビルドを高速化できます。これはccacheに似ていますが、C/C++のコンパイルだけでなく、あらゆるターゲットファイルに対応しています。
クロスプラットフォーム対応: Linux、その他のPOSIXシステム(AIX、BSD系、HP-UXIRIXSolaris)、Windows NT系、macOS、OS/2など、多様なプラットフォームで動作します。

SConstruct ファイルの例



python
Program('main.c')


この例では、`scons`コマンドを実行すると、`main`(Linux)または`main.exe`(Windows)という実行ファイルがビルドされます。

歴史



SConsは、元々はScConsという名称で、2000年8月にロスアラモス国立研究所が開催したSoftware Carpentry(既存のプログラミングツールを代替するソフトウェアを募集したイベント)のビルド部門で優勝しました。Consというユーティリティをベースに設計されました。

関連プロジェクト



Wafは、かつては"SCons/BKsys"という名称で、SConsに影響を受けてKDEコミュニティが開発したビルドツールです。当初はKDE4以降のビルドに採用される予定でしたが、後にCMakeに移行しました。

SConsを使っている主なアプリケーション



(この情報は提供されていません)

注釈



(この情報は提供されていません)

脚注



(この情報は提供されていません)

関連項目



Ninja
Buildout
Autotools
CMake
Waf

外部リンク



SCons: A software construction tool - SCons 公式ウェブサイト
Make Alternatives Freshmeat
Stop the autoconf insanity! Why we need a new build system. Freshmeat
* Empirical Comparison of SCons and GNU Make, Ludwig Hähne, Technical University Dresden, August 21, 2008

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。