問題タブ [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.

0 投票する
0 に答える
428 参照

c++ - m4/glib のコンパイル中にエラーが発生しました

コンパイルに問題がありますglib。最新ではないようm4です。次のエラーが表示されます。

したがって、glib をコンパイルすると、次のエラーが発生します。

PerlAutoconfおよびAutomake 1.14コンパイルに成功しました。したがって、問題は m4 にあると結論付けます。

0 投票する
7 に答える
34267 参照

makefile - autotools で生成された tarball のユーザーが次のエラー メッセージを受け取る: aclocal-1.13: コマンドが見つかりません

autoconf バージョン 2.69 で生成されたインストール スクリプトを含む tarball を配布しています。多くの異なるマシンで正常に動作します。現在、新しい Arch Linux システムで作業しているユーザーは、configure適切に実行されると報告しmakeますが、次のエラー メッセージですぐに終了します:

acinclude.m4プロジェクトディレクトリにはありません。aclocal.m4ユーザーは、プロジェクト内の、configure.ac、ファイルm4/、またはその他のファイルを変更していないことを保証します。

エラーメッセージは私には意味がありません.私が理解しているように、私aclocalが実行すると実行されますautoreconf -if; aclocal.m4私が配布する tarball の一部であるファイルを生成します。makeユーザーのコマンドが を要求する理由はありませんaclocal

ユーザーはさらに、 を実行することで自分で問題を解決できると報告していaclocalます。しかし、それはクリーンな解決策ではありません。パッケージャーは、ユーザーに autotools をインストールするよう要求するべきではありませんよね?

完全を期すために、完全なものを添付しconfigure.acます。何か問題がありますか?

この問題は、tarball に属さないファイルが存在することが原因である可能性がありますか? ソースファイル自体を除く tgz アーカイブの内容は次のとおりです。

0 投票する
2 に答える
342 参照

bash - m4_toupper は、変数に空の文字列を返します

文字列変数を大文字で出力したい。マクロを使用しようとしてm4_toupperいますが、変数が無視されているようです。

たとえば、次のコードがあるとします。

次の出力が得られます。

が大文字になっているのでx、m4 マクロは正しく動作していると思われますが、変数文字列を受け取っていない可能性がありますが、echoステートメントは正常に動作しているようです。空の文字列が返されるのはなぜですか?

0 投票する
4 に答える
1590 参照

bash - m4 の esyscmd から末尾の改行を削除します

私は m4 を使用していくつかの基本的なマクロを作成していますが、使用するとesyscmd、コマンドの実行時に文字列に末尾の改行が追加されることに気付きました。

例:

レンダリング:

(末尾に改行を追加)

define (または esyscmd) の最後に追加するdnlと、何も起こらないように見え、末尾に改行がまだ残っています。

esyscmdm4を呼び出すときに末尾の改行を削除する最良の方法は何ですか?

0 投票する
3 に答える
379 参照

shell - BASH/SH/ .. AutoConf: Wrapping string comparison

I am modifying a configure.ac for use with AutoConf: http://mathpad.wikidot.com/acousto-configure-ac

The script points out that it needs to run on darwin, solaris, cygwin and linux.

I assume this is why it uses an arcane method of comparing strings:

This double negative makes it difficult to read through the code. Can I clean it up?

How might I implement a string comparison macro:

Or:

And this is the best way of solving the problem?

EDIT: apparently this script is written in M4 http://www.gnu.org/software/m4/manual/m4.html