web-dev-qa-db-ja.com

BSDでソフトウェアをビルドするための好ましい方法は何ですか?

BSDでソフトウェアを構築するための好ましい方法は何か、そしてBSDがGNU autotoolsを積極的に使用し、その使用を奨励しているかどうか。

GNU autoconf in OpenBSD Handbook :について次のセクションを見つけました。

autoconfは、ポータブルプログラムの作成に役立つはずのgnuツールです。多くの場合、automake(ポータブルmakefile)およびlibtool(ポータブル共有ライブラリ)と一緒に使用されます。

これらのツールはそれほどうまく機能せず、ソフトウェアをOpenBSDに移植する際に特定の課題を引き起こすことがよくあります。

これはあまり勇気づけられないようです。 OpenBSDには独自のautotoolsのようなプログラムがありますか?構成スクリプトを自分で作成することになっていますか?たとえば、OpenSSHisはautoconfを使用していることがわかります。

FreeBSDの Handbook には中立的なセクションがありますが、それでも「特別な考慮事項」セクションにあります。

さまざまなGNU autotoolsは、さまざまなオペレーティングシステムとマシンアーキテクチャ上でソフトウェアを構築するための抽象化メカニズムを提供します。[...]

6
user846

通常、特定のBSDバージョンをターゲットにしている場合は、そのBSDのmakebmakebsdmake、またはpmakeとも呼ばれます)を使用します。これには、構築する特定の種類のターゲット用に事前定義されたさまざまなルールセットがあります。

たとえば、NetBSDでは bsd.prog.mk は通常、プログラムのビルドに使用されます。プログラムの名前とソースファイルを宣言するだけで、正しい設定でコンパイラとリンカが自動的に呼び出されます。これにより、プログラムをbuild.sh(ソースからオペレーティングシステム全体を構築するNetBSDプログラム)に統合することもできます。これは、DESTDIRやクロスコンパイル設定などを自動的に取得するためです何か特別。ライブラリを構築するための同様のルールファイルなどがあります。

これをどこでも使用するための主な障害は、これがかなり移植性がないように見えることです。 BSDの長所と短所については この議論 も参照してください。

1
sjamaan

OpenBSDがベースシステムで私のプログラムの1つを使用する場合、configureスクリプトを無視する可能性があることを私は見ました。

そして、再び、彼らはそうではないかもしれません。それは誰が仕事をしたかによります:

  • lynx (configureスクリプトを使用したようですが、一部のパッチはconfigureチェックを削除しました...)

ただし、configureスクリプトはポート領域で許容されます。ポートメンテナがautoconfを承認しなかったという理由だけで、makefileを作成しているのを見たのはかなり前のことです。

0
Thomas Dickey