From 8c145ec7b71cbfcab78e2a8be48ae2710fd5bbac Mon Sep 17 00:00:00 2001 From: pancake Date: Fri, 27 Dec 2024 19:28:40 +0100 Subject: [PATCH] Fix jni build --- java/Makefile | 4 +++- java/jni/Makefile | 26 +++++++++++++++++++++----- java/jni/r2pipe-jni.c | 2 +- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/java/Makefile b/java/Makefile index 726f3c2..77430b1 100644 --- a/java/Makefile +++ b/java/Makefile @@ -5,13 +5,15 @@ include config.mk all: $(JAVAC) $(JAVACFLAGS) $(JAVASRC)/*.java examples/Test.java - cd src/main/java && jar cvf ../../../r2pipe.jar org + $(MAKE) mvn +# cd src/main/java && jar cvf ../../../r2pipe.jar org # $(MAKE) -C jni $(MAKE) -C examples m mvn maven: mvn clean compile mvn install + cp target/*.jar . run: $(MAKE) -C examples run diff --git a/java/jni/Makefile b/java/jni/Makefile index b50732d..5d3e45e 100644 --- a/java/jni/Makefile +++ b/java/jni/Makefile @@ -1,14 +1,30 @@ -OUT=libr2pipe-jni.jnilib +EXT_SO=$(shell r2 -H R2_LIBEXT) +OUT=libr2pipe-jni.$(EXT_SO) JVH=org_radare_r2pipe_R2PipeJNI.h -JNIFLAGS+=-I /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/JavaVM.framework/Headers/ -JNIFLAGS+=-I /System/Library/Frameworks/JavaVM.framework/Headers/ +JAVA_HOME?=$(shell /usr/libexec/java_home) +ifeq ($(JAVA_HOME),) +JAVA_HOME ?= $(shell dirname $(shell dirname $(shell readlink -f $(shell which javac)))) +endif +JNI_INCLUDE = -I$(JAVA_HOME)/include +ifeq ($(shell uname),Darwin) +JNI_INCLUDE+= -I$(JAVA_HOME)/include/darwin +else +JNI_INCLUDE+= -I$(JAVA_HOME)/include/linux +endif + +JNIFLAGS+=$(JNI_INCLUDE) +# /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/JavaVM.framework/Headers/ +# JNIFLAGS+=-I /System/Library/Frameworks/JavaVM.framework/Headers/ all: $(JVH) - $(CC) -o $(OUT) -dynamiclib -fPIC $(JNIFLAGS) r2pipe-jni.c -framework JavaVM + $(CC) -o $(OUT) -dynamiclib -fPIC $(JNIFLAGS) r2pipe-jni.c +# -framework JavaVM $(JVH): ../src/main/java/org/radare/r2pipe/R2PipeJNI.class - javah -cp ../r2pipe.jar -d . org.radare.r2pipe.R2PipeJNI + javac -h . -d . ../src/main/java/org/radare/r2pipe/R2PipeJNI.java +#javac -h . org.radare.r2pipe.R2PipeJNI +# javah -cp ../r2pipe.jar -d . org.radare.r2pipe.R2PipeJNI clean: rm -f $(JVH) $(OUT) diff --git a/java/jni/r2pipe-jni.c b/java/jni/r2pipe-jni.c index dee15ff..ed7a52f 100644 --- a/java/jni/r2pipe-jni.c +++ b/java/jni/r2pipe-jni.c @@ -1,4 +1,4 @@ -/* jni interface for r2pipe -- pancake 2016 */ +/* jni interface for r2pipe -- pancake 2016-2024 */ #include "org_radare_r2pipe_R2PipeJNI.h" #include