Autoconf m4_bmatch无法使用变量

时间:2016-06-15 04:26:02

标签: bash autotools autoconf m4 autoreconf

以下是我的configure.ac中的一些代码:

THIS="h5cc"
AC_MSG_WARN([$THIS])
AC_MSG_WARN(m4_bmatch([h5pcc],
         [h5pcc], [parallel],
         [h5cc], [serial],
         [neither]
         ))
AC_MSG_ERROR(m4_bmatch([$THIS],
         [h5pcc], [parallel],
         [h5cc], [serial],
         [neither]
         ))

autoconf然后configure,结果如下:

configure: WARNING: h5cc
configure: WARNING: parallel
configure: error: neither

据我所知,这不应该发生,对吧?我错过了什么?

1 个答案:

答案 0 :(得分:2)

您在配置中混合使用M4代码,但m4仅在扩展之前执行(即运行autoconf时),而THIS=h5cc是由shell执行的shell结构(当你运行./configure)时。

所以m4_bmatch看到的是文字$THIS,确实不是。{/ p>

简短版本,不要将m4_*函数用于您希望在配置时更改的内容。