4

の出力に複数回使用したい文字列がありますconfigure --help。だから私はこのようなことをやってみますconfigure.ac:

AC_ARG_ENABLE([foobar],
              AS_HELP_STRING([--enable-foobar], [$foobar_help_str]))

ただし、展開や置換は行われないため、出力は$foobar_help_str.

4

2 に答える 2

2

参考までに、生成されたconfigureスクリプトを見ると、ヘルプ テキストはすべて、引用された「ヒア ドキュメント」内の 1 つのテキストの塊に事前にフォーマットされていることがわかります(によって stdout に送信されますcat)。スクリプトの実行時 (つまり、 として実行するとき) に置換が行われるようにします./configure --help。これは間違いなくバグであると主張できますが、一方でautoconf、ヘルプ テキストをきれいに印刷するために行われる処理は、最終的なスクリプトがどのように実行されるかを知らずに行われるため、どの変数が設定される可能性があるのか​​ わかりません。また、それらが取る可能性のある値の範囲はautoconf、実行時に変数が持つ可能性のある値が何であれ、ヘルプテキストのフォーマットにどれだけのスペースを割り当てるかを知る方法がありません.

バイナリ オプションのみが必要な場合 (つまり、[=ARG]機能が使用されていない/必要でない場合)、デフォルト設定自体が最初に定義されている場合、デフォルト設定に基づいて適切なヘルプ テキストを生成するスマート ラッパー マクロを作成できるはずです。受け入れられた回答で提案されたものと同様の方法で M4 マクロとして。

于 2016-09-09T07:50:40.300 に答える