代替案のためのlinux/freebsd?[定休日]
質問
そのう代替 作 linux/freebsd?
解決
私は SConsはのが好きです。これは、すべてのビルドスクリプト(SConstruct
ファイル)も構文的に有効なPythonプログラムであるように構成されています。だから、あなたはあなたがする必要がある場合は、ビルドスクリプトに任意のPythonロジックを構築することができます。
またmake
よりもはるかに高速だし、自動的に依存関係の多くの種類を計算します。
他のヒント
私の最初の質問は次のようになり、観客ものです。これは、社内でのみあなたのチームが構築するソフトウェアを構築するためですか?その場合は、すでに提示オプションのいくつかを探ります。これは他の人がメイクに固執、またはメイクファイルや船、それらを作成するツールを使用するか、構築されるものです場合。私たちは、Linuxや他のUNIXプラットフォームのためにautoconfとautomakeをを使用しています。私の意見では、あなたは、configure以外の何かをする非常に良い理由が必要。作ります; make installを。ブーストは、独自のツール(ジャムの修正版)を有しており、それは私がしようとすると、それは珍しいマシン上でコンパイルするために取得する必要が毎回私を悩ますます。
Automake:pで広く使用されている多くのlinuxアプリの配布がするとともに、そのビット以上の仕事がありMakefileがより良い結果を http://www.gnu.org/software/automake/
http://www.openismus.com/documents/linux/automake/automake.shtml <--素敵な説明が使用方法などのautomakeは、autoconf
、アリのがあります。私は自分自身それでその興味はないんだけど、それはいくつかの移植性の利点(UNIXシェルには依存、など。)
を提供しません私はジャムについて良いものを聞いたことがある。
OMakeのの自動依存性のC / C ++、OCamlの、および乳液のためのビルド・ツールであります分析。これは、簡単に複数のディレクトリ上のプロジェクトを構築することができ、そしてそれはMD5サムではなく、タイムスタンプに基づいて、変更を検出します。また、ファイルが変更されるたびにプロジェクトを構築、それがバックグラウンドで実行可能なモードがあります。 makeはよりも一般的には、(C / C ++またはOCamlのプログラムやライブラリ)プロジェクトの共通の種類を構築するために以下のコードを取ります。私は大きなプロジェクトのためにそれを試していない。
OCamlのリンカが必要とするため、あなたはOCamlのでプログラムしたい場合は、このツールは非常に便利であることに注意してください依存関係のために、コマンドラインに表示されるように、モジュールをコンパイルし、この順序を考え出す何かが変わるたびに非自明です。
私はものをベースといくつかのautotoolsの移植を含め、私のプロジェクトの多くのためにCMakeを使ってきたし、私はそれが非常によくその仕事をしていると言うことができます。これは、C / C ++クロスプラットフォームのプロジェクトのために主に適しています。
私が働いているプロジェクトは(グレッグHewgillの答えでCons
ていない、混乱に)代わりにMake
のSCons
を使用するいくつかのコードを継承します。
Cons
はSCons
はPythonで書かれている多くのように、Perlで書かれています。それは自動的に依存関係を管理し、そしてあなたは、複雑なビルド・シーケンスを処理するために、ビルドスクリプト内の任意のPerlコードを使用することができます。
主な欠点(と私は私のプロジェクトでそれを使用して申し訳ありません主な理由は)Cons
が並列にmake -j
のスタイルでビルドを行っていないということです。あなたがお互いCons
に依存しないファイルの数をコンパイルしている場合make -j
はあなたのマシン上で複数のコアとスレッドを持っている場合は偉大である、それらを並行してコンパイルしますが、それらを一度にコンパイルされます。
もう一つは作るkmake
です(自身の言葉でkbuild
の一部、のkBuildは、複雑なタスクのための簡単なmakefileを書くためのメイクファイルのフレームワークです。の。)。これは、GNUのmake
の拡張バージョンです。これは、VirtualBoxのの人々によって開発されています。彼らは、Windows、Linux、MacOSのおよびSolarisのために彼らのVirtualBoxの製品を構築するためにそれを使用します。プリティ・ポータブル!
詳細については、 http://svn.netlabs.org/kbuild のを参照してください。
のは興味深い代替手段です。 Pythonで書かれ、それはあなたが、プレーンPythonでビルドロジックを記述することができます。パラレルはかなりよく+半自動マジックシグネチャベース依存追跡作業を構築します。それは(つまりは、Windows上でビルドを行う方法を知っている)おそらくクロスプラットフォームだが、私はそれを試していません。
これはかなり急な学習曲線を持っているが、それはまた、WAF」のが付属しています著書「プロセスを支援するためにを。