-
Nadav Har'El authored
Added build ("make") framework for compiling Java code we want to run in OSv (in/with the Java payload), as well as JNI, i.e., OSv-specific C code we want to run from the above Java code. The Java source files in java/src/ are now all compiled during build (see java/build.xml for the Ant file doing this compilation) and the result is one JAR, build/$mode/java/cloudius.jar (/cloudius.jar in bootfs). We can easily change build.xml to create more than one if we want. As an example of JNI, I used the not-working-yet balloon feature. java/src/com/cloudius/balloon/Balloon.java is the class com.cloudius.balloon.Balloon which is supposed to have one "native" (implemented in C) function giveup(). This function's implementation is in java/jni/balloon.c. We get this file to compile to balloon.so (put in /usr/lib/jni in the bootfs) by adding java/jni/balloon.so to the "jni" list in build.mak. If you don't know how write the ugly function signature as seen in java/jni/balloon.c, you can run "javah com.cloudius.balloon.Balloon" to build the empty functions needed for implementing the native functions defined in the above class.
Nadav Har'El authoredAdded build ("make") framework for compiling Java code we want to run in OSv (in/with the Java payload), as well as JNI, i.e., OSv-specific C code we want to run from the above Java code. The Java source files in java/src/ are now all compiled during build (see java/build.xml for the Ant file doing this compilation) and the result is one JAR, build/$mode/java/cloudius.jar (/cloudius.jar in bootfs). We can easily change build.xml to create more than one if we want. As an example of JNI, I used the not-working-yet balloon feature. java/src/com/cloudius/balloon/Balloon.java is the class com.cloudius.balloon.Balloon which is supposed to have one "native" (implemented in C) function giveup(). This function's implementation is in java/jni/balloon.c. We get this file to compile to balloon.so (put in /usr/lib/jni in the bootfs) by adding java/jni/balloon.so to the "jni" list in build.mak. If you don't know how write the ugly function signature as seen in java/jni/balloon.c, you can run "javah com.cloudius.balloon.Balloon" to build the empty functions needed for implementing the native functions defined in the above class.