問題タブ [m4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
autotools - autotools 条件テストには、伝統的に余分な「x」があります
autotools でテストを書くとき、x
空になる可能性のある変数の前に文字を置くのが伝統的なようです。
状況に応じて、変数variablethatneedscheckingforempty
は通常、空/未定義の値を取りyes
ますno
。
コードは/bin/sh
使用前にシェルに変換されるため、これは冗長に思えます。または、余分な文字を文字列に配置する正当な理由はありますか?
python - Python で m4 を使用し、インデントと空白を処理する方法
Python で m4 を使用するための適切な一般的な戦略はありますか? 具体的には、Python の空白要件により、m4 の使用はやや厄介になります。たとえば、次のプログラムです。
test01.def
として_
Python プログラムを生成します。
そのため、インデントはオフです。確かに、これを修正できます
ただし、コード構成のインデントを追跡するのが難しくなるため、編集するファイルが見苦しくなります。本当に、私がやりたいことは、最初のプログラムを使用して、インクルードの前に m4 に先頭の空白を食べさせることです。m4 が先頭の空白を食べることが可能かどうかはわかりません。
さらに、Python 固有のマクロ ユーティリティがあることも認識しています。しかし、私はこれらを使用することに興味がありません。これらの X マクロを C や LaTeX などのさまざまな言語で使用する必要があります。m4 はすぐに利用でき、言語に依存しないため、これらの各ケースで m4 を使用するつもりです。そのため、可能な場合は m4 ソリューションを本当に探しています。
macros - m4 マクロでテキスト ブロックをインデントする方法
m4 マクロでテキストのブロックを均一にインデントする良い方法はありますか? つまり、マクロ
生成する
テキストのブロック全体を指定された量にインデントする方法が欲しいです。
c++ - Automake を使用して bin_SCRIPTS 内の各ファイルにコマンドを適用する
私のプロジェクトには、C/C++ バイナリと共にインストール ルートにコピーされる一連の bash スクリプトがあります。
問題は、これらの BASH スクリプトをインストールする前に、それぞれに対してコマンドを実行する必要があることです。より具体的には、変数を autoconf 出力変数に置き換える必要があります。
Makefile.am でスクリプトが定義されている場所は次のとおりです。
これに対処する標準的な方法があるかどうか疑問に思います。そうでない場合は、それに対処するためのハックを用意したいと思います。ありがとう!
アップデート
私はそれを解決するためのハックを思いつきました.Automakeのレシピは次のとおりです:
しかし、それを行う標準的な方法があるかどうかはまだ疑問です
automake - hunspell を再コンパイルするときに automake に自分のバージョンの aclocal を見つけるように指示する方法は?
現在、次のように、fedora からダウンロードした git ソースから hunspell を再コンパイルしています。
HACKING の手順で述べたように、すべての前提条件をインストールし、ビルド コマンドを実行しました。
そして、私はこのエラーメッセージを受け取りました:
私のコンピュータには automake 1.14 がインストールされています。
システムが「make」しているときに発生する問題のあるステートメントはどれですか。私のaclocalを見つけるようにmakeに指示する方法はありますか?作るときの工程をなぞってみました。リストされた手順を投稿しますか?
皆さんありがとう。
escaping - GNU m4: バッククォート (`) のエスケープ
簡単な GNU m4 の質問ですが、正しい答えが見つかりません。コードセクションを開始/終了するマークダウンヘッダーを出力したい:
3 つのバッククォートを含む GNU M4 マクロを作成するにはどうすればよいですか? 何かのようなもの
assembly - m4 の --synclines オプションのコメント記号を変更するには?
m4
コマンドラインオプションでプリプロセッサを使用しています--synclines
。このオプションは#line <nn>
、展開された各複数行の後に行を出力します。
例:
結果:
sr0(reg_0, 3) は 2 行目で発生したため、#line 2
各展開の後に m4 が追加されます。
#
コメント記号をに変更するにはどうすればよい;
ですか? #
アセンブラがコメント記号としてサポートしていないためです。
linux - autoconf/configure.ac で AC_CHECK_HEADER が失敗した場合、プラットフォームごとに異なるフィードバックを指定する方法は?
configure.ac
ソースルートにあるヘッダーファイルをチェックしています
そして、ヘッダーを提供するさまざまな最も簡単な方法を反映するために、さまざまなプラットフォームでさまざまなフィードバックを提供したいと思います。
- Debian では、メッセージでエラーになるはずです
Couldn't find or include log4c.h. Install log4c using 'sudo apt-get install liblog4c-dev'
- OpenSUSE では、エラーが発生するはず
... Install log4c using 'sudo yum install log4c-devel'
です (パッケージ名は調査しませんでしたが、私のドリフトをキャッチしました)。 - 他のシステム(パッケージ名を調べるのが面倒なところ)では、次のエラーが発生するはずです
... Install log4c by fetching ftp://.../log4c.tar.gz and installing with './configure && make && make install' in the source root
私
- マクロをチェックしましたが、 inではなくin で
AM_CONDITIONAL
使用する方法がわかりません( autoconf/automake: conditional compilation based on presents of library? で説明されているように)configure.ac
Makefile.am
esyscmd
stackoverflow.com/questions/4627900/m4-executing-a-shell-command で実行するためのヒントを見つけましたが、実行しても何も出力esyscmd (/bin/echo abc)
されません。configure.ac
autoreconf --install --verbose --force
上記のOSのシェルコマンドを使用しない条件付きマクロの使用法と、事前定義されたマクロ( 、など)へのリンクを説明する両方の回答AC_CHECK_HEADER_DEBIAN
がAC_CHECK_HEADER_SUSE
高く評価されます。
以下configure.ac
は機能しません。
./configure
で失敗するため
./configure: line 4427: #include: command not found
が指定されているかどうかに関係なく発生するものもありAC_CHECK_HEADER
ます。