13

I'm new to GNU autotools.In my project when i try ./configure it generates following error :

./configure: line 9852: syntax error near unexpected token `luajit,'
./configure: line 9852: `    PKG_CHECK_MODULES(luajit, luajit,LLUAJIT="yes",LLUAJIT="no")'

In Configure.in :

 PKG_CHECK_MODULES(luajit, luajit,LLUAJIT="yes",LLUAJIT="no")
    if test "x$LLUAJIT" = "xyes"; then
        CONFIGFLAGS="$CONFIGFLAGS -DHAVE_LIBLUAJIT"
        LUA_CFLAGS="$luajit_CFLAGS"
        LUA_LIBS="$luajit_LIBS"
        AC_SUBST(LUA_CFLAGS)
        AC_SUBST(LUA_LIBS)
        if test "x$macos" != "xno"; then
            LDFLAGS="${LDFLAGS} -pagezero_size 10000 -image_base 100000000"
        fi

    else
        echo
        echo "   ERROR!  LuaJIT library not found. For better performance, go get it from"
        echo "   http://www.luajit.org/."
        AC_MSG_ERROR("Fatal!")
    fi

It seems autoconf(maybe) is unable to find PKG_CHECK_MODULES macro. I searched the Internet for solution and found that it is because libtool is not installed.I re-installed libtool but error remains same.

Hope Someone recognizes the problem and has quick solution for it.Any help would be appreciated.

Prabhakar
  • 513
  • 1
  • 5
  • 22

3 Answers3

13

For those who end up here searching the solution , following worked for me :

PKG_CHECK_MODULES breaking in solaris

The PKG_CHECK_MODULES macro doesn't seem to be expanded properly. When you installed pkg-config, did it install pkg.m4 (in somewhere like /usr/share/aclocal)? If so, try running aclocal again (maybe with -I m4, if you've got custom m4 code in the m4 subdirectory) and then run autoconf.

If that doesn't work and pkg.m4 was installed, try running autoreconf -f (and maybe autoreconf -i -f).

If that doesn't work, you'll need to copy pkg.m4 to a directory for your package. Usually this is the m4 subdirectory. Set ACLOCAL_AMFLAGS = -I m4 (or ACLOCAL_AMFLAGS = -I m4 --install) in Makefile.am (if you're using automake), and AC_CONFIG_MACRO_DIR([m4]) in configure.ac. Then run aclocal -I m4 and autoconf and ./configure.

Community
  • 1
  • 1
Prabhakar
  • 513
  • 1
  • 5
  • 22
  • Just wanted to add: this may happen if a "autogen.sh" is not included (which means after a fresh checkout there already is a ./configure script). The autogen script is usually just a "autoreconf -fiv" or whatever. Thanks for the help! – user318904 Nov 13 '20 at 22:49
10

The PKG_CHECK_MODULES macro is defined in the pkg.m4 file and pkg.m4 is part of pkgconfig package. So in order to use this macro, make sure pkgconfig is be installed on your system, and pkg.m4 is in the right place, on most system it is at:

/usr/share/aclocal/pkg.m4

In you configure script, enable libtool and add macro dir:

LT_INIT
AC_CONFIG_MACRO_DIRS([m4])
fluter
  • 13,238
  • 8
  • 62
  • 100
4

In my case, I added the conf file before installing the libtool, so you need to run again autoreconf -i -f after installing the libtool

piet.t
  • 11,718
  • 21
  • 43
  • 52