Improve JNI build
authorMathieu Baudier <mbaudier@argeo.org>
Wed, 29 Mar 2023 07:53:09 +0000 (09:53 +0200)
committerMathieu Baudier <mbaudier@argeo.org>
Wed, 29 Mar 2023 07:53:09 +0000 (09:53 +0200)
Makefile
jni/Makefile
jni/jni.mk
jni/org_argeo_api_uuid_libuuid/Makefile

index 3a7dc5d6129134dc6e79fc6bd06f5feea331eba0..9b71e7c01719af5e65635c7d99594849740f2541 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -67,5 +67,7 @@ tool-server: osgi graalvm-custom
                 org.argeo.tool.server.ArgeoServer \
                 argeo
 
+native-deps-debian:
+       sudo apt install uuid-dev
 
 include  $(SDK_SRC_BASE)/sdk/argeo-build/osgi.mk
\ No newline at end of file
index de2b84c19f898f521101098771c09ba0a25cd38a..e0b2ed4bbaa6a02a88b515b9ba1701df6b3bcd5d 100644 (file)
@@ -5,10 +5,10 @@ JNIDIRS = org_argeo_api_uuid_libuuid
 .PHONY: clean all
 
 all: 
-       $(foreach dir, $(JNIDIRS), $(MAKE) -C $(dir);)
+       $(foreach dir, $(JNIDIRS), $(MAKE) -C $(dir) all;)
        
 clean:
-       rm -rf $(BUILD_DIR) $(SDK_BUILD_BASE)/jni
+       $(foreach dir, $(JNIDIRS), $(MAKE) -C $(dir) clean;)
 
 
 
index 40dde446958e754f28cd97f36534088f9ad9a29e..e4d7bdec927895733f0952c96f5fbb3c7bed3578 100644 (file)
@@ -1,3 +1,6 @@
+include  $(SDK_SRC_BASE)/sdk/argeo-build/osgi.mk
+
+A2_NATIVE_CATEGORY=$(A2_OUTPUT)/lib/linux/$(shell uname -m)/$(A2_CATEGORY)
 TARGET_EXEC := libJava_$(NATIVE_PACKAGE).so
 
 LDFLAGS = -shared -fPIC -Wl,-soname,$(TARGET_EXEC).$(MAJOR).$(MINOR) $(ADDITIONAL_LIBS)
@@ -15,7 +18,10 @@ INC_DIRS := $(shell find $(SRC_DIRS) -type d) $(JAVA_HOME)/include $(JAVA_HOME)/
 
 
 .PHONY: clean all ide
-all: $(SDK_BUILD_BASE)/jni/$(TARGET_EXEC)
+all: $(A2_NATIVE_CATEGORY)/$(TARGET_EXEC)
+
+clean:
+       $(RM) $(A2_NATIVE_CATEGORY)/$(TARGET_EXEC)
 
 # Find all the C and C++ files we want to compile
 # Note the single quotes around the * expressions. Make will incorrectly expand these otherwise.
@@ -37,7 +43,8 @@ INC_FLAGS := $(addprefix -I,$(INC_DIRS))
 CPPFLAGS := $(INC_FLAGS) -MMD -MP
 
 # The final build step.
-$(SDK_BUILD_BASE)/jni/$(TARGET_EXEC): $(OBJS)
+$(A2_NATIVE_CATEGORY)/$(TARGET_EXEC): $(OBJS)
+       mkdir -p $(A2_NATIVE_CATEGORY)
        $(CC) $(OBJS) -o $@ $(LDFLAGS)
 
 # Build step for C source
index cfeb1db5571e3ac38331b3dc9dabcff68b98a6f6..2e98253b8379def75e9830575237d9de6ad55a5b 100644 (file)
@@ -1,3 +1,5 @@
+A2_CATEGORY = org.argeo.slc
+
 NATIVE_PACKAGE := org_argeo_api_uuid_libuuid
 
 ADDITIONAL_INCLUDES = /usr/include/uuid