2009-03-16 6 views
1

ソースツリーから、プロダクションビルドとデバッグビルドの両方で通常3つのアクティブブランチを使用して、20個以上のターゲットをビルドします。これまで私は、特定のソースツリーからのMakefileを含むコンパイルフラグを定義する共通のMakefileを含むターゲットを定義する個人用のMakefileを使用しました。これは機能しますが、私は助けができませんが、よりよい方法があると考えています。sqliteを使用してMakefileビルドフラグを管理する

私は、sqlite3データベースを使用してビルドフラグの完全なリストを保存して整理したいと考えています。コンパイル時に、プロジェクトのバージョン、プラットフォーム、およびdev/productionに基づいてフラグを生成し、ビルドを開始するために、データベースを生成するためにデータベースが照会されます。

このデータベースは、すべての開発ビルドの現在の設定を文書化して追跡できる単一の場所です。格納されたフラグの基本セットは、バージョン、ターゲットプラットフォームでより細かいフラグによって上書きされ、次に品質レベルを構築します。

このような何かを実装するの一環として、私はまた、より簡単にこれを採用したデータベースを操作し、取得/私の研究室でのフラグだけでなく、他の開発者の許可を設定するには、シェルスクリプトの一握りを作成します。

これはすでに完了していますか?このようなものの例はありますか?

これを処理する別の方法がありますか?

2つのもの: *元のプロジェクトのMakefilesは変更できません。 *コードベースの既存のモジュールでデバッグレベルを有効にするのに必要な数の を構成するフラグが数百になるので、automakeのようなものを使用しようとすると面倒です。

答えて

0

IMHO、これはデータベースを使用して、過剰なものです。 makefileインクルードを使用することは、これを処理するきれいで簡単な方法です。このアプローチに関するあなたの懸念/問題/問題は何ですか?おそらく、データベースを追加することなく、全く異なるビルドシステムに切り替えることなく、あなたの目標を達成するためにmakefileを再構築する方法があります。

1

あなたはもっと洗練されたビルドシステムを見てみたいと思うかもしれません。 antjam、その他のビルドシステムツールをご覧ください。 GNUの標準的なやり方は./configure(autoconf)のスクリプトだと思いますが、さまざまな設定を管理するのは難しいでしょう。

あなた自身のMakefileの設定システムを書くことが可能ですが、私はより標準的なビルドシステムを使用して正しい答えであることを、あなたのコードが広く採用を持つようにしたい場合はと思われるでしょう。

+0

これは、プロジェクトがコードの行とのMakefileはautoconfのようなものへの変換を生き残ることはないひねりの13年を持っている数十万のが含まれているとして、元のMakefile源から離れて実行する必要があります。 –

+0

ああ...そのスライス! – dicroce

+0

私はオリジナルのMakefileを書き直すことができないので、ant、jam、autoconfはこのインスタンスでは動作しません。 –

関連する問題