编译ragel时发现问题,具体信息如下:

WARNING: 'aclocal-1.14' is missing on your system.

You should only need it if you modified 'acinclude.m4' or

'configure.ac' or m4 files included by 'configure.ac'.

The 'aclocal' program is part of the GNU Automake package:

<http://www.gnu.org/software/automake>

It also requires GNU Autoconf, GNU m4 and Perl in order to run:

<http://www.gnu.org/software/autoconf>

<http://www.gnu.org/software/m4/>

<http://www.perl.org/>

make: *** [/install/Mesa-10.3.5/aclocal.m4] Error 127

google解决方案为:sudo autoreconf -ivf

链接: http://blog.csdn.net/arackethis/article/details/42222905

引用内容如下:

安装Mesa时,最后一个错误报“WARNING: 'aclocal-1.14' is missing on your system.”,虽然是个Warning,但是无法进行下一步make,所以必须解决。根据warning给的提示以及网上搜的信息判断,这是一个时间戳变化导致的系统以为文件被修改,所以需要重新编译几个脚本文件。实际上我从官网下载来的源文件压缩包我根本没动过,应该是解压过程中系统版本不一样或者时间差导致的文件时间戳发生了变化而已(能想到这个,因为我从本机往US的服务器传文件时,解压缩时总是会提示文件的时间戳变为什么什么了,也就是常说的timestamp skew)。这错误比较少见,相关资料实在太少。能Google的都被我Google了,最后还是让我找到了解决方案,记录在这供后来人借鉴以节约时间。

该错误详情:

test @test :/usr/local/src/Mesa_build$ sudo make

CDPATH="${ZSH_VERSION+.}:" && cd /install/Mesa-10.3.5 && /bin/bash /install/Mesa-10.3.5/bin/missing aclocal-1.14 -I m4

/install/Mesa-10.3.5/bin/missing: line 81: aclocal-1.14: command not found

WARNING: 'aclocal-1.14' is missing on your system.

You should only need it if you modified 'acinclude.m4' or

'configure.ac' or m4 files included by 'configure.ac'.

The 'aclocal' program is part of the GNU Automake package:

<http://www.gnu.org/software/automake>

It also requires GNU Autoconf, GNU m4 and Perl in order to run:

<http://www.gnu.org/software/autoconf>

<http://www.gnu.org/software/m4/>

<http://www.perl.org/>

make: *** [/install/Mesa-10.3.5/aclocal.m4] Error 127

很自然的就想到按提示去装那几个autotools,就如这里建议的: http://stackoverflow.com/questions/24233721/build-m4-autoconf-automake-libtool-on-unix

You do not need to install the autotools. Most likely, the problem is caused by a timestamp skew and some files in the pcre tarball have been unpacked with incorrect timestamps. (This often happens if you unpack the tarball on a network drive.)Trying to recreate the configure script using the autotools is not the simplest solution.

解决方法如下:

  • 用Synaptic Package Manager搜索安装这些库(显然有些是重复的,当时不清楚用哪个索性全添加了):

  • autotools-dev

    automake

    autoconf2.13

    libperl5.14

  • 执行如下命令:

  • test @test :/usr/local/src/Mesa-10.3.5$sudo autoreconf -ivf         就是这一句解决了问题

    注意:这条语句是在源文件目录(Mesa-10.3.5)下执行,否则会找不到文件:

    [html] view plain copy

  • autoreconf2.50: `configure.ac' or `configure.in' is required
  • test @test :/usr/local/src/Mesa-10.3.5$sudo ./configure --disable-dri3

    配置完,编译:

    test @test :/usr/local/src/Mesa-10.3.5$sudo make

    不再报开始那个错误了!

    正如 https://github.com/SIPp/sipp/issues/61 帖子里 rkday 说的,他建议步骤二中尝试以下2种方法:

    Could you try the two troubleshooting suggestions at https://github.com/SIPp/sipp#building ? That is, do command:

    touch configure.ac aclocal.m4 configure Makefile.am Makefile.in

    autoreconf -ivf

    There-running configure and make, one of them should fixes this problem.

    我两种都试了,touch那个不行,the second one (autoreconf) works for me, on my Ubuntu 12.04, good luck!

    其它信息:

    步骤2)和3)中虽然不再报'aclocal-1.14' is missing on your system错误,但是还会报如下一些错误(这些都很好解决了):

    test @test :/usr/local/src/Mesa-10.3.5$sudo touch configure.ac aclocal.m4 configure Makefile.am Makefile.in

    test@test:/usr/local/src/Mesa-10.3.5$sudo autoreconf -ivf

    Can't exec "libtoolize": No such file or directory at /usr/bin/autoreconf2.50 line 196.

    Use of uninitialized value in pattern match (m//) at /usr/bin/autoreconf2.50 line 196.

    autoreconf2.50: Entering directory `.'

    autoreconf2.50: configure.ac: not using Gettext

    autoreconf2.50: running: aclocal --force -I m4

    autoreconf2.50: configure.ac: tracing

    autoreconf2.50: configure.ac: not using Libtool

    autoreconf2.50: running: /usr/bin/autoconf --force

    autoreconf2.50: configure.ac: not using Autoheader

    autoreconf2.50: running: automake --add-missing --copy --force-missing

    src/egl/drivers/dri2/Makefile.am:36: Libtool library used but `LIBTOOL' is undefined

    src/egl/drivers/dri2/Makefile.am:36:   The usual way to define `LIBTOOL' is to add `LT_INIT'

    src/egl/drivers/dri2/Makefile.am:36:   to `configure.ac' and run `aclocal' and `autoconf' again.

    src/egl/drivers/dri2/Makefile.am:36:   If `LT_INIT' is in `configure.ac', make sure

    src/egl/drivers/dri2/Makefile.am:36:   its definition is in aclocal's search path.

    解决方法:用Synaptic Package Manager搜索安装:libtool和libltdl-dev

    test@test:/usr/local/src/Mesa-10.3.5$sudo autoreconf -ivf

    autoreconf2.50: Entering directory `.'

    autoreconf2.50: configure.ac: not using Gettext

    autoreconf2.50: running: aclocal --force -I m4

    autoreconf2.50: configure.ac: tracing

    autoreconf2.50: running: libtoolize --install --copy --force

    libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `bin'.

    libtoolize: copying file `bin/config.guess'

    libtoolize: copying file `bin/config.sub'

    libtoolize: copying file `bin/install-sh'

    libtoolize: copying file `bin/ltmain.sh'

    libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.

    libtoolize: copying file `m4/libtool.m4'

    libtoolize: You should add the contents of `m4/libtool.m4' to `aclocal.m4'.

    libtoolize: copying file `m4/ltoptions.m4'

    libtoolize: You should add the contents of `m4/ltoptions.m4' to `aclocal.m4'.

    libtoolize: copying file `m4/ltsugar.m4'

    libtoolize: You should add the contents of `m4/ltsugar.m4' to `aclocal.m4'.

    libtoolize: copying file `m4/ltversion.m4'

    libtoolize: copying file `m4/lt~obsolete.m4'

    libtoolize: You should add the contents of `m4/lt~obsolete.m4' to `aclocal.m4'.

    autoreconf2.50: running: /usr/bin/autoconf --force

    autoreconf2.50: configure.ac: not using Autoheader

    autoreconf2.50: running: automake --add-missing --copy --force-missing

    src/mesa/Makefile.sources:7: BUILDDIR multiply defined in condition TRUE ...

    src/mesa/Makefile.am:63:   `src/mesa/Makefile.sources' included from here

    src/mesa/Makefile.am:62: ... `BUILDDIR' previously defined here

    autoreconf2.50: Leaving directory `.'

    test@test:/usr/local/src/Mesa-10.3.5$sudo ./configure --disable-dri3

    checking build system type... x86_64-unknown-linux-gnu

    checking host system type... x86_64-unknown-linux-gnu

    checking target system type... x86_64-unknown-linux-gnu

    checking for a BSD-compatible install... /usr/bin/install -c

    checking whether build environment is sane... yes

    checking for a thread-safe mkdir -p... /usr/local/bin/mkdir -p

    checking for gawk... no

    checking for mawk... mawk

    顺利完成。

    test@test:/usr/local/src/Mesa-10.3.5$ sudo make

    CC   st_gen_mipmap.lo

    CXX   st_glsl_to_tgsi.lo

    CC   st_manager.lo

    CC   st_mesa_to_tgsi.lo

    CC   st_program.lo

    CC   st_texture.lo

    CC   st_vdpau.lo

    CXXLD  libmesagallium.la

    make[4]: Leaving directory `/usr/local/src/Mesa-10.3.5/src/mesa'

    Making all in main/tests

    make[4]: Entering directory `/usr/local/src/Mesa-10.3.5/src/mesa/main/tests'

    make[4]: Nothing to be done for `all'.

    make[4]: Leaving directory `/usr/local/src/Mesa-10.3.5/src/mesa/main/tests'

    Making all in drivers/dri

    make[4]: Entering directory `/usr/local/src/Mesa-10.3.5/src/mesa/drivers/dri'

    Making all in common

    make[5]: Entering directory `/usr/local/src/Mesa-10.3.5/src/mesa/drivers/dri/common'

    Making all in xmlpool

    make[6]: Entering directory `/usr/local/src/Mesa-10.3.5/src/mesa/drivers/dri/common/xmlpool'

    Updating (ca) ca/LC_MESSAGES/options.mo from ca.po.

    /bin/bash: line 4: msgfmt: command not found

    make[6]: *** [ca/LC_MESSAGES/options.mo] Error 127

    make[6]: Leaving directory `/usr/local/src/Mesa-10.3.5/src/mesa/drivers/dri/common/xmlpool'

    make[5]: *** [all-recursive] Error 1

    make[5]: Leaving directory `/usr/local/src/Mesa-10.3.5/src/mesa/drivers/dri/common'

    make[4]: *** [all-recursive] Error 1

    make[4]: Leaving directory `/usr/local/src/Mesa-10.3.5/src/mesa/drivers/dri'

    make[3]: *** [all-recursive] Error 1

    make[3]: Leaving directory `/usr/local/src/Mesa-10.3.5/src/mesa'

    make[2]: *** [all] Error 2

    make[2]: Leaving directory `/usr/local/src/Mesa-10.3.5/src/mesa'

    make[1]: *** [all-recursive] Error 1

    make[1]: Leaving directory `/usr/local/src/Mesa-10.3.5/src'

    make: *** [all-recursive] Error 1

    test@test:/usr/local/src/Mesa-10.3.5$

    安装:liblocale-msgfmt-perl库,sudo make 不行,仍然报同样错误。网上搜了下,参考 http://feixiong.blog.51cto.com/4216340/1177343 说的,安装gettext库。sudo make,可以了。详情可以点( 这里 )。

    我autoreconf后sudo make, 还遇到过下面一个奇怪错误:

    [html] view plain copy

  • checking for make... make
  • checking for python2... python2
  • checking for a sed that does not truncate output... /bin/sed
  • ./configure: line 6427: syntax error near unexpected token `2.2'
  • ./configure: line 6427: `LT_PREREQ(2.2)'

  • 解决方法: 把源文件目录清空,build目录也清空,重新解压,重新配置编译就行。

    总结:完全没必要求新,建议直接安装稍低版本,比如3.8,稳定,够用,不会这么多错误/警告,少很多麻烦!!

    题外话: 我是新手,第一次接触autoconf, automake,觉得以下文字写的好,备案在此供以后深度学习这个工具时参阅:

    autoconf is the tool which generates a configure script based upon a configure.ac file.
    autoscan can generate a preliminary configure.ac (named configure.scan) but you'll probably need to adjust it by hand anyway.
    automake generates Makefile files based upon user-edited Makefile.am files and is automatically called by autoconf if the configure.ac script initializes the automake subsystem (using the AM_INIT_AUTOMAKE() macro). You can't expect those tools (especially autoscan) to pick up the right configuration for you at the first try, as only you know (or should know) how the project is laid out.

    Are you using a clone from the git repo or the source tar ball? It looks like you're using the git repo, which doesn't always work unless you have the same autoconf/automake versions that I'm using. I have autoconf 2.69 and automake 1.14 . The 'aclocal' script is part of automake, which is why 'apt' doesn't find it. Anyways, you can run the 'autogen.sh' script to regenerate the configure and makefiles using the autoconf/automake that you have installed on your system and then rerun configure.

    https://github.com/tstack/lnav/issues/54