如何在m4_esyscmd中使用由m4_define宏定义的变量?

时间:2015-10-13 09:38:31

标签: autoconf

我想在configure.ac中使用以下代码执行类似操作:

m4_define([product], [NGU29832])
m4_define([version], [R1A1])

之后在AC_INIT宏中使用这些变量,如下所示:

AC_INIT([foo], m4_esyscmd([$(pwd)/modify_version_script.sh $version $product]))

不幸的是,这不起作用,因为$version$product在解析为m4_esyscmd宏时都是空的。

有谁知道怎么做?

2 个答案:

答案 0 :(得分:1)

M4Sugar图层中不存在

$version$product:它们是M4变量:

m4_define([product], [NGU29832])
m4_define([version], [R1A1])

AC_INIT([foo], [m4_esyscmd([$(pwd)/modify_version_script.sh version product])])

应该适合你。

答案 1 :(得分:-1)

我找到了解决方案:

m4_define([product], [NGU29832])
m4_define([version], [R1A1])

AC_INIT([foo], m4_esyscmd([$(pwd)/modify_version_script.sh m4_defn([version] m4_defn([product])))