Hi all,
I was trying to compile luajava-1.1 on a 64-bit Ubuntu server (Version
9.10) installation, and got the following output:
> make
/usr/lib/jvm/java-6-sun/bin/javadoc -public -classpath src/java/ -quiet
-d "doc/us/API" src/java/org/keplerproject/luajava/JavaFunction.java
src/java/org/keplerproject/luajava/LuaException.java
src/java/org/keplerproject/luajava/LuaInvocationHandler.java
src/java/org/keplerproject/luajava/LuaObject.java
src/java/org/keplerproject/luajava/LuaState.java
src/java/org/keplerproject/luajava/LuaStateFactory.java
src/java/org/keplerproject/luajava/Console.java
export MACOSX_DEPLOYMENT_TARGET=10.3; gcc -m64 -shared -o
libluajava-1.1.so src/c/luajava.o /usr/lib/liblua5.1.a
/usr/bin/ld: /usr/lib/liblua5.1.a(lapi.o): relocation R_X86_64_32
against `luaO_nilobject_' can not be used when making a shared object;
recompile with -fPIC
/usr/lib/liblua5.1.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [libluajava-1.1.so] Error 1
I attached the Makefile and the config file I am using.
Could someone please help me with this?
Thanks in advance.
--zlatko
Some additional information that might be useful:
> uname -a
Linux Sanoyea 2.6.31-20-server #58-Ubuntu SMP Fri Mar 12 05:40:05 UTC
2010 x86_64 GNU/Linux
> dpkg --get-selections | grep gcc
gcc install
gcc-4.4 install
gcc-4.4-base install
gccxml install
libgcc1 install
> dpkg --get-selections | grep lua
liblua5.1-0 install
liblua5.1-0-dev install
lua5.1 install
#
# Makefile for LuaJava Linux Distribution
#
include ./config
CLASSES = \
src/java/org/keplerproject/luajava/CPtr.class \
src/java/org/keplerproject/luajava/JavaFunction.class \
src/java/org/keplerproject/luajava/LuaException.class \
src/java/org/keplerproject/luajava/LuaInvocationHandler.class \
src/java/org/keplerproject/luajava/LuaJavaAPI.class \
src/java/org/keplerproject/luajava/LuaObject.class \
src/java/org/keplerproject/luajava/LuaState.class \
src/java/org/keplerproject/luajava/LuaStateFactory.class \
src/java/org/keplerproject/luajava/Console.class
DOC_CLASSES = \
src/java/org/keplerproject/luajava/JavaFunction.java \
src/java/org/keplerproject/luajava/LuaException.java \
src/java/org/keplerproject/luajava/LuaInvocationHandler.java \
src/java/org/keplerproject/luajava/LuaObject.java \
src/java/org/keplerproject/luajava/LuaState.java \
src/java/org/keplerproject/luajava/LuaStateFactory.java \
src/java/org/keplerproject/luajava/Console.java
OBJS = src/c/luajava.o
.SUFFIXES: .java .class
#
# Targets
#
run: build
@echo ------------------
@echo Build Complete
@echo ------------------
build: checkjdk $(JAR_FILE) apidoc $(SO_FILE)
#
# Build .class files.
#
.java.class:
$(JDK)/bin/javac -sourcepath ./src/java $*.java
#
# Create the JAR
#
$(JAR_FILE): $(CLASSES)
cd src/java; \
$(JDK)/bin/jar cvf ../../$(JAR_FILE) org/keplerproject/luajava/*.class;
\
cd ../..;
#
# Create the API Documentation
#
apidoc:
$(JDK)/bin/javadoc -public -classpath src/java/ -quiet -d "doc/us/API"
$(DOC_CLASSES)
#
# Build .c files.
#
$(SO_FILE): $(OBJS)
export MACOSX_DEPLOYMENT_TARGET=10.3; $(CC) $(LIB_OPTION) -o $@ $?
$(LIB_LUA)
src/c/luajava.c: src/c/luajava.h
src/c/luajava.h:
$(JDK)/bin/javah -o src/c/luajava.h -classpath "$(JAR_FILE)"
org.keplerproject.luajava.LuaState
## regras implicitas para compilacao
$(OBJDIR)/%.o: %.c
$(CC) -c $(CFLAGS) -o $@ $<
#
# Check that the user has a valid JDK install. This will cause a
# premature death if JDK is not defined.
#
checkjdk: $(JDK)/bin/java
#
# Cleanliness.
#
clean:
rm -f $(JAR_FILE)
rm -f $(SO_FILE)
rm -rf doc/us/API
rm -f src/java/org/keplerproject/luajava/*.class src/c/*.o
src/c/luajava.h
rm -f $(TAR_FILE) $(ZIP_FILE)
dist: dist_dir
tar -czf $(TAR_FILE) --exclude \*CVS\* --exclude *.class --exclude *.o
--exclude *.h --exclude $(TAR_FILE) --exclude $(ZIP_FILE) $(DIST_DIR)
zip -qr $(ZIP_FILE) $(DIST_DIR)/* -x ./\*CVS\* *.class *.o *.h
./$(TAR_FILE) ./$(ZIP_FILE)
dist_dir: apidoc
mkdir -p $(DIST_DIR)
cp -R src $(DIST_DIR)
cp -R doc $(DIST_DIR)
cp -R test $(DIST_DIR)
cp config License.txt Makefile config.win Makefile.win $(DIST_DIR)
#############################################################
#Linux/BSD/Mac
LUA_DIR= /usr/bin/lua5.1
LUA_LIBDIR= /usr/lib
LUA_INCLUDES= /usr/include/lua5.1
JDK= $(JAVA_HOME)
# For Mac OS, comment the above line and uncomment this one
#JDK=/Library/Java/Home
# Full path to Lua static library
LIB_LUA=$(LUA_LIBDIR)/liblua5.1.a
#Linux/BSD
LIB_EXT= .so
#Mac OS
#LIB_EXT= .jnilib
LIB_PREFIX= lib
#Linux/BSD
LIB_OPTION= -m64 -shared
#Mac OS
#LIB_OPTION= -dynamiclib -all_load
## On FreeBSD and Mac OS systems, the following line should be commented
DLLIB= -ldl
WARN= -O2 -Wall -fPIC -W -Waggregate-return -Wcast-align -Wmissing-prototypes
-Wnested-externs -Wshadow -Wwrite-strings
INCS= -I$(JDK)/include -I$(JDK)/include/linux -I$(LUA_INCLUDES)
CFLAGS= -m64 $(WARN) $(INCS)
CC= gcc
#########################################################
VERSION= 1.1
PKG= luajava-$(VERSION)
TAR_FILE= $(PKG).tar.gz
ZIP_FILE= $(PKG).zip
JAR_FILE= $(PKG).jar
SO_FILE= $(LIB_PREFIX)$(PKG)$(LIB_EXT)
DIST_DIR= $(PKG)
# $Id: config,v 1.12 2006/12/22 14:06:40 thiago Exp $
_______________________________________________
Kepler-Project mailing list
[email protected]
http://lists.luaforge.net/cgi-bin/mailman/listinfo/kepler-project
http://www.keplerproject.org/