如何使用autoconf重新生成配置文件?

4

我使用autoconf重新生成了configure文件,它有效。但是当我执行生成的configure文件./configure时,出现了一些错误信息,例如:

./configure: line 3713: syntax error near unexpected token `blas'
./configure: line 3713: `  withval=$with_blas; R_ARG_USE(blas)'

我Google搜索后发现blas是一个库,但是在安装后仍然会出现错误消息。我的Mac上已经安装了版本为“autoconf(GNU Autoconf) 2.69”,我正在尝试编译的是R源代码https://svn.r-project.org/R/


我运行了autoconf -fautoreconf -f尝试重新生成成功生成的配置文件。但是当我运行./configure时,错误再次发生。

错误消息显示syntax error near unexpected token blaswithval=$with_blas; R_ARG_USE(blas)。我认为问题可能是未知的函数R_ARG_USE。我在代码库中搜索了R_ARG_USE并发现它在文件m4/R.m4中定义:

AC_DEFUN([R_ARG_USE],
[if test "${withval}" = no; then
  use_$1=no
else
  use_$1=yes
fi
])# R_ARG_USE

这是否意味着当我运行autoconf或autoreconf时,我错过了某些让它知道m4 / R.m4存在的东西?

我已经卡在这里将近三天了,非常感谢任何帮助。谢谢。


尝试像这样使用 AC_ARG_WITH([blas], [AS_HELP_STRING([--with-blas],[use system BLAS library (if available), or specify it @<:@no@:>@])], [R_ARG_USE(blas)], [use_blas=unset]),当然要确保你已经安装了它。 - Hack-R
@Hack-R 感谢您的回复!但是为什么由autoconf自动生成的配置文件中会出现语法错误呢?我的意思是,如果configure.ac是正确的(这是R svn中的文件),那么由正确的configure.ac生成的configure为什么会有语法错误呢? - hliu
1
尝试运行“autoreconf -f -i”。这将强制重新生成所有文件。 - rfkortekaas
1个回答

5

看起来我已经解决了这个问题。我重新安装了gnu m4,使用brew install m4,问题得到了解决。 在运行autoreconf -i -f之后,我可以获得正确的配置文件,并且R源代码可以编译。 也许我在Mac上获取了错误版本的m4。


我在OSX 10.11.6和R 3.3.1上实际上需要执行brew install homebrew/dupes/m4 && brew install libtool,然后执行autoreconf -i -f -I m4 - fikovnik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接