From e4e950d98cadf27008f3fb7e59aa769eb9242505 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sat, 12 Feb 2022 06:22:55 +0100 Subject: [PATCH] Move JNI to a standalone subdirectory. --- Makefile | 12 +- configure | 8 + jni/.cproject | 68 +++++++ {org.argeo.api.uuid/jni => jni}/.project | 2 +- jni/.settings/language.settings.xml | 11 ++ .../.settings/org.eclipse.cdt.core.prefs | 0 jni/Makefile | 10 + {sdk => jni}/jni.mk | 20 +- .../org_argeo_api_uuid_libuuid/.gitignore | 0 jni/org_argeo_api_uuid_libuuid/Makefile | 8 + ...eo_api_uuid_libuuid_DirectLibuuidFactory.c | 2 +- ...eo_api_uuid_libuuid_DirectLibuuidFactory.h | 0 ...rg_argeo_api_uuid_libuuid_LibuuidFactory.c | 10 +- ...rg_argeo_api_uuid_libuuid_LibuuidFactory.h | 0 org.argeo.api.uuid/jni/.cproject | 174 ------------------ .../jni/.settings/language.settings.xml | 28 --- org.argeo.api.uuid/jni/Makefile | 23 --- .../jni/org_argeo_api_uuid_libuuid/Makefile | 5 - sdk.mk.old | 5 + 19 files changed, 127 insertions(+), 259 deletions(-) create mode 100644 jni/.cproject rename {org.argeo.api.uuid/jni => jni}/.project (95%) create mode 100644 jni/.settings/language.settings.xml rename {org.argeo.api.uuid/jni => jni}/.settings/org.eclipse.cdt.core.prefs (100%) create mode 100644 jni/Makefile rename {sdk => jni}/jni.mk (77%) rename {org.argeo.api.uuid/jni => jni}/org_argeo_api_uuid_libuuid/.gitignore (100%) create mode 100644 jni/org_argeo_api_uuid_libuuid/Makefile rename {org.argeo.api.uuid/jni => jni}/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_DirectLibuuidFactory.c (82%) rename {org.argeo.api.uuid/jni => jni}/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_DirectLibuuidFactory.h (100%) rename {org.argeo.api.uuid/jni => jni}/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_LibuuidFactory.c (90%) rename {org.argeo.api.uuid/jni => jni}/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_LibuuidFactory.h (100%) delete mode 100644 org.argeo.api.uuid/jni/.cproject delete mode 100644 org.argeo.api.uuid/jni/.settings/language.settings.xml delete mode 100644 org.argeo.api.uuid/jni/Makefile delete mode 100644 org.argeo.api.uuid/jni/org_argeo_api_uuid_libuuid/Makefile create mode 100644 sdk.mk.old diff --git a/Makefile b/Makefile index 82dcf494b..85473c29c 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ include sdk.mk -.PHONY: clean all osgi +.PHONY: clean all osgi jni -all: osgi jni +all: osgi BUNDLE_PREFIX = org.argeo A2_CATEGORY = org.argeo @@ -12,7 +12,6 @@ org.argeo.util \ org.argeo.api.uuid \ org.argeo.api.acr \ org.argeo.api.cms \ -org.argeo.cms.tp \ org.argeo.cms \ org.argeo.cms.pgsql \ eclipse/org.argeo.cms.servlet \ @@ -21,9 +20,6 @@ rcp/org.argeo.swt.specific.rcp \ eclipse/org.argeo.cms.swt \ rcp/org.argeo.cms.ui.rcp \ -NATIVE_PROJECTS = \ -org.argeo.api.uuid/jni \ - BUILD_CLASSPATH = \ /usr/share/java/osgi-core/osgi.core.jar:$\ /usr/share/java/osgi-compendium/osgi.cmpn.jar:$\ @@ -60,7 +56,7 @@ org.argeo.api.cms jni: - $(foreach dir, $(NATIVE_PROJECTS), $(MAKE) -C $(dir);) + $(MAKE) -C jni # TODO relativize from SDK_SRC_BASE BUILD_BASE = $(SDK_BUILD_BASE) @@ -96,7 +92,7 @@ clean: rm -rf $(BUILD_BASE)/*-compiled rm -rf $(BUILD_BASE)/{cnf,a2} rm -rf $(BUILD_BASE)/$(BUNDLE_PREFIX).* $(BUILD_BASE)/eclipse $(BUILD_BASE)/rcp - $(foreach dir, $(NATIVE_PROJECTS), $(MAKE) -C $(dir) clean;) + $(MAKE) -C jni clean # SDK level $(SDK_BUILD_BASE)/cnf/%.bnd: cnf/%.bnd diff --git a/configure b/configure index 4587bf45e..90c0e9953 100644 --- a/configure +++ b/configure @@ -21,6 +21,12 @@ exit 1 else +if [ -z "$JAVA_HOME" ] +then +echo "Environment variable JAVA_HOME must be set" +exit 1 +fi + # Create build directory, so that it can be used right away # and we check whether we have the rights mkdir -p $SDK_BUILD_BASE @@ -34,6 +40,7 @@ fi cat > "$SDK_MK" < + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + make + + ide + true + true + true + + + + \ No newline at end of file diff --git a/org.argeo.api.uuid/jni/.project b/jni/.project similarity index 95% rename from org.argeo.api.uuid/jni/.project rename to jni/.project index 74fde08ce..492a807be 100644 --- a/org.argeo.api.uuid/jni/.project +++ b/jni/.project @@ -1,6 +1,6 @@ - Java_org_argeo_api_uuid + jni-commons diff --git a/jni/.settings/language.settings.xml b/jni/.settings/language.settings.xml new file mode 100644 index 000000000..e30ee1672 --- /dev/null +++ b/jni/.settings/language.settings.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/org.argeo.api.uuid/jni/.settings/org.eclipse.cdt.core.prefs b/jni/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from org.argeo.api.uuid/jni/.settings/org.eclipse.cdt.core.prefs rename to jni/.settings/org.eclipse.cdt.core.prefs diff --git a/jni/Makefile b/jni/Makefile new file mode 100644 index 000000000..8944d5ce7 --- /dev/null +++ b/jni/Makefile @@ -0,0 +1,10 @@ +JNIDIRS = org_argeo_api_uuid_libuuid + +.PHONY: clean all + +all: + $(foreach dir, $(JNIDIRS), $(MAKE) -C $(dir);) + +clean: + $(foreach dir, $(JNIDIRS), $(MAKE) -C $(dir) clean;) + diff --git a/sdk/jni.mk b/jni/jni.mk similarity index 77% rename from sdk/jni.mk rename to jni/jni.mk index 448ad8f2b..46f06749c 100644 --- a/sdk/jni.mk +++ b/jni/jni.mk @@ -1,31 +1,21 @@ TARGET_EXEC := libJava_$(NATIVE_PACKAGE).so -LDFLAGS = -shared -fPIC -Wl,-soname,$(TARGET_EXEC).$(MAJOR).$(MINOR) -luuid +LDFLAGS = -shared -fPIC -Wl,-soname,$(TARGET_EXEC).$(MAJOR).$(MINOR) $(ADDITIONAL_LIBS) CFLAGS = -O3 -fPIC SRC_DIRS := . -%: - @echo Making '$@' $(if $^,from '$^') -# @echo 'MAJOR=$(MAJOR)' -# @echo 'MINOR=$(MINOR)' - @echo 'SRC_DIRS=$(SRC_DIRS)' - @echo 'BUILD_DIR=$(BUILD_DIR)' - # # Generic Argeo # -BUILD_DIR := $(SDK_BUILD_BASE)/$(NATIVE_PACKAGE) -#BUILD_DIR := ./build -#META_INF_DIR := ./../META-INF -#ARCH := $(shell uname -p) +BUILD_DIR := $(SDK_BUILD_BASE)/jni/$(NATIVE_PACKAGE) # Every folder in ./src will need to be passed to GCC so that it can find header files -INC_DIRS := $(shell find $(SRC_DIRS) -type d) /usr/lib/jvm/java/include /usr/lib/jvm/java/include/linux /usr/include/uuid +INC_DIRS := $(shell find $(SRC_DIRS) -type d) $(JAVA_HOME)/include $(JAVA_HOME)/include/linux $(ADDITIONAL_INCLUDES) .PHONY: clean all ide -all: $(SDK_BUILD_BASE)/$(TARGET_EXEC) +all: $(SDK_BUILD_BASE)/jni/$(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. @@ -47,7 +37,7 @@ INC_FLAGS := $(addprefix -I,$(INC_DIRS)) CPPFLAGS := $(INC_FLAGS) -MMD -MP # The final build step. -$(SDK_BUILD_BASE)/$(TARGET_EXEC): $(OBJS) +$(SDK_BUILD_BASE)/jni/$(TARGET_EXEC): $(OBJS) $(CC) $(OBJS) -o $@ $(LDFLAGS) # Build step for C source diff --git a/org.argeo.api.uuid/jni/org_argeo_api_uuid_libuuid/.gitignore b/jni/org_argeo_api_uuid_libuuid/.gitignore similarity index 100% rename from org.argeo.api.uuid/jni/org_argeo_api_uuid_libuuid/.gitignore rename to jni/org_argeo_api_uuid_libuuid/.gitignore diff --git a/jni/org_argeo_api_uuid_libuuid/Makefile b/jni/org_argeo_api_uuid_libuuid/Makefile new file mode 100644 index 000000000..cfeb1db55 --- /dev/null +++ b/jni/org_argeo_api_uuid_libuuid/Makefile @@ -0,0 +1,8 @@ +NATIVE_PACKAGE := org_argeo_api_uuid_libuuid + +ADDITIONAL_INCLUDES = /usr/include/uuid +ADDITIONAL_LIBS = -luuid + +include ../../sdk.mk +include ../jni.mk + diff --git a/org.argeo.api.uuid/jni/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_DirectLibuuidFactory.c b/jni/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_DirectLibuuidFactory.c similarity index 82% rename from org.argeo.api.uuid/jni/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_DirectLibuuidFactory.c rename to jni/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_DirectLibuuidFactory.c index 71c265671..a5aeed009 100644 --- a/org.argeo.api.uuid/jni/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_DirectLibuuidFactory.c +++ b/jni/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_DirectLibuuidFactory.c @@ -3,6 +3,6 @@ #include "org_argeo_api_uuid_libuuid_DirectLibuuidFactory.h" JNIEXPORT void JNICALL Java_org_argeo_api_uuid_libuuid_DirectLibuuidFactory_timeUUID( - JNIEnv *env, jobject, jobject uuidBuf) { + JNIEnv *env, jobject uuidFactory, jobject uuidBuf) { uuid_generate_time((*env)->GetDirectBufferAddress(env, uuidBuf)); } diff --git a/org.argeo.api.uuid/jni/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_DirectLibuuidFactory.h b/jni/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_DirectLibuuidFactory.h similarity index 100% rename from org.argeo.api.uuid/jni/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_DirectLibuuidFactory.h rename to jni/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_DirectLibuuidFactory.h diff --git a/org.argeo.api.uuid/jni/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_LibuuidFactory.c b/jni/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_LibuuidFactory.c similarity index 90% rename from org.argeo.api.uuid/jni/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_LibuuidFactory.c rename to jni/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_LibuuidFactory.c index cff3cc581..f97b1f452 100644 --- a/org.argeo.api.uuid/jni/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_LibuuidFactory.c +++ b/jni/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_LibuuidFactory.c @@ -47,7 +47,7 @@ static inline void toBytes(JNIEnv *env, jobject jUUID, uuid_t result) { */ JNIEXPORT jobject JNICALL Java_org_argeo_api_uuid_libuuid_LibuuidFactory_timeUUID( - JNIEnv *env, jobject) { + JNIEnv *env, jobject uuidFactory) { uuid_t out; uuid_generate_time(out); @@ -55,7 +55,8 @@ JNIEXPORT jobject JNICALL Java_org_argeo_api_uuid_libuuid_LibuuidFactory_timeUUI } JNIEXPORT jobject JNICALL Java_org_argeo_api_uuid_libuuid_LibuuidFactory_nameUUIDv5( - JNIEnv *env, jobject, jobject namespaceUuid, jbyteArray name) { + JNIEnv *env, jobject uuidFactory, jobject namespaceUuid, + jbyteArray name) { uuid_t ns; uuid_t out; @@ -68,7 +69,8 @@ JNIEXPORT jobject JNICALL Java_org_argeo_api_uuid_libuuid_LibuuidFactory_nameUUI } JNIEXPORT jobject JNICALL Java_org_argeo_api_uuid_libuuid_LibuuidFactory_nameUUIDv3( - JNIEnv *env, jobject, jobject namespaceUuid, jbyteArray name) { + JNIEnv *env, jobject uuidFactory, jobject namespaceUuid, + jbyteArray name) { uuid_t ns; uuid_t out; @@ -81,7 +83,7 @@ JNIEXPORT jobject JNICALL Java_org_argeo_api_uuid_libuuid_LibuuidFactory_nameUUI } JNIEXPORT jobject JNICALL Java_org_argeo_api_uuid_libuuid_LibuuidFactory_randomUUIDStrong( - JNIEnv *env, jobject) { + JNIEnv *env, jobject uuidFactory) { uuid_t out; uuid_generate_random(out); diff --git a/org.argeo.api.uuid/jni/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_LibuuidFactory.h b/jni/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_LibuuidFactory.h similarity index 100% rename from org.argeo.api.uuid/jni/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_LibuuidFactory.h rename to jni/org_argeo_api_uuid_libuuid/org_argeo_api_uuid_libuuid_LibuuidFactory.h diff --git a/org.argeo.api.uuid/jni/.cproject b/org.argeo.api.uuid/jni/.cproject deleted file mode 100644 index cf5a27a23..000000000 --- a/org.argeo.api.uuid/jni/.cproject +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - make - - - - ide - - true - - true - - true - - - - - - - - diff --git a/org.argeo.api.uuid/jni/.settings/language.settings.xml b/org.argeo.api.uuid/jni/.settings/language.settings.xml deleted file mode 100644 index 7e8a04bfc..000000000 --- a/org.argeo.api.uuid/jni/.settings/language.settings.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/org.argeo.api.uuid/jni/Makefile b/org.argeo.api.uuid/jni/Makefile deleted file mode 100644 index df673b532..000000000 --- a/org.argeo.api.uuid/jni/Makefile +++ /dev/null @@ -1,23 +0,0 @@ -JNIDIRS = org_argeo_api_uuid_libuuid - -.PHONY: clean all jni - -all: jni - -jni: - $(foreach dir, $(JNIDIRS), $(MAKE) -C $(dir);) - -clean: - $(foreach dir, $(JNIDIRS), $(MAKE) -C $(dir) clean;) - -#ide: $(META_INF_DIR)/$(ARCH)/$(TARGET_EXEC) - -#$(META_INF_DIR)/$(ARCH)/$(TARGET_EXEC): $(BUILD_DIR)/$(TARGET_EXEC) -# mkdir -p $(dir $@) -# cp $(BUILD_DIR)/$(TARGET_EXEC) $(dir $@) - - -%: - @echo Making '$@' $(if $^,from '$^') - @echo 'OBJ=$(OBJ)' - @echo 'DEP=$(DEP)' diff --git a/org.argeo.api.uuid/jni/org_argeo_api_uuid_libuuid/Makefile b/org.argeo.api.uuid/jni/org_argeo_api_uuid_libuuid/Makefile deleted file mode 100644 index 492f59f8c..000000000 --- a/org.argeo.api.uuid/jni/org_argeo_api_uuid_libuuid/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -NATIVE_PACKAGE := org_argeo_api_uuid_libuuid - -include ../../../sdk.mk -include $(SDK_SRC_BASE)/sdk/jni.mk - diff --git a/sdk.mk.old b/sdk.mk.old new file mode 100644 index 000000000..d9e68e9d6 --- /dev/null +++ b/sdk.mk.old @@ -0,0 +1,5 @@ +SDK_SRC_BASE := /home/mbaudier/dev/git/unstable/argeo-commons +SDK_BUILD_BASE := /home/mbaudier/dev/git/unstable/argeo-commons/output + +include $(SDK_SRC_BASE)/branch.properties +include $(SDK_SRC_BASE)/sdk/includes.mk -- 2.30.2