以下是我的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
据我所知,这不应该发生,对吧?我错过了什么?
答案 0 :(得分:2)
您在配置中混合使用M4代码,但m4仅在扩展之前执行(即运行autoconf
时),而THIS=h5cc
是由shell执行的shell结构(当你运行./configure
)时。
所以m4_bmatch
看到的是文字$THIS
,确实不是。{/ p>
简短版本,不要将m4_*
函数用于您希望在配置时更改的内容。