16

I am trying to build a library, and the README instructions are to call configure.ac, then make.

Unfortunately, I am running into an error:

configure.ac:75 :error: possibly undefined macro: AC_PROG_LIBTOOL
    If this token is legitimate please use m4_pattern_allow

Now, I know I have libtool installed (I'm running Scientific Linux 6.2 (un-upgraded), and have used yum --downloadonly to get the rpms of automake, autoconf, libtool, and libtool-devel just in case).

They are installed, and libtool currently lives in /usr/share/libtool. However, autoconf can't seem to find it.

All of the google results were of the 'install libtool' kind, which doesn't help me at all. Any help or guidance would be really appreciated. I'm not sure if the issue is that rpm -i screwed up getting libtool on here, or if i need to link the /usr/share/libtool to somewhere else (so which and everything else can find it).

  • remove libtool and reinstall it. verify your version, i've seen this issue on libtool versions prior to 2.4. rpm -qa | grep libtool – driz Feb 22 '15 at 1:35
11

you must install libtool

in ubuntu:

sudo apt-get install libtool

in redhat based:

yum install libtool
  • 4
    The question said already this is not the problem. – Kevin Panko Dec 21 '13 at 17:39
8

I also installed libtool and others to non-standard directories, and this error is actually autoconf not being able to find libtool's m4 macros. Yes it can be caused by libtool not being installed, but also by it being in a non-standard install directory. Here is my fix:

export ACLOCAL_PATH=$HOME/install/libtool/share/aclocal:$ACLOCAL_PATH

which I placed in my .bash_profile

  • Another way to do this: autoreconf -I $HOME/install/libtool/share/aclocal – Moraru Lilian Jan 5 '18 at 19:56
7

I wasn't satisfied with all the "just reinstall" answers I've found all over the Internet in various forums, so was bound and determined to resolve this without installing a non-distro libtool. (I'm running on CentOS 7.)

The lightbulb above my head lit up when I read https://www.gnu.org/software/automake/manual/html_node/Macro-Search-Path.html. The search path used to find the macro files is the one defined by --prefix, which by default is usually /usr/local. So autoconf for a package which will be installed to /usr/local searches /usr/local/share/aclocal-APIVERSION and /usr/local/share/aclocal.

On many distros, including CentOS7, the seven macro files for libtools are installed under /usr/share/aclocal rather than under /usr/local/share/aclocal. Consequently, they aren't found when the package you are building sets prefix to /usr/local.

To fix this if you already have a /usr/local/share/aclocal directory, type the following as root:

for file in argz libtool ltdl ltoptions ltsugar ltversion lt~obsolete
do
  ln -s /usr/share/aclocal/$file.m4 /usr/local/share/aclocal/$file.m4
done

To fix this if you don't have a /usr/local/share/aclocal directory, type the following as root:

ln -s /usr/share/aclocal /usr/local/share/aclocal

Voilà -- problem solved.

  • That's the only solution that actually worked in my case, after trying all libtool (re)installs suggested here and elsewhere. Thanks – Ahmed Nassar Jun 23 '16 at 22:41
  • Had to remove argz from the list, but otherwise this solution worked for me. Thank you! – pchaigno Oct 23 '17 at 15:42
  • Thank you for the full explanation! As for solving the issue, Dan Ibanez's solution is often "cleaner" (from a sys-admin pov), and easier at the same time. – Eric Platon Feb 14 '18 at 0:16
1

You need to reinstall it in order to fix the error so follow these steps :

1] Remove current libtool if installed: sudo apt-get purge libtool

2] Download it from official website https://www.gnu.org/software/libtool/

3] Untar it: tar -xzvf "name of the tar_file"

4] Enter folder and type: ./configure && make

5] Install it: sudo make install

And you are done, error should be fixed !

0
configure.ac:75 :error: possibly undefined macro: AC_PROG_LIBTOOL
    If this token is legitimate please use m4_pattern_allow

Now, I know I have libtool installed ...

I've found this usually indicates you don't have libtool development gear installed (though you may have libtool installed).

You should install libltdl-dev on Debian and Ubuntu; and libtool-ltdl-devel on Fedora.


Here are the searches for the packages.

Fedora

$ yum search libtool
======================== Name Exactly Matched: libtool =========================
libtool.x86_64 : The GNU Portable Library Tool
======================= Summary & Name Matched: libtool ========================
libtool-ltdl.x86_64 : Runtime libraries for GNU Libtool Dynamic Module Loader
libtool-ltdl.i686 : Runtime libraries for GNU Libtool Dynamic Module Loader
libtool-ltdl-devel.x86_64 : Tools needed for development using the GNU Libtool
                          : Dynamic Module Loader
libtool-ltdl-devel.i686 : Tools needed for development using the GNU Libtool
                        : Dynamic Module Loader
=========================== Summary Matched: libtool ===========================
mingw32-libltdl.noarch : Runtime libraries for GNU Libtool Dynamic Module Loader
mingw64-libltdl.noarch : Runtime libraries for GNU Libtool Dynamic Module Loader

Ubuntu

$ apt-cache search libtool
autotools-dev - Update infrastructure for config.{guess,sub} files
libltdl-dev - System independent dlopen wrapper for GNU libtool
libltdl7 - System independent dlopen wrapper for GNU libtool
libtool - Generic library support script
libtool-bin - Generic library support script (libtool binary)
libtool-doc - Generic library support script
...

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.