summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorKurt Jaeger <pi@FreeBSD.org>2016-06-26 11:51:09 +0000
committerKurt Jaeger <pi@FreeBSD.org>2016-06-26 11:51:09 +0000
commitf8f66d777fdc93a4ecc35c50c439f53bb3723dcd (patch)
treeb964f4dd9eecbdbe72bd61f7b132c99cc3f91d50 /java
parentdatabases/mariadb100-server: Update to 10.0.26 (diff)
New port: java/aparapi
aparapi is an open source API for expressing data parallel workflows in Java. Originally an AMD product, Aparapi was released to open source on September 14, 2011. Aparapi is an API for expressing data parallel workloads in Java and a runtime component capable of converting the Java# bytecode of compatible workloads into OpenCL# so that it can be executed on a variety of GPU devices. WWW: https://github.com/aparapi/aparapi PR: 204024 Submitted by: dieterich@ogolem.org
Notes
Notes: svn path=/head/; revision=417519
Diffstat (limited to 'java')
-rw-r--r--java/Makefile1
-rw-r--r--java/aparapi/Makefile34
-rw-r--r--java/aparapi/distinfo3
-rw-r--r--java/aparapi/files/patch-build.xml13
-rw-r--r--java/aparapi/files/patch-com.amd.aparapi.jni_build.xml156
-rw-r--r--java/aparapi/files/patch-com.amd.aparapi.jni_src_cpp_Common.h11
-rw-r--r--java/aparapi/files/patch-com.amd.aparapi_src_java_com_amd_aparapi_internal_opencl_OpenCLLoader.java15
-rw-r--r--java/aparapi/pkg-descr8
-rw-r--r--java/aparapi/pkg-plist2
9 files changed, 243 insertions, 0 deletions
diff --git a/java/Makefile b/java/Makefile
index 245906c6a8fa..87ab0d699444 100644
--- a/java/Makefile
+++ b/java/Makefile
@@ -3,6 +3,7 @@
COMMENT = Java language support
+ SUBDIR += aparapi
SUBDIR += avis
SUBDIR += berkeley-db
SUBDIR += bluej
diff --git a/java/aparapi/Makefile b/java/aparapi/Makefile
new file mode 100644
index 000000000000..5f9a4a502f82
--- /dev/null
+++ b/java/aparapi/Makefile
@@ -0,0 +1,34 @@
+# Created by: Johannes Dieterich <dieterich@ogolem.org>
+# $FreeBSD$
+
+PORTNAME= aparapi
+PORTVERSION= 1.0.0
+DISTVERSIONSUFFIX= -SNAPSHOT
+CATEGORIES= java lang
+
+MAINTAINER= dieterich@ogolem.org
+COMMENT= Open source API for expressing data parallel workflows in Java
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE.TXT
+
+BUILD_DEPENDS= opencl>=0:devel/opencl
+LIB_DEPENDS= libOpenCL.so:devel/ocl-icd
+RUN_DEPENDS= opencl>=0:devel/opencl
+
+ONLY_FOR_ARCHS= amd64 i386
+
+USE_GITHUB= yes
+
+USE_JAVA= yes
+JAVA_VERSION= 1.7+
+USE_ANT= yes
+ALL_TARGET= dist
+
+USES= dos2unix
+
+do-install:
+ (cd ${WRKSRC}/dist_freebsd && ${INSTALL_DATA} aparapi.jar ${STAGEDIR}${JAVAJARDIR})
+ (cd ${WRKSRC}/dist_freebsd && ${INSTALL_LIB} libaparapi.so ${STAGEDIR}${PREFIX}/lib)
+
+.include <bsd.port.mk>
diff --git a/java/aparapi/distinfo b/java/aparapi/distinfo
new file mode 100644
index 000000000000..d114d3ebbbee
--- /dev/null
+++ b/java/aparapi/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1466929753
+SHA256 (aparapi-aparapi-1.0.0-SNAPSHOT_GH0.tar.gz) = 4b3a4662476746406f2138e372730a64e566b87a464a767dd878e9794f30101a
+SIZE (aparapi-aparapi-1.0.0-SNAPSHOT_GH0.tar.gz) = 5431817
diff --git a/java/aparapi/files/patch-build.xml b/java/aparapi/files/patch-build.xml
new file mode 100644
index 000000000000..745db07ec9d3
--- /dev/null
+++ b/java/aparapi/files/patch-build.xml
@@ -0,0 +1,13 @@
+--- build.xml.orig 2015-09-21 01:20:25 UTC
++++ build.xml
+@@ -5,8 +5,9 @@
+
+ <condition property="x86_or_x86_64" value="x86" else="x86_64"> <or><os arch="x86" /><os arch="i386"/></or> </condition>
+ <condition property="dist" value="dist_windows_${x86_or_x86_64}"><os family="windows" /></condition>
+- <condition property="dist" value="dist_linux_${x86_or_x86_64}"><and><not><os family="mac"/></not><os family="unix" /></and></condition>
++ <condition property="dist" value="dist_linux_${x86_or_x86_64}"><and><not><os family="mac"/></not><not><os name="FreeBSD"/></not><os family="unix" /></and></condition>
+ <condition property="dist" value="dist_mac_${x86_or_x86_64}"><os family="mac" /></condition>
++ <condition property="dist" value="dist_freebsd"><os name="FreeBSD" /></condition>
+
+ <target name="help">
+ <echo message="Available targets are:-"/>
diff --git a/java/aparapi/files/patch-com.amd.aparapi.jni_build.xml b/java/aparapi/files/patch-com.amd.aparapi.jni_build.xml
new file mode 100644
index 000000000000..1926d39abaa4
--- /dev/null
+++ b/java/aparapi/files/patch-com.amd.aparapi.jni_build.xml
@@ -0,0 +1,156 @@
+--- com.amd.aparapi.jni/build.xml.orig 2015-09-21 01:20:25 UTC
++++ com.amd.aparapi.jni/build.xml
+@@ -71,6 +71,23 @@ First consider editing the properties in
+ </and>
+ </condition>
+
++ <available property="freebsd.opencl.exists" file="/usr/local/lib/libOpenCL.so" type="file"/>
++ <condition property="amd.app.sdk.dir" value="/usr/local">
++ <and>
++ <os name="FreeBSD" />
++ <isset property="freebsd.opencl.exists" />
++ <not>
++ <isset property="win32.amd.app.sdk.exists" />
++ </not>
++ <not>
++ <isset property="win64.amd.app.sdk.exists" />
++ </not>
++ <not>
++ <isset property="linux.amd.app.sdk.exists" />
++ </not>
++ </and>
++ </condition>
++
+ <echo message="amd.app.sdk.dir ${amd.app.sdk.dir}"/>
+
+ <!-- Check for Visual Studio Compiler -->
+@@ -300,9 +317,16 @@ First consider editing the properties in
+ <not>
+ <os family="mac" />
+ </not>
++ <not>
++ <os name="FreeBSD" />
++ </not>
+ </and>
+ </condition>
+
++ <condition property="use.clang_freebsd">
++ <os name="FreeBSD" />
++ </condition>
++
+ <condition property="use.gcc_mac">
+ <os family="mac" />
+ </condition>
+@@ -352,6 +376,9 @@ First consider editing the properties in
+ <os family="mac" />
+ </not>
+ <not>
++ <os name="FreeBSD" />
++ </not>
++ <not>
+ <isset property="amd.app.sdk.dir" />
+ </not>
+ </and>
+@@ -485,6 +512,45 @@ First consider editing the properties in
+ </exec>
+ </target>
+
++ <target name="clang_freebsd" if="use.clang_freebsd">
++ <mkdir dir="${basedir}/dist"/>
++ <echo message="freebsdcc ${os.arch}" />
++ <exec executable="clang++" failonerror="true">
++ <arg value="-m${gcc.m.value}" />
++ <arg value="-O3" />
++ <arg value="-g" />
++ <arg value="-fPIC" />
++ <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
++ <arg value="-I${java.home}/../include" />
++ <arg value="-I${java.home}/../include/freebsd" />
++ <arg value="-Iinclude" />
++ <arg value="-I/usr/local/include" />
++ <arg value="-Isrc/cpp" />
++ <arg value="-Isrc/cpp/runKernel" />
++ <arg value="-Isrc/cpp/invoke" />
++ <arg value="-shared" />
++ <arg value="-o" />
++ <arg value="${basedir}/dist/libaparapi.so" />
++ <arg value="src/cpp/runKernel/Aparapi.cpp" />
++ <arg value="src/cpp/runKernel/ArrayBuffer.cpp" />
++ <arg value="src/cpp/runKernel/AparapiBuffer.cpp" />
++ <arg value="src/cpp/runKernel/Config.cpp" />
++ <arg value="src/cpp/runKernel/JNIContext.cpp" />
++ <arg value="src/cpp/runKernel/KernelArg.cpp" />
++ <arg value="src/cpp/runKernel/ProfileInfo.cpp" />
++ <arg value="src/cpp/runKernel/Range.cpp" />
++ <arg value="src/cpp/invoke/OpenCLJNI.cpp" />
++ <arg value="src/cpp/invoke/OpenCLArgDescriptor.cpp" />
++ <arg value="src/cpp/invoke/OpenCLMem.cpp" />
++ <arg value="src/cpp/CLHelper.cpp" />
++ <arg value="src/cpp/classtools.cpp" />
++ <arg value="src/cpp/JNIHelper.cpp" />
++ <arg value="src/cpp/agent.cpp" />
++ <arg value="-L/usr/local/lib" />
++ <arg value="-lOpenCL" />
++ </exec>
++ </target>
++
+ <target name="gcc_mac" if="use.gcc_mac">
+ <mkdir dir="${basedir}/dist"/>
+ <echo message="gcc ${os.arch}" />
+@@ -575,7 +641,7 @@ First consider editing the properties in
+ </exec>
+ </target>
+
+- <target name="build" depends="clean, javah, msvc, gcc, gcc_mac" />
++ <target name="build" depends="clean, javah, msvc, gcc, gcc_mac, clang_freebsd" />
+
+ <target name="msvc_cltest" if="use.msvc">
+ <mkdir dir="${basedir}\dist"/>
+@@ -627,6 +693,24 @@ First consider editing the properties in
+ </exec>
+ </target>
+
++ <target name="freebsd_cltest" if="use.clang_freebsd">
++ <mkdir dir="${basedir}/dist"/>
++ <echo message="clang cltest ${os.arch}" />
++ <exec executable="clang++" failonerror="true">
++ <arg value="-O3" />
++ <arg value="-g" />
++ <arg value="-fPIC" />
++ <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
++ <arg value="-I${java.home}/../include" />
++ <arg value="-I${java.home}/../include/freebsd" />
++ <arg value="-I/usr/local/include" />
++ <arg value="src/cpp/cltest.cpp" />
++ <arg value="-L/usr/local/lib -lOpenCL" />
++ <arg value="-o" />
++ <arg value="${basedir}/dist/cltest" />
++ </exec>
++ </target>
++
+ <target name="gcc_cltest" if="use.gcc">
+ <mkdir dir="${basedir}/dist"/>
+ <echo message="gcc cltest ${os.arch}" />
+@@ -674,6 +758,20 @@ First consider editing the properties in
+ </exec>
+ </target>
+
+- <target name="cltest" depends="check,msvc_cltest,mac_cltest,gcc_cltest" />
+- <target name="clt" depends="check,gcc_clt,mac_clt" />
++ <target name="freebsd_clt" if="use.clang_freebsd">
++ <mkdir dir="${basedir}/dist"/>
++ <echo message="clang clt ${os.arch}" />
++ <exec executable="clang++" failonerror="true">
++ <arg value="-O3" />
++ <arg value="-g" />
++ <arg value="-fPIC" />
++ <arg value="src/cpp/classtools.cpp" />
++ <arg value="src/cpp/classtoolstest.cpp" />
++ <arg value="-o" />
++ <arg value="${basedir}/clt" />
++ </exec>
++ </target>
++
++ <target name="cltest" depends="check,msvc_cltest,mac_cltest,freebsd_cltest,gcc_cltest" />
++ <target name="clt" depends="check,gcc_clt,mac_clt,freebsd_clt" />
+ </project>
diff --git a/java/aparapi/files/patch-com.amd.aparapi.jni_src_cpp_Common.h b/java/aparapi/files/patch-com.amd.aparapi.jni_src_cpp_Common.h
new file mode 100644
index 000000000000..a162c7512eb4
--- /dev/null
+++ b/java/aparapi/files/patch-com.amd.aparapi.jni_src_cpp_Common.h
@@ -0,0 +1,11 @@
+--- com.amd.aparapi.jni/src/cpp/Common.h.orig 2015-09-21 01:20:25 UTC
++++ com.amd.aparapi.jni/src/cpp/Common.h
+@@ -44,7 +44,7 @@
+ #include <string.h>
+ #include <time.h>
+
+-#ifndef __APPLE__
++#if not defined __APPLE__ && not defined __FreeBSD__
+ #include <malloc.h>
+ #endif
+
diff --git a/java/aparapi/files/patch-com.amd.aparapi_src_java_com_amd_aparapi_internal_opencl_OpenCLLoader.java b/java/aparapi/files/patch-com.amd.aparapi_src_java_com_amd_aparapi_internal_opencl_OpenCLLoader.java
new file mode 100644
index 000000000000..c33b0985d73e
--- /dev/null
+++ b/java/aparapi/files/patch-com.amd.aparapi_src_java_com_amd_aparapi_internal_opencl_OpenCLLoader.java
@@ -0,0 +1,15 @@
+--- com.amd.aparapi/src/java/com/amd/aparapi/internal/opencl/OpenCLLoader.java.orig 2015-09-21 01:20:26 UTC
++++ com.amd.aparapi/src/java/com/amd/aparapi/internal/opencl/OpenCLLoader.java
+@@ -26,10 +26,8 @@ public class OpenCLLoader extends OpenCL
+ logger.fine("arch = " + arch);
+ String aparapiLibraryName = null;
+
+- if (arch.equals("amd64") || arch.equals("x86_64")) {
+- aparapiLibraryName = "aparapi_x86_64";
+- } else if (arch.equals("x86") || arch.equals("i386")) {
+- aparapiLibraryName = "aparapi_x86";
++ if (arch.equals("amd64") || arch.equals("x86_64") || arch.equals("x86") || arch.equals("i386")) {
++ aparapiLibraryName = "aparapi";
+ } else {
+ logger.warning("Expected property os.arch to contain amd64, x86_64, x86 or i386 but instead found " + arch
+ + " as a result we don't know which aparapi to attempt to load.");
diff --git a/java/aparapi/pkg-descr b/java/aparapi/pkg-descr
new file mode 100644
index 000000000000..61e04346fb2a
--- /dev/null
+++ b/java/aparapi/pkg-descr
@@ -0,0 +1,8 @@
+aparapi is an open source API for expressing data parallel workflows in Java.
+
+Originally an AMD product, Aparapi was released to open source on September
+14, 2011. Aparapi is an API for expressing data parallel workloads in Java
+and a runtime component capable of converting the Java# bytecode of compatible
+workloads into OpenCL# so that it can be executed on a variety of GPU devices.
+
+WWW: https://github.com/aparapi/aparapi
diff --git a/java/aparapi/pkg-plist b/java/aparapi/pkg-plist
new file mode 100644
index 000000000000..a19866d643ce
--- /dev/null
+++ b/java/aparapi/pkg-plist
@@ -0,0 +1,2 @@
+lib/libaparapi.so
+%%JAVAJARDIR%%/aparapi.jar