# HG changeset patch # User František Kučera # Date 1516481085 -3600 # Node ID 2fbf53cf078208265cf64fba34eb49af83e3df58 # Parent 2a22f9959ea39a4d66366e3154e9093cd26b4720 jvm-jni-starter: spouštění JVM (Java) z C/C++ přes JNI diff -r 2a22f9959ea3 -r 2fbf53cf0782 c++/jvm-jni-starter/.dep.inc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/c++/jvm-jni-starter/.dep.inc Sat Jan 20 21:44:45 2018 +0100 @@ -0,0 +1,5 @@ +# This code depends on make tool being used +DEPFILES=$(wildcard $(addsuffix .d, ${OBJECTFILES} ${TESTOBJECTFILES})) +ifneq (${DEPFILES},) +include ${DEPFILES} +endif diff -r 2a22f9959ea3 -r 2fbf53cf0782 c++/jvm-jni-starter/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/c++/jvm-jni-starter/Makefile Sat Jan 20 21:44:45 2018 +0100 @@ -0,0 +1,128 @@ +# +# There exist several targets which are by default empty and which can be +# used for execution of your targets. These targets are usually executed +# before and after some main targets. They are: +# +# .build-pre: called before 'build' target +# .build-post: called after 'build' target +# .clean-pre: called before 'clean' target +# .clean-post: called after 'clean' target +# .clobber-pre: called before 'clobber' target +# .clobber-post: called after 'clobber' target +# .all-pre: called before 'all' target +# .all-post: called after 'all' target +# .help-pre: called before 'help' target +# .help-post: called after 'help' target +# +# Targets beginning with '.' are not intended to be called on their own. +# +# Main targets can be executed directly, and they are: +# +# build build a specific configuration +# clean remove built files from a configuration +# clobber remove all built files +# all build all configurations +# help print help mesage +# +# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and +# .help-impl are implemented in nbproject/makefile-impl.mk. +# +# Available make variables: +# +# CND_BASEDIR base directory for relative paths +# CND_DISTDIR default top distribution directory (build artifacts) +# CND_BUILDDIR default top build directory (object files, ...) +# CONF name of current configuration +# CND_PLATFORM_${CONF} platform name (current configuration) +# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration) +# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration) +# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration) +# CND_PACKAGE_DIR_${CONF} directory of package (current configuration) +# CND_PACKAGE_NAME_${CONF} name of package (current configuration) +# CND_PACKAGE_PATH_${CONF} path to package (current configuration) +# +# NOCDDL + + +# Environment +MKDIR=mkdir +CP=cp +CCADMIN=CCadmin + + +# build +build: .build-post + +.build-pre: +# Add your pre 'build' code here... + +.build-post: .build-impl +# Add your post 'build' code here... + + +# clean +clean: .clean-post + +.clean-pre: +# Add your pre 'clean' code here... + +.clean-post: .clean-impl +# Add your post 'clean' code here... + + +# clobber +clobber: .clobber-post + +.clobber-pre: +# Add your pre 'clobber' code here... + +.clobber-post: .clobber-impl +# Add your post 'clobber' code here... + + +# all +all: .all-post + +.all-pre: +# Add your pre 'all' code here... + +.all-post: .all-impl +# Add your post 'all' code here... + + +# build tests +build-tests: .build-tests-post + +.build-tests-pre: +# Add your pre 'build-tests' code here... + +.build-tests-post: .build-tests-impl +# Add your post 'build-tests' code here... + + +# run tests +test: .test-post + +.test-pre: build-tests +# Add your pre 'test' code here... + +.test-post: .test-impl +# Add your post 'test' code here... + + +# help +help: .help-post + +.help-pre: +# Add your pre 'help' code here... + +.help-post: .help-impl +# Add your post 'help' code here... + + + +# include project implementation makefile +include nbproject/Makefile-impl.mk + +# include project make variables +include nbproject/Makefile-variables.mk diff -r 2a22f9959ea3 -r 2fbf53cf0782 c++/jvm-jni-starter/jvm-jni-starter.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/c++/jvm-jni-starter/jvm-jni-starter.cpp Sat Jan 20 21:44:45 2018 +0100 @@ -0,0 +1,106 @@ +#include +#include +#include +#include + +#include + +using namespace std; + +/** + * Spouští JVM z C++, volá statickou metodu ze standardní knihovny (System.currentTimeMillis()) a main() metodu programu SQL-DK + * + * @param argc + * @param argv + * @return + */ +int main(int argc, char** argv) { + + setlocale(LC_ALL, ""); + + JavaVM *jvm; + JNIEnv *env; + + JavaVMOption options[1]; + char * home = getenv("HOME"); + + string classPath; + classPath.append("-Djava.class.path="); + classPath.append(home); + classPath.append("/projekty/SQL-DK/sql-dk/java/sql-dk/dist/sql-dk.jar"); + classPath.append(":"); + classPath.append(home); + classPath.append("/projekty/SQL-DK/sql-dk/java/jdbc-loopback-driver/dist/jdbc-loopback-driver.jar"); + + wprintf(L"classPath: %s\n", classPath.c_str()); + + options[0].optionString = new char[classPath.length() + 1]; + copy(classPath.begin(), classPath.end(), options[0].optionString); + + JavaVMInitArgs vm_args; + vm_args.version = JNI_VERSION_1_8; + vm_args.nOptions = 1; + vm_args.options = options; + vm_args.ignoreUnrecognized = false; + + JNI_CreateJavaVM(&jvm, (void**) &env, &vm_args); + + string className = "java/lang/System"; + + jclass cls = env->FindClass(className.c_str()); + if (cls) { + string methodName = "currentTimeMillis"; + jmethodID mid = env->GetStaticMethodID(cls, methodName.c_str(), "()J"); + + if (mid) { + jlong time = env->CallStaticLongMethod(cls, mid); + wprintf(L"Aktuální čas Javy: %d\n", time); + + } else { + wprintf(L"Metoda nebyla nalezena: %s\n", methodName.c_str()); + } + } else { + wprintf(L"Třída nebyla nalezena: %s\n", className.c_str()); + } + + delete cls; // TODO: jak čistit? + + className = "info/globalcode/sql/dk/CLIStarter"; + cls = env->FindClass(className.c_str()); + if (cls) { + string methodName = "main"; + jmethodID mid = env->GetStaticMethodID(cls, methodName.c_str(), "([Ljava/lang/String;)V"); + + if (mid) { + //jstring arg = env->NewStringUTF("--list-databases"); + //jarray args = env->NewObjectArray(1, env->FindClass("java/lang/String"), arg); + + jobjectArray args = env->NewObjectArray(9, env->FindClass("java/lang/String"), NULL); + env->SetObjectArrayElement(args, 0, env->NewStringUTF("--db")); + env->SetObjectArrayElement(args, 1, env->NewStringUTF("loopback")); + env->SetObjectArrayElement(args, 2, env->NewStringUTF("--sql-in")); // vyžaduje (libovolná) data na standardním vstupu + env->SetObjectArrayElement(args, 3, env->NewStringUTF("--data")); + env->SetObjectArrayElement(args, 4, env->NewStringUTF("2")); + env->SetObjectArrayElement(args, 5, env->NewStringUTF("a")); + env->SetObjectArrayElement(args, 6, env->NewStringUTF("b")); + env->SetObjectArrayElement(args, 7, env->NewStringUTF("c")); + env->SetObjectArrayElement(args, 8, env->NewStringUTF("d")); + + + for (int i = 0; i < 10; i++) { + env->CallStaticVoidMethod(cls, mid, args); + // FIXME: nefuguje – JVM ukončí proces → vlákna/procesy + } + + + } else { + wprintf(L"Metoda nebyla nalezena: %s\n", methodName.c_str()); + } + } else { + wprintf(L"Třída nebyla nalezena: %s\n", className.c_str()); + } + + jvm->DestroyJavaVM(); + return 0; +} + diff -r 2a22f9959ea3 -r 2fbf53cf0782 c++/jvm-jni-starter/nbproject/Makefile-Debug.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/c++/jvm-jni-starter/nbproject/Makefile-Debug.mk Sat Jan 20 21:44:45 2018 +0100 @@ -0,0 +1,87 @@ +# +# Generated Makefile - do not edit! +# +# Edit the Makefile in the project folder instead (../Makefile). Each target +# has a -pre and a -post target defined where you can add customized code. +# +# This makefile implements configuration specific macros and targets. + + +# Environment +MKDIR=mkdir +CP=cp +GREP=grep +NM=nm +CCADMIN=CCadmin +RANLIB=ranlib +CC=gcc +CCC=g++ +CXX=g++ +FC=gfortran +AS=as + +# Macros +CND_PLATFORM=GNU-Linux +CND_DLIB_EXT=so +CND_CONF=Debug +CND_DISTDIR=dist +CND_BUILDDIR=build + +# Include project Makefile +include Makefile + +# Object Directory +OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM} + +# Object Files +OBJECTFILES= \ + ${OBJECTDIR}/jvm-jni-starter.o + + +# C Compiler Flags +CFLAGS= + +# CC Compiler Flags +CCFLAGS= +CXXFLAGS= + +# Fortran Compiler Flags +FFLAGS= + +# Assembler Flags +ASFLAGS= + +# Link Libraries and Options +LDLIBSOPTIONS=-L/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so + +# Build Targets +.build-conf: ${BUILD_SUBPROJECTS} + "${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/jvm-jni-starter + +${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/jvm-jni-starter: /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so + +${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/jvm-jni-starter: ${OBJECTFILES} + ${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM} + ${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/jvm-jni-starter ${OBJECTFILES} ${LDLIBSOPTIONS} + +${OBJECTDIR}/jvm-jni-starter.o: jvm-jni-starter.cpp + ${MKDIR} -p ${OBJECTDIR} + ${RM} "$@.d" + $(COMPILE.cc) -g -I/usr/lib/jvm/java-8-openjdk-amd64/include -I/usr/lib/jvm/java-8-openjdk-amd64/include/linux -std=c++14 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/jvm-jni-starter.o jvm-jni-starter.cpp + +# Subprojects +.build-subprojects: + +# Clean Targets +.clean-conf: ${CLEAN_SUBPROJECTS} + ${RM} -r ${CND_BUILDDIR}/${CND_CONF} + ${RM} -r ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libjvm.so + ${RM} ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/jvm-jni-starter + +# Subprojects +.clean-subprojects: + +# Enable dependency checking +.dep.inc: .depcheck-impl + +include .dep.inc diff -r 2a22f9959ea3 -r 2fbf53cf0782 c++/jvm-jni-starter/nbproject/Makefile-Release.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/c++/jvm-jni-starter/nbproject/Makefile-Release.mk Sat Jan 20 21:44:45 2018 +0100 @@ -0,0 +1,83 @@ +# +# Generated Makefile - do not edit! +# +# Edit the Makefile in the project folder instead (../Makefile). Each target +# has a -pre and a -post target defined where you can add customized code. +# +# This makefile implements configuration specific macros and targets. + + +# Environment +MKDIR=mkdir +CP=cp +GREP=grep +NM=nm +CCADMIN=CCadmin +RANLIB=ranlib +CC=gcc +CCC=g++ +CXX=g++ +FC=gfortran +AS=as + +# Macros +CND_PLATFORM=GNU-Linux +CND_DLIB_EXT=so +CND_CONF=Release +CND_DISTDIR=dist +CND_BUILDDIR=build + +# Include project Makefile +include Makefile + +# Object Directory +OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM} + +# Object Files +OBJECTFILES= \ + ${OBJECTDIR}/jvm-jni-starter.o + + +# C Compiler Flags +CFLAGS= + +# CC Compiler Flags +CCFLAGS= +CXXFLAGS= + +# Fortran Compiler Flags +FFLAGS= + +# Assembler Flags +ASFLAGS= + +# Link Libraries and Options +LDLIBSOPTIONS= + +# Build Targets +.build-conf: ${BUILD_SUBPROJECTS} + "${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/jvm-jni-starter + +${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/jvm-jni-starter: ${OBJECTFILES} + ${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM} + ${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/jvm-jni-starter ${OBJECTFILES} ${LDLIBSOPTIONS} + +${OBJECTDIR}/jvm-jni-starter.o: jvm-jni-starter.cpp + ${MKDIR} -p ${OBJECTDIR} + ${RM} "$@.d" + $(COMPILE.cc) -O2 -std=c++14 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/jvm-jni-starter.o jvm-jni-starter.cpp + +# Subprojects +.build-subprojects: + +# Clean Targets +.clean-conf: ${CLEAN_SUBPROJECTS} + ${RM} -r ${CND_BUILDDIR}/${CND_CONF} + +# Subprojects +.clean-subprojects: + +# Enable dependency checking +.dep.inc: .depcheck-impl + +include .dep.inc diff -r 2a22f9959ea3 -r 2fbf53cf0782 c++/jvm-jni-starter/nbproject/Makefile-impl.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/c++/jvm-jni-starter/nbproject/Makefile-impl.mk Sat Jan 20 21:44:45 2018 +0100 @@ -0,0 +1,133 @@ +# +# Generated Makefile - do not edit! +# +# Edit the Makefile in the project folder instead (../Makefile). Each target +# has a pre- and a post- target defined where you can add customization code. +# +# This makefile implements macros and targets common to all configurations. +# +# NOCDDL + + +# Building and Cleaning subprojects are done by default, but can be controlled with the SUB +# macro. If SUB=no, subprojects will not be built or cleaned. The following macro +# statements set BUILD_SUB-CONF and CLEAN_SUB-CONF to .build-reqprojects-conf +# and .clean-reqprojects-conf unless SUB has the value 'no' +SUB_no=NO +SUBPROJECTS=${SUB_${SUB}} +BUILD_SUBPROJECTS_=.build-subprojects +BUILD_SUBPROJECTS_NO= +BUILD_SUBPROJECTS=${BUILD_SUBPROJECTS_${SUBPROJECTS}} +CLEAN_SUBPROJECTS_=.clean-subprojects +CLEAN_SUBPROJECTS_NO= +CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}} + + +# Project Name +PROJECTNAME=jvm-jni-starter + +# Active Configuration +DEFAULTCONF=Debug +CONF=${DEFAULTCONF} + +# All Configurations +ALLCONFS=Debug Release + + +# build +.build-impl: .build-pre .validate-impl .depcheck-impl + @#echo "=> Running $@... Configuration=$(CONF)" + "${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf + + +# clean +.clean-impl: .clean-pre .validate-impl .depcheck-impl + @#echo "=> Running $@... Configuration=$(CONF)" + "${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf + + +# clobber +.clobber-impl: .clobber-pre .depcheck-impl + @#echo "=> Running $@..." + for CONF in ${ALLCONFS}; \ + do \ + "${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf; \ + done + +# all +.all-impl: .all-pre .depcheck-impl + @#echo "=> Running $@..." + for CONF in ${ALLCONFS}; \ + do \ + "${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf; \ + done + +# build tests +.build-tests-impl: .build-impl .build-tests-pre + @#echo "=> Running $@... Configuration=$(CONF)" + "${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .build-tests-conf + +# run tests +.test-impl: .build-tests-impl .test-pre + @#echo "=> Running $@... Configuration=$(CONF)" + "${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .test-conf + +# dependency checking support +.depcheck-impl: + @echo "# This code depends on make tool being used" >.dep.inc + @if [ -n "${MAKE_VERSION}" ]; then \ + echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES} \$${TESTOBJECTFILES}))" >>.dep.inc; \ + echo "ifneq (\$${DEPFILES},)" >>.dep.inc; \ + echo "include \$${DEPFILES}" >>.dep.inc; \ + echo "endif" >>.dep.inc; \ + else \ + echo ".KEEP_STATE:" >>.dep.inc; \ + echo ".KEEP_STATE_FILE:.make.state.\$${CONF}" >>.dep.inc; \ + fi + +# configuration validation +.validate-impl: + @if [ ! -f nbproject/Makefile-${CONF}.mk ]; \ + then \ + echo ""; \ + echo "Error: can not find the makefile for configuration '${CONF}' in project ${PROJECTNAME}"; \ + echo "See 'make help' for details."; \ + echo "Current directory: " `pwd`; \ + echo ""; \ + fi + @if [ ! -f nbproject/Makefile-${CONF}.mk ]; \ + then \ + exit 1; \ + fi + + +# help +.help-impl: .help-pre + @echo "This makefile supports the following configurations:" + @echo " ${ALLCONFS}" + @echo "" + @echo "and the following targets:" + @echo " build (default target)" + @echo " clean" + @echo " clobber" + @echo " all" + @echo " help" + @echo "" + @echo "Makefile Usage:" + @echo " make [CONF=] [SUB=no] build" + @echo " make [CONF=] [SUB=no] clean" + @echo " make [SUB=no] clobber" + @echo " make [SUB=no] all" + @echo " make help" + @echo "" + @echo "Target 'build' will build a specific configuration and, unless 'SUB=no'," + @echo " also build subprojects." + @echo "Target 'clean' will clean a specific configuration and, unless 'SUB=no'," + @echo " also clean subprojects." + @echo "Target 'clobber' will remove all built files from all configurations and," + @echo " unless 'SUB=no', also from subprojects." + @echo "Target 'all' will will build all configurations and, unless 'SUB=no'," + @echo " also build subprojects." + @echo "Target 'help' prints this message." + @echo "" + diff -r 2a22f9959ea3 -r 2fbf53cf0782 c++/jvm-jni-starter/nbproject/Makefile-variables.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/c++/jvm-jni-starter/nbproject/Makefile-variables.mk Sat Jan 20 21:44:45 2018 +0100 @@ -0,0 +1,35 @@ +# +# Generated - do not edit! +# +# NOCDDL +# +CND_BASEDIR=`pwd` +CND_BUILDDIR=build +CND_DISTDIR=dist +# Debug configuration +CND_PLATFORM_Debug=GNU-Linux +CND_ARTIFACT_DIR_Debug=dist/Debug/GNU-Linux +CND_ARTIFACT_NAME_Debug=jvm-jni-starter +CND_ARTIFACT_PATH_Debug=dist/Debug/GNU-Linux/jvm-jni-starter +CND_PACKAGE_DIR_Debug=dist/Debug/GNU-Linux/package +CND_PACKAGE_NAME_Debug=jvm-jni-starter.tar +CND_PACKAGE_PATH_Debug=dist/Debug/GNU-Linux/package/jvm-jni-starter.tar +# Release configuration +CND_PLATFORM_Release=GNU-Linux +CND_ARTIFACT_DIR_Release=dist/Release/GNU-Linux +CND_ARTIFACT_NAME_Release=jvm-jni-starter +CND_ARTIFACT_PATH_Release=dist/Release/GNU-Linux/jvm-jni-starter +CND_PACKAGE_DIR_Release=dist/Release/GNU-Linux/package +CND_PACKAGE_NAME_Release=jvm-jni-starter.tar +CND_PACKAGE_PATH_Release=dist/Release/GNU-Linux/package/jvm-jni-starter.tar +# +# include compiler specific variables +# +# dmake command +ROOT:sh = test -f nbproject/private/Makefile-variables.mk || \ + (mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk) +# +# gmake command +.PHONY: $(shell test -f nbproject/private/Makefile-variables.mk || (mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk)) +# +include nbproject/private/Makefile-variables.mk diff -r 2a22f9959ea3 -r 2fbf53cf0782 c++/jvm-jni-starter/nbproject/Package-Debug.bash --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/c++/jvm-jni-starter/nbproject/Package-Debug.bash Sat Jan 20 21:44:45 2018 +0100 @@ -0,0 +1,76 @@ +#!/bin/bash -x + +# +# Generated - do not edit! +# + +# Macros +TOP=`pwd` +CND_PLATFORM=GNU-Linux +CND_CONF=Debug +CND_DISTDIR=dist +CND_BUILDDIR=build +CND_DLIB_EXT=so +NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging +TMPDIRNAME=tmp-packaging +OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/jvm-jni-starter +OUTPUT_BASENAME=jvm-jni-starter +PACKAGE_TOP_DIR=jvm-jni-starter/ + +# Functions +function checkReturnCode +{ + rc=$? + if [ $rc != 0 ] + then + exit $rc + fi +} +function makeDirectory +# $1 directory path +# $2 permission (optional) +{ + mkdir -p "$1" + checkReturnCode + if [ "$2" != "" ] + then + chmod $2 "$1" + checkReturnCode + fi +} +function copyFileToTmpDir +# $1 from-file path +# $2 to-file path +# $3 permission +{ + cp "$1" "$2" + checkReturnCode + if [ "$3" != "" ] + then + chmod $3 "$2" + checkReturnCode + fi +} + +# Setup +cd "${TOP}" +mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package +rm -rf ${NBTMPDIR} +mkdir -p ${NBTMPDIR} + +# Copy files and create directories and links +cd "${TOP}" +makeDirectory "${NBTMPDIR}/jvm-jni-starter/bin" +copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755 + + +# Generate tar file +cd "${TOP}" +rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/jvm-jni-starter.tar +cd ${NBTMPDIR} +tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/jvm-jni-starter.tar * +checkReturnCode + +# Cleanup +cd "${TOP}" +rm -rf ${NBTMPDIR} diff -r 2a22f9959ea3 -r 2fbf53cf0782 c++/jvm-jni-starter/nbproject/Package-Release.bash --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/c++/jvm-jni-starter/nbproject/Package-Release.bash Sat Jan 20 21:44:45 2018 +0100 @@ -0,0 +1,76 @@ +#!/bin/bash -x + +# +# Generated - do not edit! +# + +# Macros +TOP=`pwd` +CND_PLATFORM=GNU-Linux +CND_CONF=Release +CND_DISTDIR=dist +CND_BUILDDIR=build +CND_DLIB_EXT=so +NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging +TMPDIRNAME=tmp-packaging +OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/jvm-jni-starter +OUTPUT_BASENAME=jvm-jni-starter +PACKAGE_TOP_DIR=jvm-jni-starter/ + +# Functions +function checkReturnCode +{ + rc=$? + if [ $rc != 0 ] + then + exit $rc + fi +} +function makeDirectory +# $1 directory path +# $2 permission (optional) +{ + mkdir -p "$1" + checkReturnCode + if [ "$2" != "" ] + then + chmod $2 "$1" + checkReturnCode + fi +} +function copyFileToTmpDir +# $1 from-file path +# $2 to-file path +# $3 permission +{ + cp "$1" "$2" + checkReturnCode + if [ "$3" != "" ] + then + chmod $3 "$2" + checkReturnCode + fi +} + +# Setup +cd "${TOP}" +mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package +rm -rf ${NBTMPDIR} +mkdir -p ${NBTMPDIR} + +# Copy files and create directories and links +cd "${TOP}" +makeDirectory "${NBTMPDIR}/jvm-jni-starter/bin" +copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755 + + +# Generate tar file +cd "${TOP}" +rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/jvm-jni-starter.tar +cd ${NBTMPDIR} +tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/jvm-jni-starter.tar * +checkReturnCode + +# Cleanup +cd "${TOP}" +rm -rf ${NBTMPDIR} diff -r 2a22f9959ea3 -r 2fbf53cf0782 c++/jvm-jni-starter/nbproject/configurations.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/c++/jvm-jni-starter/nbproject/configurations.xml Sat Jan 20 21:44:45 2018 +0100 @@ -0,0 +1,82 @@ + + + + + + + + + jvm-jni-starter.cpp + + + + + Makefile + + + Makefile + + + + default + true + false + + + + 11 + + /usr/lib/jvm/java-8-openjdk-amd64/include + /usr/lib/jvm/java-8-openjdk-amd64/include/linux + + + + + /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server + + + /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so + + + + + + + + + default + true + false + + + + 5 + + + 5 + 11 + + + 5 + + + 5 + + + + + + + diff -r 2a22f9959ea3 -r 2fbf53cf0782 c++/jvm-jni-starter/nbproject/project.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/c++/jvm-jni-starter/nbproject/project.xml Sat Jan 20 21:44:45 2018 +0100 @@ -0,0 +1,28 @@ + + + org.netbeans.modules.cnd.makeproject + + + jvm-jni-starter + + cpp + + UTF-8 + + + + + Debug + 1 + + + Release + 1 + + + + false + + + +