0

autoconf / automakeを使用した非常に複雑な(C ++)プロジェクトがあります。これには、いくつかの「生成された」ファイル(foo.yy-> foo.cc)が含まれています。実際のビルドは、さまざまなプラットフォームで「制御スクリプト」(概念に精通している人のためのGentoo .ebuild)を使用して行われます。

現在、ターゲットプラットフォームの1つはfoo.yy-> foo.ccステップを適切にサポートしておらず、Linuxボックスで生成されたfoo.ccファイルを使用する必要があります。

今、私はこれについて行く2つの方法があります:

1)foo.ccをプロジェクトリポジトリにチェックインし、configure.in(またはその他)にパッチを適用してfoo.yy / foo.ccにタイムスタンプチェックを含め、問題のターゲットで古いターゲットで実行すると、わかりやすいエラーメッセージを生成します。 foo.cc;

2)foo.ccを制御スクリプトリポジトリにチェックインし、スクリプト制御のタイムスタンプを取得して、エラーメッセージを表示します。

2)問題ありませんが、foo.ccを配置するのに適切な場所ではないと思います。

一方、私はautoconf / automakeについてあまり知りませんし、configure.in(またはどこでも)にタイムスタンプチェック/エラーメッセージを実装する方法を知りません。

あなたの提案は何ですか、そしてここの誰かが解決策1)について行く方法を知っていますか?

編集:解決策3)を使用して解決し、foo.yy->foo.ccステップ自体を実行できるようになるまで問題のあるターゲットボックスを微調整します。私の問題は解決しました。

しかし、私は質問を開いたままにしておきます-autoconf / automakeでタイムスタンプチェック/わかりやすいエラーメッセージを実行する方法は?

4

1 に答える 1

0

Automakeマニュアルの8.8から:

「yacc」(または「lex」) によって生成された中間ファイルは、作成されるすべてのディストリビューションに含まれます。そうすれば、ユーザーは「yacc」または「lex」を持つ必要がなくなります。

それは、あなたが説明している問題が存在してはならないかのように聞こえます。

于 2009-07-28T09:58:31.360 に答える