Linux システムで実行するアプリケーションを構築しています。現在、ビルド プロセスは、複雑すぎる単純な Makefile で構成されています。
Linux アプリケーションを適切に開発する方法について、基本的な理解が欠けていると思います。私が見つけた情報は次のとおりです。
- アプリケーションには
make install
、すべてのファイルを適切な場所に移動するターゲットが必要です。 - アプリケーションをインストールする通常の場所は
/usr/bin
または/usr/local/bin
です。 - データ ファイルはそれぞれ
/usr/share
またはに配置する必要があり/usr/local/share
ます。ビルド プロセスのどこかでパス プレフィックスを設定できるはずです。
この情報を得て、私は今疑問に思っています:
- プレフィックスを適切に構成する方法: ビルド プロセスはパスをパラメーターとして取得し、それをコードにハードコードする必要がありますか? これはテストにも不可欠です。すべてをどこかにインストールする必要なく、ソース フォルダーのデータ ファイルのみを使用する実行可能なバイナリを何らかの方法で作成できるはずです。
- autotools や cmake などを使用する必要がありますか? autotools は、少なくともビルド システムだけでなく、プレフィックスの構成なども処理するようです。これは正しいです?cmake はどのように比較されますか?
- これは請負仕事ですが、本当にこれらのことを気にする必要がありますか? アプリケーションは、明確に定義された顧客のシステムでのみ実行されるため、必要なすべてのファイルを含むフォルダーを提供することで問題を解決でき、そのフォルダー内からアプリケーションを実行できました。
したがって、私は基本的に、可能性と一般的な慣行について概説し、ビルドと展開のプロセスを微調整するかどうか、およびその方法について十分な情報に基づいた決定を下すことができる優れたリソースを探しています。