2011-07-27 23 views
1

私はbashのスクリプトと再帰的に組み合わせたシンプルなのMakefileの束を使用して一緒に石畳の古いカスタムビルドシステムを用いて微細構築する大規模なコードベースを持っています。ソースと実行ファイルからMakefileを生成しますか?

どのように私は、GNUの現代版を使用してビルドシステムを再作成に取り掛かることができますが作りますか? (またはいくつかの他のツール。)

コードベースが大きい場合には、多くのサブディレクトリに分割し、非自明なクロスサブフォルダ依存や要件を連結するシステム・ライブラリを有します。

私はうまく現在のビルドシステムを使用して実行ファイルのデバッグ対応のセットを構築することができますので、ビルドとリンクするルールの新鮮なセットを構築し、これらのファイルにイントロスペクションする方法はありますか?

ありがとう

答えて

2

このビルドシステムを解体する魔法はありません。それを掃除するのは、ゆっくりと、慎重に(すべての方法で自然に)テストします。

あなたがまだない場合はスタートは、GNUMakeの下であなたのメイクファイルを実行しています。徐々にそれらをきれいにし、それらをマージし、それらにbashスクリプトの機能を吸収させます。これらの "重要でないクロスサブフォルダの依存関係"をグラフ化する。 Makeがどのように依存関係を処理するのかを見てください。それに気づいたら、Advanced Auto-Dependency Generationを片側のサンドボックスに入れてみてください。最初は理解するのはちょっと難しいですが、いったん使い始めると、それは大好きです。

あなたはただ一人で十分に残すように誘惑することができます。結局のところ、ビルドシステムはそのまま動作します。問題はそれがシュヴァルツシルトの限界を黙っていることです。今すぐあなたはそれをきれいにすることができます - それは簡単ではありませんが、それはあなたの能力の範囲内にあります。しかし、そうしないと、コードベースを少し変更するだけでビルドシステムが少し変更され、常に追加され、決して減らされることはありません。ビルドシステムは、サイズや複雑さが増し、クリーンアップの仕事はあなたの地平線を越​​えるまで徐々に難しくなります。その後、あなたはその成長を成長よりも速く減らすことができません(そしてまだ他のすべてを行いますあなたがしなければならないこと)。これはa well-known anti-patternです。

関連する問題