Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 26 Jun 2016 11:51:09 +0000 (UTC)
From:      Kurt Jaeger <pi@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r417519 - in head/java: . aparapi aparapi/files
Message-ID:  <201606261151.u5QBp90Z046901@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pi
Date: Sun Jun 26 11:51:09 2016
New Revision: 417519
URL: https://svnweb.freebsd.org/changeset/ports/417519

Log:
  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

Added:
  head/java/aparapi/
  head/java/aparapi/Makefile   (contents, props changed)
  head/java/aparapi/distinfo   (contents, props changed)
  head/java/aparapi/files/
  head/java/aparapi/files/patch-build.xml   (contents, props changed)
  head/java/aparapi/files/patch-com.amd.aparapi.jni_build.xml   (contents, props changed)
  head/java/aparapi/files/patch-com.amd.aparapi.jni_src_cpp_Common.h   (contents, props changed)
  head/java/aparapi/files/patch-com.amd.aparapi_src_java_com_amd_aparapi_internal_opencl_OpenCLLoader.java   (contents, props changed)
  head/java/aparapi/pkg-descr   (contents, props changed)
  head/java/aparapi/pkg-plist   (contents, props changed)
Modified:
  head/java/Makefile

Modified: head/java/Makefile
==============================================================================
--- head/java/Makefile	Sun Jun 26 11:12:16 2016	(r417518)
+++ head/java/Makefile	Sun Jun 26 11:51:09 2016	(r417519)
@@ -3,6 +3,7 @@
 
     COMMENT = Java language support
 
+    SUBDIR += aparapi
     SUBDIR += avis
     SUBDIR += berkeley-db
     SUBDIR += bluej

Added: head/java/aparapi/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/java/aparapi/Makefile	Sun Jun 26 11:51:09 2016	(r417519)
@@ -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>

Added: head/java/aparapi/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/java/aparapi/distinfo	Sun Jun 26 11:51:09 2016	(r417519)
@@ -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

Added: head/java/aparapi/files/patch-build.xml
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/java/aparapi/files/patch-build.xml	Sun Jun 26 11:51:09 2016	(r417519)
@@ -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:-"/> 

Added: head/java/aparapi/files/patch-com.amd.aparapi.jni_build.xml
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/java/aparapi/files/patch-com.amd.aparapi.jni_build.xml	Sun Jun 26 11:51:09 2016	(r417519)
@@ -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>

Added: head/java/aparapi/files/patch-com.amd.aparapi.jni_src_cpp_Common.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/java/aparapi/files/patch-com.amd.aparapi.jni_src_cpp_Common.h	Sun Jun 26 11:51:09 2016	(r417519)
@@ -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
+ 

Added: head/java/aparapi/files/patch-com.amd.aparapi_src_java_com_amd_aparapi_internal_opencl_OpenCLLoader.java
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/java/aparapi/files/patch-com.amd.aparapi_src_java_com_amd_aparapi_internal_opencl_OpenCLLoader.java	Sun Jun 26 11:51:09 2016	(r417519)
@@ -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.");

Added: head/java/aparapi/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/java/aparapi/pkg-descr	Sun Jun 26 11:51:09 2016	(r417519)
@@ -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

Added: head/java/aparapi/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/java/aparapi/pkg-plist	Sun Jun 26 11:51:09 2016	(r417519)
@@ -0,0 +1,2 @@
+lib/libaparapi.so
+%%JAVAJARDIR%%/aparapi.jar



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201606261151.u5QBp90Z046901>