まず第一に、基本/中級レベルのメイクファイルの書き方を知っています。私の C++ プロジェクトでは、多くのことを自動的に行うメイクファイルを使用しています。私にとって最も重要なのは、ワイルドカードを使用して (常に同じフォルダーにある) すべてのソース ファイルを自動的に検出し、それを使用してすべてのオブジェクト ファイルの名前 (および場所) を予測し、適切にコンパイルすることです。
最近、私は自分の scala プロジェクトで同じ効果を達成しようとしてきましたが、2 つの障害にぶつかりました。
- パッケージに属するコピーされたクラス ファイルは、サブディレクトリ ( など
com/me/mypack/
) 内に格納されます。Makeはタイムスタンプをチェックするためにこれらのファイルを見つける必要があるため、これは問題です (そして、それを自動的に行う方法がわかりません)。 - 一部のソース ファイル ( を定義するファイルなど
package object
) は、異なる命名基準でクラス ファイルを生成します。繰り返しますが、Make はこれらのクラス ファイルがどこにあるかを知る必要がありますが、それを自動的に行う方法がわかりません。
この結果、実行するたびに「問題のある」ソース ファイルが再コンパイルされますmake
(これは、scala の長いコンパイル時間によって悪化します)。予想されるクラスファイルのリスト全体を手動で書き出すことなく、それを修正する方法を知りたいです。
EDIT 追加の注意として、ソースファイルをサブディレクトリに配置することは避けたいと思います。いくつかの理由から、それらをすべて同じディレクトリに保持するのが好きです。