问题标签 [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 投票
1 回答
653 浏览

macos - OSX autotools:“autom4te”没有输出“aclocal.m4”

freetype2几周以来,我一直在尝试在 OSX Mavericks 中构建库,但没有成功。

麻烦在于使用GNU Autotools创建configure构建脚本。

我已经安装了automake, autoconf, libtoolize,m4perl5使用了 macportsport命令。

执行时aclocal,应该在configure包含 Autotools 宏的目录中创建一个文件:aclocal.m4. 但是,这个文件没有被输出,并且后续的glibtoolizeautoconf命令正在生成一个虚假的configure脚本。

结果是:没有aclocal.m4文件,并且通常的内容./autom4te.cache/traces.*被转储在生成configure的文件的顶部(traces.*文件是空的)。

例如:

任何帮助将不胜感激。

0 投票
1 回答
225 浏览

unix - 使用 m4 模板来模板化文件名

我有一个使用 m4 模板来模板化事物的项目。我需要做的是根据 m4 文件中的参数实际创建文件。文件内容将保持不变。

所以,假设我有这个:

开发.m4

过滤器模板

我需要创建一个文件:

filter_%%A_NODE%%_%%A_NODE_PORT%%.cfg 与来自 filter.template 的数据

是否有可能在 m4 内或者我需要编写一些脚本代码?

0 投票
2 回答
3084 浏览

assembly - ARM Cortex-M4,使用 UART_DR 和 FIFO 读/写

所以我正在学习 ASM,并且有一个 LM4F120XL ARM Cortex-M4 MCU。我正在使用 Keil uVision V4.54。

我熟悉设置端口等,初始化 GPIO 和 UART。

例如,我坚持的是通过串行读取和写入 TeraTerm/Putty。

我了解 RxFE = 0,FIFO 不为空 - 从中​​读取;并且 TxFF = 0,FIFO 未满 - 写入它..

但是在比较并满足这些条件之后,我实际上将什么数据写入 UART_DR,数据寄存器..?是否只是将数据寄存器加载到寄存器中,将此地址处的值加载到另一个寄存器中,然后......我丢失了,因为我没有更改位我正在添加新数据 - 然后你会从这个寄存器回到数据寄存器寄存器..

因此,如果数据寄存器中存在数据,那么它会及时传递出去..?我可以使用正确的 COM 端口连接到 TeraTerm,调整 BAUD 和 PARITY 设置。但再一次,如果数据寄存器中存在数据,在到期周期后会自动发送......?

另外,如何从键盘读取字符..?或其他计算机外围设备..是否知道地址,将值加载到寄存器中,然后将其存储到数据寄存器中?如果数据寄存器保存数据,则需要以非破坏性方式完成。

为什么每篇关于 MCU 编码的文章都是用 C++ 而不是 ASM 编写的?我也在学习 C++ 但不知道为什么没有人使用汇编/机器代码..

;--------

读取字符

inloop LDR R0, =UART_FR LDR R1, [R0] AND R1, #0x10 CMP R1, #0x0 BNE inloop

;--------

输出字符

外环回 LDR R0, =UART_FR LDR R1, [R0] AND R1, #0x20 CMP R1, #0x0 BNE 外环回

;--------

0 投票
2 回答
393 浏览

autotools - “帮助”字符串变量替换“配置--帮助”

我有一个字符串,我想多次使用它来输出configure --help. 所以我尝试做这样的事情configure.ac

但是没有进行扩展或替换,所以输出只是$foobar_help_str.

0 投票
0 回答
161 浏览

autotools - 使用 GNU Autotest 进行任意数量的测试

我正在使用 Autotools 开发一个项目,并希望为所有功能测试集成 Autotest。每个测试都必须像这样运行:

我的$(top_srcdir)/tests目录如下所示:

两者均包含 150 个测试文件good/bad/我想避免手动输入每个测试,我似乎无法找到如何重现类似 m4/Autotest 宏的下一步:

最接近我的真实案例(也是我发现的)位于 m4 项目的测试套件中,该套件generated.at使用自己的文档生成文件。
我应该遵循这种方式并在调用on之前生成good.atand ,还是有办法使用 m4/Autotest 宏?bad.atautom4tetestsuite.at

谢谢!

0 投票
0 回答
300 浏览

linux - autoconf 和 sysvinit/systemd 等

我经常遇到的一个问题autoconf是初始化脚本。重点autoconf当然是可移植性,各种初始化系统(sysvinit、systemd、upstart)——更不用说不同发行版(如/etc/init.dvs /etc/rc.d/vs /etc/rc.d/init.d)上相同初始化系统之间的各种差异——都迫切需要可移植的启动/停止脚本解决方案。

我以为现在有人会创建一个很好的 m4 宏来处理这个问题,但我找不到。

这很奇怪,因为这似乎是一个常见问题,而且他们现在甚至有 m4 宏来检测更新的问题,例如 C++11 兼容性和其他问题。

因此,在我卷起袖子花时间制作一个(希望如此)体面的 m4 宏来尝试确定要使用的 init 系统之前,我很想知道其他人是否已经做得更好。我似乎在谷歌上找不到任何东西——我什至读过人们实际上不鼓励使用autoconf安装初始化脚本的帖子。就个人而言,我认为这种观点是不切实际的——现在的用户已经习惯于包管理器自动安装初始化脚本,所以没有理由不应该在从源代码编译时得到相同的结果。

那么,是否已经有一个很好的 m4 宏可以处理这个问题,或者我应该花时间编写自己的宏吗?

0 投票
1 回答
158 浏览

m4 - 传递给宏的非空参数的数量

在 GNU M4 中,我一直在尝试编写一个函数来确定有多少非空(不等于的参数`')传递给它。

它应该可以像这样调用:

请注意,第一个参数应始终为0.

这是我到目前为止的代码:

这是它的伪代码:


我无法弄清楚我在定义中做错了什么ne_nargs,并且在尝试了几种不同的方法来抽象宏的部分之后,我准备放弃了。

0 投票
1 回答
247 浏览

latex - GNU m4 宏自动生成的文件

我下载了我想要对其进行一些更改的乳胶包,但是在这个包中存在文件 include.m4 我不知道它做了什么以及它是如何生成的。这里是它的行:

你能解释一下它是用什么工具生成的吗?

想。所以这个文件不是自动生成的?你能帮我理解Makefile中的这些行吗:

和规则:

正如我所看到的,GNU m4 选项“-D”将 .sty .cls 文件中的宏 m4_ESKDX_INIT 替换为 m4_include(../include.m4),然后选项“-P”首先扩展文件 include.m4 并进一步扩展包含中的宏。米4。

0 投票
1 回答
74 浏览

bash - 了解 configure.ac 文件中的 bashism

我试图了解项目的 configure.ac 文件中的常见模式。我相当确定这是一个我很难解析的 bashism。这是一个例子:

其意图似乎是通过 OTHERFLAG 中的内容来扩展 LDFLAGS 的当前值。看起来写起来会更简单:

bash手册中的相关部分说:

我认为这里有一些防御性的东西,但我不确定到底是什么。

0 投票
1 回答
515 浏览

php - 在 Windows 上构建 PHP,问题是野牛

好吧,我正在尝试在 Windows 上构建 PHP,到目前为止,我几乎完美地遵循了本指南,直到遇到一个奇怪的错误,我不知道如何修复: https ://wiki.php.net/internals/windows /逐步构建

错误:无法打开文件 c:/progra~1/bison/share/bison/m4sugar/m4sugar.m4:没有这样的文件或目录 nmake:致命错误 U1077:D:\Development\Microsoft Visual Studio\VC\Bin\amd64\ bison.exe:返回代码“0x1”

错误信息是什么意思?我该如何解决?谢谢。