From f9e83bcb59c0605272d3a4f98bb92850077f04f3 Mon Sep 17 00:00:00 2001 From: Joseph Henry Date: Thu, 6 Sep 2018 15:30:34 -0700 Subject: [PATCH] Improvements to packaging scripts --- examples/java/Makefile | 25 ------------------------- examples/java/README.md | 27 ++++----------------------- packages/dist.sh | 16 ++++++++++------ 3 files changed, 14 insertions(+), 54 deletions(-) delete mode 100644 examples/java/Makefile diff --git a/examples/java/Makefile b/examples/java/Makefile deleted file mode 100644 index 6d5cf31..0000000 --- a/examples/java/Makefile +++ /dev/null @@ -1,25 +0,0 @@ -OSTYPE=$(shell uname -s | tr '[A-Z]' '[a-z]') -BUILD=build/$(OSTYPE) - -ifeq ($(OSTYPE),darwin) -SHARED_LIB=libzt.dylib -endif -ifeq ($(OSTYPE),linux) -SHARED_LIB=libzt.so -endif - -example_java_app: - javac *.java - -example_java_app_1.6: - javac -source 1.6 -bootclasspath /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.41.x86_64/jre/lib/rt.jar -target 1.6 *.java - -copy_dynamic_lib: - cp ../../bin/lib/$(SHARED_LIB) . - -jar: - jar cf libzt.jar libzt.dylib zerotier/ZeroTier.class - -clean: - -rm -rf *.jar *.dylib *.so - -find . -type f \( -name '*.class' \) -delete diff --git a/examples/java/README.md b/examples/java/README.md index 0dcbda6..c5472b9 100644 --- a/examples/java/README.md +++ b/examples/java/README.md @@ -1,27 +1,8 @@ ## ZeroTier with Java via JNI *** -### Example App +### ExampleApp -- From libzt main directory, build shared library: `make shared_jni_lib` -- Copy the resultant dynamic library (`*.so` or `*.dylib`) from `build/` to this current directory -- Change to this directory and `make example_java_app` -- Run: `java -cp "." ExampleApp` - -### JAR file (with embedded C++ dynamic library) - -``` -make example_java_app -make copy_dynamic_lib -make jar -``` - -Notes: - -Upon execution, it will load the libzt dynamic library via the `loadLibrary` method and begin generating an identity. - -*** - -More resources on JNI usage: - -http://journals.ecs.soton.ac.uk/java/tutorial/native1.1/implementing/index.html +Copy `zt.jar` file into this directory +Extract shared library from JAR file: `jar xf zt.jar libzt.dylib` +Build ExampleApp: `javac -cp ".:zt.jar" ExampleApp.java` \ No newline at end of file diff --git a/packages/dist.sh b/packages/dist.sh index d6f1a7e..1afb6ec 100755 --- a/packages/dist.sh +++ b/packages/dist.sh @@ -38,6 +38,7 @@ XCODE_IOS_PROJ_DIR=$(pwd)/"packages/xcode_ios" XCODE_MACOS_PROJ_DIR=$(pwd)/"packages/xcode_macos" mkdir $FINISHED_PRODUCTS_DIR +mkdir $STAGING_DIR # Check that projects exist, generate them and exit if they don't exist generate_projects_if_necessary() @@ -124,6 +125,7 @@ build_all_products() fi # Java Archive (JAR) if true; then + CURR_BUILD_PRODUCTS_DIR=$LIB_PRODUCTS_DIR CMAKE_FLAGS=$CMAKE_FLAGS" -DJNI=1" CURR_TMP_PRODUCT_DIR=$STAGING_DIR/$CONFIG/macos-$(uname -m) mkdir -p $CURR_TMP_PRODUCT_DIR @@ -132,16 +134,17 @@ build_all_products() cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=$CONFIG "-DJNI=1 -DBUILD_TESTS=0" cmake --build build cd $PROJROOT/packages/java - #cp $CURR_BUILD_PRODUCTS_DIR/libzt.dylib . + cp $CURR_BUILD_PRODUCTS_DIR/libzt.dylib . javac com/zerotier/libzt/*.java - jar cf zt.jar $CURR_BUILD_PRODUCTS_DIR/libzt.dylib com/zerotier/libzt/*.class + jar cf zt.jar libzt.dylib com/zerotier/libzt/*.class + rm libzt.dylib mv zt.jar $CURR_TMP_PRODUCT_DIR cd - fi fi # Linux targets if [[ $OSNAME = *"linux"* ]]; then - CURR_BUILD_PRODUCTS_DIR=$LIB_PRODUCTS_DIR/ + CURR_BUILD_PRODUCTS_DIR=$LIB_PRODUCTS_DIR # Ordinary libraries if true; then rm -rf $LIB_PRODUCTS_DIR @@ -150,7 +153,7 @@ build_all_products() # -j $BUILD_CONCURRENCY CURR_TMP_PRODUCT_DIR=$STAGING_DIR/$CONFIG/linux-$(uname -m) mkdir -p $CURR_TMP_PRODUCT_DIR - mv ${CURR_BUILD_PRODUCTS_DIR}libzt.* $CURR_TMP_PRODUCT_DIR + mv $CURR_BUILD_PRODUCTS_DIR/libzt.* $CURR_TMP_PRODUCT_DIR fi # Java JAR file if true; then @@ -161,9 +164,10 @@ build_all_products() CURR_TMP_PRODUCT_DIR=$STAGING_DIR/$CONFIG/linux-$(uname -m) mkdir -p $CURR_TMP_PRODUCT_DIR cd $PROJROOT/packages/java - #cp $CURR_BUILD_PRODUCTS_DIR/libzt.so . + cp $CURR_BUILD_PRODUCTS_DIR/libzt.so . javac com/zerotier/libzt/*.java - jar cf zt.jar $CURR_BUILD_PRODUCTS_DIR/libzt.so com/zerotier/libzt/*.class + jar cf zt.jar libzt.dylib com/zerotier/libzt/*.class + rm libzt.dylib mv zt.jar $CURR_TMP_PRODUCT_DIR cd - fi