summaryrefslogtreecommitdiff
path: root/classes/java.bbclass
diff options
context:
space:
mode:
authorFlorian Boor <florian.boor@kernelconcepts.de>2008-01-21 21:09:09 +0000
committerFlorian Boor <florian.boor@kernelconcepts.de>2008-01-21 21:09:09 +0000
commitafd58cdcce656ced784bfca78d7d96e2edca8cee (patch)
treeb49291fedc042760b35f74afa9b7e82b591147e5 /classes/java.bbclass
parentac6de0f3c0d8d5fe5708d9125c1319fbf5d627a6 (diff)
parenta7a4c7d6f9bbcda53d3bf07d51142d41e1a4558b (diff)
merge of '1cc9d40e03f431fac4150580f6a58521cae55509'
and 'a250ef0b1707ead866fe051ca88c56e538d51bfb'
Diffstat (limited to 'classes/java.bbclass')
-rw-r--r--classes/java.bbclass62
1 files changed, 62 insertions, 0 deletions
diff --git a/classes/java.bbclass b/classes/java.bbclass
new file mode 100644
index 0000000000..7fa6dc1786
--- /dev/null
+++ b/classes/java.bbclass
@@ -0,0 +1,62 @@
+# Defines the commonly used target directories and provides a convenience
+# function to install jar files.
+
+# Jar location on target
+datadir_java ?= ${datadir}/java
+
+# JNI library location on target
+libdir_jni ?= ${libdir}/jni
+
+STAGING_DATADIR_JAVA ?= ${STAGING_DATADIR}/java
+STAGING_LIBDIR_JNI ?= ${STAGING_LIBDIR}/jni
+
+oe_jarinstall() {
+ # Purpose: Install a jar file and create all the given symlinks to it.
+ # Example:
+ # oe_jarinstall foo-1.3.jar foo.jar
+ # Installs foo-1.3.jar and creates symlink foo.jar.
+ #
+ # oe_jarinstall -s foo-1.3.jar foo.jar
+ # Installs foo-1.3.jar to staging and creates symlink foo.jar.
+ #
+ # oe_jarinstall -r foo-1.3.jar foo_1_3.jar foo.jar
+ # Installs foo_1_3.jar as foo-1.3.jar and creates a symlink to this.
+ #
+ dir=${D}${datadir_java}
+ destname=""
+ while [ "$#" -gt 0 ]; do
+ case "$1" in
+ -s)
+ dir=${STAGING_DATADIR_JAVA}
+ ;;
+ -r)
+ shift
+ destname=$1
+ ;;
+ -*)
+ oefatal "oe_jarinstall: unknown option: $1"
+ ;;
+ *)
+ break;
+ ;;
+ esac
+ shift
+ done
+
+ jarname=$1
+ destname=${destname:-`basename $jarname`}
+ shift
+
+ install -d $dir
+ install -m 0644 $jarname $dir/$destname
+
+ # Creates symlinks out of the remaining arguments.
+ while [ "$#" -gt 0 ]; do
+ if [ -e $dir/$1 ]; then
+ oewarn "file was in the way. removing:" $dir/$1
+ rm $dir/$1
+ fi
+ ln -s $destname $dir/$1
+ shift
+ done
+}