小規模から中規模のOCamlプロジェクトを構築および管理するための標準的な方法は、生態系の新入者にとっては不明です。私はocamlc
、& cの基本を理解しています。彼らは従来のUNIX Cコンパイラをそのまま反映しています。しかし、個々のファイルの一回限りのコンパイルのレベルよりも、コンパイルを簡単かつきれいに管理するにはどうすればベストであるかは不明です。問題は潜在的なツールを探しているのではなく、標準OCamlプロジェクトを構築して構築するために、コミュニティの経験によって検証された1つまたは少数のRight(十分な)方法を見ています。OCamlプロジェクトを構築して構築するための好ましい方法は何ですか?
私のモデルのユースケースは、純粋なOCamlまたはOCamlにC依存関係を加えた、控えめながらも重要なプロジェクトです。このようなプロジェクト:
- は、標準ライブラリの数に
- リンク一つ以上のサードパーティのライブラリへ
- リンク
- ように任意にCライブラリとOCamlのラッパーを含むソースファイルの数が含まれていますサブプロジェクトいくつかの代替ツールが目立つ
((3)のように、これはまた、個別に管理し、サードパーティのライブラリとして含めることもできるが):
- カスタムメイクファイルは、ほとんどのオープンソースOCamlパッケージで共通の標準であるようですが、控えめに複雑で複雑なようです。控えめなC/C++プロジェクトよりもさらにそうです。さらに悪いことに、一見シンプルなOCamlライブラリでも、autoconf/automakeをレイヤーに重ねることで、さらに複雑さを増すことができます。
- ocamlbuildは、最小限の設定でビルドを自動化するための最新の簡素化されたメカニズムを提供するように思われますが、新規ユーザーやOCamlエコシステムの入門資料ではあまりよく示されていません。インスピレーションのために閲覧したOCamlプロジェクト。
- OASISは、Cabalのようなパッケージマネージャとライブラリの構築をサポートするために、他のビルドシステムの上に規則とライブラリコードのレイヤーのようです。
(私も自称「make++
」も標準ルールのテンプレートを提供し、OCamlで、かつocaml-make旧姓OCamlMakefileを含む一般的な言語の標準的なルールのスイートが含まれように表示される、OMakeを見てきましたGNU make
の場合)
これらのどれかが、OCamlビルドを管理するための最も現代的な方法ですか?
プロジェクトファイルはどのように構成されていますか?
サードパーティライブラリの依存関係はどのように含まれ、管理されていますか?システムレベルでインストールすることをお勧めしますか、プロジェクトにローカルで管理するための標準的かつ直接的な方法はありますか?私は、プロジェクトが可能な限り自己完結型であるモデルを好むでしょう。
とクロスコンパイル...
=>のocaml-のautoconfを扱うことができます。 –
リンクは固定されました – ygrek