@linuxmaniac here's the makefile
`include ../../Makefile.defs
auto_gen=
NAME=app_java.so

USE_GCJ ?= no

#DEFS += -DEXTRA_DEBUG

DIST = $(shell if [ -f "/etc/redhat-release" ]; then cat /etc/redhat-release | sed "s/.([0-9]).[0-9]./\1/g"; fi)
ifeq ($(DIST),6)
JVM_PATH = $(shell dirname find /usr/lib/jvm/java/ -name "libjvm.so")
DEFS += $(shell pkg-config libgcj-4.4 --cflags)
LIBS += $(shell pkg-config libgcj-4.4 --cflags) -L$(JVM_PATH) -ljvm
else

try to detect JAVA_HOME

ifeq ($(USE_GCJ),yes)
JAVA_HOME ?= $(shell readlink -f /usr/bin/javac | sed "s:bin/javac::")
DEFS += $(shell pkg-config libgcj --cflags) -I$(JAVA_HOME)/include
LIBS += $(shell pkg-config libgcj --libs) -L$(JAVA_HOME)/lib -ljvm
else
ifeq ($(ARCH),i386)
ATYPE=i386
else ifeq ($(ARCH),x86_64)
ATYPE=amd64
endif
JAVA_HOME = /usr/lib/jvm/java
DEFS += -I/usr/lib/jvm/java-11-openjdk-amd64/include
LIBS += -L/usr/lib/jvm/java-11-openjdk-amd64/server -ljvm
endif

On Debian 7.5 there is a bug with JAVA_HOME detection.

$(shell readlink -f /usr/bin/javac | sed "s:bin/javac::") points to perl wrapper script (/usr/bin/gcj-wrapper-4.7)

whereas the real compiler is at /usr/bin/gcj-4.7. As the result, JAVA_HOME will not be a directory, that is incorrect.

At this point I don't see any universal method as explicit setting this variable at the compile phase.

-- ez

ifeq ($(USE_GCJ),yes)
ifeq ($(shell [ -d "${JAVA_HOME}" -a -f "$(JAVA_HOME)/include/jni.h" -a -f "$(JAVA_HOME)/lib/libjvm.so" ] && echo 1 || echo 0),0)
ifneq ($(DOCBUILD),yes)
JAVA_HOME = /usr/lib/jvm/java
DEFS += -I/usr/lib/jvm/java-11-openjdk-amd64/include -I/usr/lib/jvm/java-11-openjdk-amd64/include -I/usr/lib/jvm/java-11-openjdk-amd64/include/linux
LIBS += -L/usr/lib/jvm/java-11-openjdk-amd64/server -ljvm
endif
endif
else
ifeq ($(shell [ -d "${JAVA_HOME}" -a -f "$(JAVA_HOME)/include/jni.h" -a -f "$(JAVA_HOME)/jre/lib/$(ATYPE)/server/libjvm.so" ] && echo 1 || echo 0),0)
ifneq ($(DOCBUILD),yes)
JAVA_HOME = /usr/lib/jvm/java
DEFS += -I/usr/lib/jvm/java-11-openjdk-amd64/include -I/usr/lib/jvm/java-11-openjdk-amd64/include/linux
LIBS += -L/usr/lib/jvm/java-11-openjdk-amd64/server -ljvm
endif
endif
endif

ifeq ($(OS), freebsd)
LIBS+=-pthread
endif
ifeq ($(OS), linux)
DEFS += -I/usr/lib/jvm/java-11-openjdk-amd64/include -I /usr/lib/jvm/java-11-openjdk-amd64/include/linux
endif
endif

disable optimisation for segfaults debugging

ifeq ($(USE_GCJ),yes)
INCLUDE += -O0 -g
INCLUDES += -O0 -g
endif

include ../../Makefile.modules
`


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.