autotools はすべての主要な UNIX システムでそのまま使用できますか? 追加のソフトウェアをインストールせずに、プラットフォームに依存せずにコードをコンパイルできるもの (UNIX フレーバーとアーキテクチャ) を探しています。
3 に答える
autotools を正しく使用すると、最終結果はスクリプトconfigure
になるため、
configure
make
make install
動作します -- そして、そうです、autotools のまさにポイントは、これがほぼどこでも動作するということです。
私は最近両方を使用しましたが、全体的には autotools よりも cmake を好みます。必要なスクリプトが少なくて済み、cmake の方が少しシンプルであることがわかりました。cmake make をオプションとしてインストールする必要がありますが、ほとんどの Linux ディストリビューションには両方のパッケージが含まれています。
自動ツールは単純なプロジェクトには問題ありませんが、私の経験では、ライブラリなどをチェックするときに多くの追加のスクリプトが必要でした.一方、cmakeは依存関係を簡単に検出できました. また、気にしないかもしれませんが、Windowsプラットフォームでのコードのコンパイルも簡単になります
Autotoolsは、ビルダーのシステムではなく、開発者のシステムにのみインストールする必要があります。それらの出力は、目的の Makefile を作成する独立した sh スクリプトです。ただし、場合によっては (「automagic」依存関係など)、ビルダーもautotoolsを必要とする場合があり、特定のバージョンが必要になることは珍しくありません。
autotoolsは基本的に、スクリプト化されたあいまいなクラッジの巨大なコレクションであり、さらにあいまいなマクロ言語であるm4で記述されるディレクティブ ファイルによって駆動されます。プロジェクトがクロスコンパイルされる可能性が少しでもある場合は、 autotoolsとその兄弟から離れてください ( libtoolを読んでください)。
cmakeははるかに優れた代替手段ですが、sconsのようなさらに優れた無駄のないプログラムがあります。
それでも、今日のほとんどの Unix システムは、10 年以上前、つまりautotoolsが考案されたときとは対照的に、ほとんど ANSI C および POSIX に準拠していることを認めなければなりません。プロジェクトを移植可能な方法でコンパイルできるようにするために、従来のmake以外の必要性はほとんどないと思います。