autoconf-archive-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [patch #8505] ac_cv_header_lua_h always set to yes


From: Peter Johansson
Subject: Re: [patch #8505] ac_cv_header_lua_h always set to yes
Date: Sun, 10 Aug 2014 14:33:07 +1000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0


On 10/08/14 04:49, anonymous wrote:
As I understand, AX_LUA_HEADERS() will search for lua.h in /usr/include
because of the <> brackets.
If lua{,lib,xlib}.h are found in /usr/include (default) AC_CHECK_HEADERS will
return yes. 

This is not true. From the Autoconf manual:

This macro caches its result in the ac_cv_header_header-file variable, with characters not suitable for a variable name mapped to underscores.

http://www.gnu.org/software/autoconf/manual/autoconf.html#Generic-Headers

and playing around with ac_cv_ variable is dangerous as it might mess up the caching functionality unless you know what you're doing.

Reading the code a bit more careful now, it looks like the author assumes that AC_CHECK_HEADERS sets ac_cv_header_lua_h to yes if successful, and that false assumption is probably the reason that mnacro doesn't behave as you want. It is not clear to me what the macro is actually supposed to do, so hard to fix it.

Hope this helps somehow, and I'm happy to help if we perhaps can fix it together.


Cheers,

Peter

If by any chance the version is not what we expect, the function
will fail without going through the directory list.
I changed the script to make it work in my environment at least and it needs
probably some improvements.

For the test,
/usr/include contains lua{,lib,xlib}.h version 5.1
/usr/include/lua5.1 contains lua{,lib,xlib}.h version 5.1
/usr/include/lua5.2 contains lua{,lib,xlib}.h version 5.2
I'm looking for version 5.2
./configure returns,

checking if LUA_VERSION is defined... yes
checking for library containing exp... -lm
checking for library containing dlopen... -ldl
checking for library containing lua_load... -llua5.2
checking whether sys/types.h defines makedev... yes
checking whether to enable assertions... yes
checking if LUA_VERSION is defined... yes
checking lua.h usability... yes
checking lua.h presence... yes
checking for lua.h... yes
checking lualib.h usability... yes
checking lualib.h presence... yes
checking for lualib.h... yes
checking lauxlib.h usability... yes
checking lauxlib.h presence... yes
checking for lauxlib.h... yes
checking luaconf.h usability... yes
checking luaconf.h presence... yes
checking for luaconf.h... yes
checking if Lua header version 5.1 matches 5.2... no
checking for lua.h... (cached) yes
checking for lualib.h... (cached) yes
checking for lauxlib.h... (cached) yes
checking for luaconf.h... (cached) yes
checking if Lua header version 5.2 matches 5.2... yes
[...]
	   prefix:            /usr
	   exec prefix:       ${prefix}

	   localstatedir:     ${prefix}/var
	   pkgconfigdir:      ${libdir}/pkgconfig
	   rundir:            ${localstatedir}/run
	   bindir:            ${exec_prefix}/bin
	   sbindir:           ${exec_prefix}/sbin
	   libdir:            ${exec_prefix}/lib
	   includedir:        ${prefix}/include
	   luaincludedir:     /usr/include/lua5.2
	   luadir:            ${prefix}/share/lua/5.2
	   luaexecdir:        ${exec_prefix}/lib/lua/5.2
	   pkgluadir:         ${luadir}/mytest
	   pkgluaexecdir:     ${luaexecdir}/mytest


Also the '(cached)' comment of configure still puzzles me.
Does it really read the right directory ?
Anyway CPPFLAGS has the right pathname for lua.h in confdefs.h.

What I can say, autoconf is not easy to debug ;)

Regards


(file #31882)
    _______________________________________________________

Additional Item Attachment:

File name: ax_lua.m4.diff                 Size:4 KB


    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/patch/?8505>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]