alien
alien copied to clipboard
luarocks install FFI_DIR=~/SANDBOX alien
Hi Fabio:
When I try to install alien using luarocks, it finds ffi ok, but I get an error that lua.h is not correct version, as follows:
Installing http://www.luarocks.org/repositories/rocks/alien-0.7.0-1.src.rock...
Using http://www.luarocks.org/repositories/rocks/alien-0.7.0-1.src.rock... switching to 'build' mode
Archive: /tmp/luarocks_luarocks-rock-alien-0.7.0-1-7965/alien-0.7.0-1.src.rock
...
checking ffi.h usability... yes
checking ffi.h presence... yes
checking for ffi.h... yes
checking for ffi_closure_alloc in -lffi... yes
...
checking Lua version is in range 501 <= v < 503... 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 lua.h version is in range 501 <= v < 503... no
configure: error: in /tmp/luarocks_alien-0.7.0-1-9794/alien-0.7.0': configure: error: lua.h version not in desired range See
config.log' for more details
Error: Build error: Failed building.
So I look in lua.h,
% grep LUA_VERSION ~/SANDBOX/include/lua.h
define LUA_VERSION_MAJOR "5"
define LUA_VERSION_MINOR "2"
define LUA_VERSION_NUM 502
define LUA_VERSION_RELEASE "1"
define LUA_VERSION "Lua " LUA_VERSION_MAJOR "." LUA_VERSION_MINOR
define LUA_RELEASE LUA_VERSION "." LUA_VERSION_RELEASE
which looks like lua.h is a valid version. Is there an issue with the build/install script? I've been able to successfully install other lua rocks that need compiling (eg NumLua).
Thanks, --greg
Maybe you have another Lua installation and this is what configure is detecting? Could you try
luarocks install LUA_INCDIR=~/SANDBOX/include FFI_DIR=~/SANDBOX alien
Fabio
Hi Fabio:
There is another, slightly older Lua installed on my system. I hoped that I had bypassed it by setting LUA_PATH to point to my SANDBOX, where I installed Lua 5.2.
gederer@moddev2-c64% echo "$LUA_PATH" /home/gederer/SANDBOX/share/lua/5.2/?.lua;/home/gederer/SANDBOX/share/lua/5.2/?/init.lua;/home/gederer/SANDBOX/lib/lua/5.2/?.lua;/home/gederer/SANDBOX/lib/lua/5.2/?/init.lua;./?.lua
When I run luarocks install LUA_INCDIR=~/SANDBOX/include FFI_DIR=~/SANDBOX alien I get:
gederer@moddev2-c64% luarocks install LUA_INCDIR=$SANDBOX/include FFI_DIR=$SANDBOX alien
Installing http://www.luarocks.org/repositories/rocks/alien-0.7.0-1.src.rock...
Using http://www.luarocks.org/repositories/rocks/alien-0.7.0-1.src.rock... switching to 'build' mode
Archive: /tmp/luarocks_luarocks-rock-alien-0.7.0-1-454/alien-0.7.0-1.src.rock
inflating: alien-0.7.0-1.rockspec
extracting: alien-0.7.0.zip
Archive: alien-0.7.0.zip
creating: alien-0.7.0/
inflating: alien-0.7.0/configure
creating: alien-0.7.0/doc/
inflating: alien-0.7.0/doc/alien.html
inflating: alien-0.7.0/doc/alien.md
inflating: alien-0.7.0/doc/Makefile.am
inflating: alien-0.7.0/Makefile.in
creating: alien-0.7.0/src/
inflating: alien-0.7.0/src/constants
inflating: alien-0.7.0/src/alien.lua
inflating: alien-0.7.0/src/alien.c
inflating: alien-0.7.0/src/struct.c
inflating: alien-0.7.0/src/Makefile.am
creating: alien-0.7.0/build-aux/
inflating: alien-0.7.0/build-aux/depcomp
inflating: alien-0.7.0/build-aux/missing
inflating: alien-0.7.0/build-aux/install-sh
inflating: alien-0.7.0/build-aux/extract-trace
inflating: alien-0.7.0/build-aux/ar-lib
inflating: alien-0.7.0/build-aux/options-parser
inflating: alien-0.7.0/build-aux/ltmain.sh
inflating: alien-0.7.0/build-aux/config.guess
inflating: alien-0.7.0/build-aux/Makefile.am
inflating: alien-0.7.0/build-aux/config.sub
inflating: alien-0.7.0/config.h.in
inflating: alien-0.7.0/configure.ac
creating: alien-0.7.0/tests/
inflating: alien-0.7.0/tests/alientest.c
inflating: alien-0.7.0/tests/test_alien.lua
inflating: alien-0.7.0/tests/Makefile.am
creating: alien-0.7.0/samples/
inflating: alien-0.7.0/samples/string_array.lua
inflating: alien-0.7.0/samples/libc.lua
inflating: alien-0.7.0/samples/gtk.lua
inflating: alien-0.7.0/samples/Makefile.am
inflating: alien-0.7.0/aclocal.m4
creating: alien-0.7.0/m4/
inflating: alien-0.7.0/m4/lt~obsolete.m4
inflating: alien-0.7.0/m4/ltsugar.m4
inflating: alien-0.7.0/m4/ltoptions.m4
inflating: alien-0.7.0/m4/ltversion.m4
inflating: alien-0.7.0/m4/ax_lua.m4
inflating: alien-0.7.0/m4/ax_with_prog.m4
inflating: alien-0.7.0/m4/libtool.m4
inflating: alien-0.7.0/Makefile.am
inflating: alien-0.7.0/README
inflating: alien-0.7.0/alien.rockspec.in
./configure LUA=/home/gederer/SANDBOX/bin/lua CPPFLAGS='-I/home/gederer/SANDBOX/include -I/home/gederer/SANDBOX/include' LDFLAGS=-L/home/gederer/SANDBOX/lib --prefix=/home/gederer/SANDBOX/lib/luarocks/rocks/alien/0.7.0-1 --libdir=/home/gederer/SANDBOX/lib/luarocks/rocks/alien/0.7.0-1/lib --datadir=/home/gederer/SANDBOX/lib/luarocks/rocks/alien/0.7.0-1/lua
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... gcc3
checking for ar... ar
checking the archiver (ar) interface... ar
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... (cached) gcc3
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 98304
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... no
checking if : is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for ANSI C header files... (cached) yes
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking ffi.h usability... yes
checking ffi.h presence... yes
checking for ffi.h... yes
checking for ffi_closure_alloc in -lffi... yes
checking for stdint.h... (cached) yes
checking Lua version is in range 501 <= v < 503... 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 lua.h version is in range 501 <= v < 503... no
configure: error: in /tmp/luarocks_alien-0.7.0-1-6752/alien-0.7.0': configure: error: lua.h version not in desired range See
config.log' for more details
Error: Build error: Failed building.
As I said in my previous email, it finds ffi fine. But it does not seem to like lua itself.
Thanks, --greg
Hi Fabio:
Here is some more information. I tried building using the Autoconf configure script with the following command: % ./configure --libdir=$SANDBOX/lib/lua/5.2 --includedir=$SANDBOX/include --datadir=$SANDBOX/share/lua/5.2
It failed as follows (from the config.log file): ... configure:12737: checking lualib.h presence configure:12737: gcc -E -I/home/gederer/SANDBOX/include -L/home/gederer/SANDBOX/lib /home/gederer/SANDBOX/include conftest.c gcc: /home/gederer/SANDBOX/include: linker input file unused because linking not done configure:12737: $? = 0 configure:12737: result: yes configure:12737: checking for lualib.h configure:12737: result: yes configure:12762: checking lua.h version is in range 501 <= v < 503 configure:12789: gcc -o conftest -g -O2 -I/home/gederer/SANDBOX/include -L/home/gederer/SANDBOX/lib /home/gederer/SANDBOX/include conftest.c -lffi >&5 /home/gederer/SANDBOX/include: file not recognized: Is a directory collect2: ld returned 1 exit status configure:12789: $? = 1 configure: program exited with status 1 ...
It looks like the Autoconf macro that constructs the command to compile the little test program "conftest.c" adds an extra argument to the C compiler command line; it adds an extra "/home/gederer/SANDBOX/include" with no compiler switch. The C compiler sees that it's a directory, not a file to compile, and dies.
I think it has something to do with the following at the bottom of m4/ax_lua.m4 LUA_OLD_LIBS="$LIBS" LIBS="$LIBS $LUA_LIB" LUA_OLD_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $LUA_INCLUDE" AC_RUN_IFELSE([AC_LANG_SOURCE([[
I wonder if CPPFLAGS already has "-I/home/gederer/SANDBOX/include -L/home/gederer/SANDBOX/lib " and the line CPPFLAGS="$CPPFLAGS $LUA_INCLUDE" appends an extra "/home/gederer/SANDBOX/include"
Regards, --greg
Hi, Greg. I am also interested in compiling Alien. I see that you have reached longer than me.
Can you help me to start compiling Alien?
Thanks.
HERNAN
On 09/05/2016 01:58 AM, jhernancanom wrote:
Hi, Greg. I am also interested in compiling Alien. I see that you have reached longer than me.
Can you help me to start compiling Alien?
Thanks.
HERNAN
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/mascarenhas/alien/issues/34#issuecomment-244664324, or mute the thread https://github.com/notifications/unsubscribe-auth/AChOCKQF-R1pA7jHAXbSDcSOEGZMI2qSks5qm69qgaJpZM4AN5-6.
Hi Hernan:
I have not used lua in several years -- development priorities changed.I never got Alien working. Instead I used the LuaJIT FFI module. As I recall, it built with no problems (on Mac OS-X lion). Once I got the ffi interface to my C libraries configured correctly, it worked real nice. I haven't tried it since I upgraded OS-X to el capitan.
--greg
Fine, Gregory.
... the ffi interface to my C libraries configured correctly ...
I would like something like that, too. But say me: When you mask the _VERSION in LuaJIT, does it respond with Lua 5.1, yes?
Thanks for taking time to answer me. By.
There also LuaFFI library. It has no external deps.
Yes, friend. But it has no a binary DLL that I can use, nor instructions that I colud follow to build/compile it. I do not find doc....
Thanks, friend.
See you later.
2016-09-08 2:18 GMT-05:00 Alexey Melnichuk:
There also LuaFFI library. It has no external deps.
—
What compiler you use. There bat file to MSVC. Which should works just fine,
just edi this one https://github.com/jmckaskill/luaffi/blob/master/msvcbuild.bat#L8-L12
and run msvcbuild release
Fine, Alexey.
I had downloaded it from http://files.luaforge.net/releases/luaffi/luaffi which does not have any .BAT .
I searched in LuaRocks and I find luaffi by colesbury with sources in https://github.com/facebook/luaffifb wich yes have the .BAT that you say.
I have "Microsoft Visual Basic 2010 Express" and "Microsoft Visual Studio 2008" installed in my portatil.
I'll try later with msvcbuild.bat and inform to you how is going to me. I consider that I have to re-edit several lines al begining, the dirs in my scenario.
I have in my Internet explorer these two URLs:
https://github.com/jmckaskill/luaffi
https://github.com/facebook/luaffifb
luaffifb says updates for Lua 5.3 (something very important for me) until 3 (three) months ago.
Both have the .BAT in mention.
Thanks my friend.
2016-09-08 2:44 GMT-05:00 Alexey Melnichuk:
What compiler you use. There bat file to MSVC. Which should works just fine, just edi this one https://github.com/jmckaskill/ luaffi/blob/master/msvcbuild.bat#L8-L12 and run msvcbuild release