diff --git a/.gitignore b/.gitignore
index e776c5db8a94f068b1a4112e5592de784149d446..8e75392557282be32a4b91f5401926c449866c46 100644
--- a/.gitignore
+++ b/.gitignore
@@ -59,3 +59,7 @@ config.status
 libaparapi.la
 
 *.gz
+
+# java files
+*.class
+*~
diff --git a/CHANGELOG b/CHANGELOG
new file mode 100644
index 0000000000000000000000000000000000000000..5424de6f38496d849368db7ba8b950af31c34fc5
--- /dev/null
+++ b/CHANGELOG
@@ -0,0 +1,5 @@
+
+Change log can be found at:
+https://gitlab.com/mora/aparapi-ucores/wikis/ReleaseNotes
+
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5732d8132912e636b945d52f6d907c172a9b1a1f
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,47 @@
+cmake_minimum_required(VERSION 3.6)
+project(aparapi_native)
+
+set(CMAKE_CXX_STANDARD 11)
+
+set(SOURCE_FILES
+    src/cpp/invoke/JavaArgs.h
+    src/cpp/invoke/OpenCLArgDescriptor.cpp
+    src/cpp/invoke/OpenCLArgDescriptor.h
+    src/cpp/invoke/OpenCLJNI.cpp
+    src/cpp/invoke/OpenCLJNI.h
+    src/cpp/invoke/OpenCLKernel.h
+    src/cpp/invoke/OpenCLMem.cpp
+    src/cpp/invoke/OpenCLMem.h
+    src/cpp/invoke/OpenCLProgram.h
+    src/cpp/runKernel/Aparapi.cpp
+    src/cpp/runKernel/Aparapi.h
+    src/cpp/runKernel/AparapiBuffer.cpp
+    src/cpp/runKernel/AparapiBuffer.h
+    src/cpp/runKernel/ArrayBuffer.cpp
+    src/cpp/runKernel/ArrayBuffer.h
+    src/cpp/runKernel/Config.cpp
+    src/cpp/runKernel/Config.h
+    src/cpp/runKernel/JNIContext.cpp
+    src/cpp/runKernel/JNIContext.h
+    src/cpp/runKernel/KernelArg.cpp
+    src/cpp/runKernel/KernelArg.h
+    src/cpp/runKernel/List.h
+    src/cpp/runKernel/ProfileInfo.cpp
+    src/cpp/runKernel/ProfileInfo.h
+    src/cpp/runKernel/Range.cpp
+    src/cpp/runKernel/Range.h
+    src/cpp/agent.cpp
+    src/cpp/classtools.cpp
+    src/cpp/classtools.h
+    src/cpp/classtoolstest.cpp
+    src/cpp/CLException.h
+    src/cpp/CLHelper.cpp
+    src/cpp/CLHelper.h
+    src/cpp/cltest.cpp
+    src/cpp/Common.h
+    src/cpp/JNIHelper.cpp
+    src/cpp/JNIHelper.h)
+
+include_directories(include)
+
+add_executable(aparapi_native ${SOURCE_FILES})
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
index e06d2081865a766a8668acc12878f98b27fc9ea0..f9d925aeb425885a11c72bf517841283afe4fd04 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Apache License
+                               Apache License
                            Version 2.0, January 2004
                         http://www.apache.org/licenses/
 
@@ -199,4 +199,3 @@ Apache License
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-
diff --git a/README.md b/README.md
index d4219e5e8284b9a0030f6feb671ff52f350fb063..cb2b9b5f2c7ccb47136feeb98f6b9569cdce04aa 100644
--- a/README.md
+++ b/README.md
@@ -11,4 +11,4 @@ make
 Shared library in .libs/libaparapi.so
 
 To prepare a 32bit version on a 64bit system simply run configure as:
-./configure --build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
\ No newline at end of file
+./configure --build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
diff --git a/aparapi-jni.iml b/aparapi-jni.iml
new file mode 100644
index 0000000000000000000000000000000000000000..19dbd15d44e4c087eb6a5d2fe8eedbd765f26365
--- /dev/null
+++ b/aparapi-jni.iml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="false">
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/build.xml b/build.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b1731fbaf09e913d0ba25a1126bfb8da4fe4ae28
--- /dev/null
+++ b/build.xml
@@ -0,0 +1,864 @@
+<?xml version="1.0"?>
+
+<!--
+You should not have to edit this file
+First consider editing the properties in build.properties
+-->
+<project name="com.amd.aparapi.jni" default="build" basedir=".">
+
+   <!-- 
+   DO NOT EDIT BELOW THIS LINE 
+   -->
+   <echo>OS Name:    ${os.name}</echo>
+   <echo>OS Version: ${os.version}</echo>
+   <echo>OS Arch:    ${os.arch}</echo>
+
+   <!--<property name="build.compiler" value="javac1.6"/>-->
+   <!--  <property name="ant.build.javac.source" value="1.6"/>-->
+   <!-- <property name="ant.build.javac.target" value="1.6"/> -->
+
+   <property environment="env" />
+   <!-- we need env.PATH for msvc only -->
+
+   <!-- uncomment this if you want to use mingw! -->
+   <!--<property name="mingw.dir" value="c:\\MinGW"/>-->
+
+   <target name="init">
+      <available property="win32.amd.app.sdk.exists" file="C:/Program Files/AMD APP" type="dir"/>
+
+      <condition property="amd.app.sdk.dir" value="C:/Program Files/AMD APP">
+         <and>
+            <os family="windows" />
+            <isset property="win32.amd.app.sdk.exists" />
+            <not>
+               <isset property="amd.app.sdk.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <available property="win64.amd.app.sdk.exists" file="C:/Program Files (x86)/AMD APP" type="dir"/>
+      <condition property="amd.app.sdk.dir" value="C:/Program Files (x86)/AMD APP">
+         <and>
+            <os family="windows" />
+            <isset property="win64.amd.app.sdk.exists" />
+            <not>
+               <isset property="win32.amd.app.sdk.exists" />
+            </not>
+         </and>
+      </condition>
+
+      <available property="linux.amd.app.sdk.exists" file="/opt/AMDAPP" type="dir"/>
+      <condition property="amd.app.sdk.dir" value="/opt/AMDAPP">
+         <and>
+            <os family="unix" />
+            <not>
+               <os family="mac" />
+            </not>
+            <isset property="linux.amd.app.sdk.exists" />
+            <not>
+               <isset property="win32.amd.app.sdk.exists" />
+            </not>
+            <not>
+               <isset property="win64.amd.app.sdk.exists" />
+            </not>
+         </and>
+      </condition>
+
+      <echo message=" amd.app.sdk.dir ${amd.app.sdk.dir}"/>
+
+	  <!-- Check for Visual Studio -->
+	  <!-- This needs to be in descending order to properly handle multiple installations -->
+	  
+      <available property="msvc.32.11.0.exists" file="c:/Program Files (x86)/Microsoft Visual Studio 11.0\VC\bin" type="dir"/>
+      <condition property="msvc.dir" value="c:/Program Files (x86)/Microsoft Visual Studio 11.0">
+         <and>
+            <not>
+               <or>
+                  <os arch="x86" />
+                  <os arch="i386" />
+               </or>
+            </not>
+            <os family="windows" />
+            <isset property="msvc.32.11.0.exists" />
+            <not>
+               <isset property="msvc.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.64.10.0.exists" file="c:/Program Files/Microsoft Visual Studio 10.0\vc\bin" type="dir"/>
+      <condition property="msvc.dir" value="c:/Program Files/Microsoft Visual Studio 10.0">
+         <and>
+            <or>
+               <os arch="x86" />
+               <os arch="i386" />
+            </or>
+            <os family="windows" />
+            <isset property="msvc.64.10.0.exists" />
+            <not>
+               <isset property="msvc.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.32.10.0.exists" file="c:/Program Files (x86)/Microsoft Visual Studio 10.0\vc\bin" type="dir"/>
+      <condition property="msvc.dir" value="c:/Program Files (x86)/Microsoft Visual Studio 10.0">
+         <and>
+            <not>
+               <or>
+                  <os arch="x86" />
+                  <os arch="i386" />
+               </or>
+            </not>
+            <os family="windows" />
+            <isset property="msvc.32.10.0.exists" />
+            <not>
+               <isset property="msvc.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.32.9.0.exists" file="c:/Program Files/Microsoft Visual Studio 9.0\vc\bin" type="dir"/>
+      <condition property="msvc.dir" value="c:/Program Files/Microsoft Visual Studio 9.0">
+         <and>
+            <or>
+               <os arch="x86" />
+               <os arch="i386" />
+            </or>
+            <os family="windows" />
+            <isset property="msvc.32.9.0.exists" />
+            <not>
+               <isset property="msvc.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+	  <!-- Check for SDKs -->
+	  <!-- This needs to be in descending order to properly handle multiple installations -->
+	  
+      <!-- <available property="msvc.sdk.8.0A.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.8.0A.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.sdk.8.0.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.8.0.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition> -->
+      
+      <available property="msvc.sdk.7.1A.exists" file="C:/Program Files/Microsoft SDKs/Windows/v7.1A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v7.1A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.1A.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.sdk.7.1A.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.1A.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.sdk.7.1.exists" file="C:/Program Files/Microsoft SDKs/Windows/v7.1" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v7.1">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.1.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+	  <available property="msvc.sdk.7.1.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.1.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <available property="msvc.sdk.7.0A.exists" file="C:/Program Files/Microsoft SDKs/Windows/v7.0A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v7.0A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.0A.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <available property="msvc.sdk.7.0A.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.0A.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.sdk.7.0.exists" file="C:/Program Files/Microsoft SDKs/Windows/v7.0" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v7.0">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.0.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <available property="msvc.sdk.6.0A.exists" file="C:/Program Files/Microsoft SDKs/Windows/v6.0A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v6.0A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.6.0A.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <echo message=" msvc.dir ${msvc.dir}"/>
+      <echo message=" msvc.sdk.dir ${msvc.sdk.dir}"/>
+   </target>
+
+   <target name="check" depends="init">
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <isset property="msvc.dir" />
+               <not>
+                  <isset property="msvc.sdk.dir" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present msvc.dir seems to be Configured but not msvc.sdk.dir
+         ]]>
+      </fail>
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <not>
+                  <isset property="msvc.dir" />
+               </not>
+               <isset property="msvc.sdk.dir" />
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present msvc.sdk.dir seems to be Configured but not msvc.dir
+         ]]>
+      </fail>
+      <available file="${msvc.dir}" type="dir" property="msvc.dir.exists" />
+      <available file="${msvc.sdk.dir}" type="dir" property="msvc.sdk.dir.exists" />
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <isset property="msvc.dir" />
+               <not>
+                  <isset property="msvc.dir.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present msvc.dir is set (to ${msvc.dir}) but that dir does not exist
+         ]]>
+      </fail>
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <isset property="msvc.sdk.dir" />
+               <not>
+                  <isset property="msvc.sdk.dir.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present msvc.sdk.dir is set (to ${msvc.sdk.dir}) but that dir does not exist
+         ]]>
+      </fail>
+
+
+      <available file="${mingw.dir}" type="dir" property="mingw.dir.exists" />
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <isset property="mingw.dir" />
+               <not>
+                  <isset property="mingw.dir.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present mingw.dir is set (to ${mingw.dir}) but that dir does not exist
+         ]]>
+      </fail>
+      <!--<echo message="java.home ${java.home}"/>-->
+      <!--<echo message="msvc.dir.exists ${msvc.dir.exists}"/>-->
+      <!--<echo message="msvc.sdk.dir.exists ${msvc.sdk.dir.exists}"/>-->
+      <!--<echo message="mingw.dir.exists ${mingw.dir.exists}"/>-->
+      <condition property="use.msvc">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.dir.exists" />
+            <isset property="msvc.sdk.dir.exists" />
+         </and>
+      </condition>
+      <!--<echo message="use.msvc ${use.msvc}"/>-->
+
+      <condition property="use.mingw">
+         <and>
+            <os family="windows" />
+            <isset property="mingw.dir.exists" />
+         </and>
+      </condition>
+      <!--<echo message="use.mingw ${use.mingw}"/>-->
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <isset property="use.mingw" />
+               <isset property="use.msvc" />
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present ant is Configured for both MinGW AND Microsoft Visual Studio. You need to pick one or the other :) !
+
+         Just comment out the properties for the compiler that you *do not* wish to use.
+         ]]>
+      </fail>
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <not>
+                  <or>
+                     <isset property="use.mingw" />
+                     <isset property="use.msvc" />
+                  </or>
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         This looks like a windows machine so you probably need to Configure either:-
+
+         * msvc.dir and msvc.sdk.dir if you wish to use Microsoft Visual Studio compiler
+
+         * mingw.dir if you prefer if you prefer to use MinGW 
+         ]]>
+      </fail>
+
+      <condition property="use.gcc">
+         <and>
+            <os family="unix" />
+            <not>
+               <os family="mac" />
+            </not>
+         </and>
+      </condition>
+
+      <condition property="use.gcc_mac">
+         <os family="mac" />
+      </condition>
+
+      <condition property="x86_or_x86_64" value="x86" else="x86_64">
+         <or>
+            <os arch="x86" />
+            <os arch="i386" />
+         </or>
+      </condition>
+
+      <condition property="optional.amd64.subdir" value="" else="amd64\">
+         <or>
+            <os arch="x86" />
+            <os arch="i386" />
+         </or>
+      </condition>
+
+      <condition property="optional.x64.subdir" value="" else="x64\">
+         <or>
+            <os arch="x86" />
+            <os arch="i386" />
+         </or>
+      </condition>
+
+
+      <available file="${msvc.dir}\vc\bin\${optional.amd64.subdir}cl.exe" type="file" property="cl.exists" />
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <isset property="use.msvc" />
+               <not>
+                  <isset property="cl.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         Could not find vc\bin\${optional.amd64.subdir}cl under Configured msvc.dir. Check if msvc.dir is pointing
+         to a valid visual studio installation
+         ]]>
+      </fail>
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <not>
+                  <os family="mac" />
+               </not>
+               <not>
+                  <isset property="amd.app.sdk.dir" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         You need to set amd.app.sdk.dir to point to the location where AMD APP SDK is installed
+         ]]>
+      </fail>
+      <available file="${amd.app.sdk.dir}" type="dir" property="amd.app.sdk.dir.exists" />
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <not>
+                  <os family="mac" />
+               </not>
+               <not>
+                  <isset property="amd.app.sdk.dir.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present amd.app.sdk.dir is set (to ${amd.app.sdk.dir}) but that dir does not exist
+         ]]>
+      </fail>
+   </target>
+
+   <target name="clean" depends="check">
+      <delete dir="include" />
+      <delete dir="${basedir}/dist" />
+      <!-- Legacy cleanup -->
+      <delete file="libaparapi_${x86_or_x86_64}.dylib" />
+      <delete file="libaparapi_${x86_or_x86_64}.so" />
+      <delete file="aparapi_${x86_or_x86_64}.dll" />
+      <delete file="aparapi.dll" />
+      <delete file="aparapi.obj" />
+      <delete file="aparapi.o" />
+      <delete file="aparapi.lib" />
+      <delete file="aparapi.exp" />
+      <delete file="OpenCLJNI.obj" />
+      <delete file="OpenCLJNI.o" />
+      <delete file="Config.obj" />
+      <delete file="Config.o" />
+      <delete file="ProfileInfo.obj" />
+      <delete file="ProfileInfo.o" />
+      <delete file="ArrayBuffer.obj" />
+      <delete file="ArrayBuffer.o" />
+      <delete file="AparapiBuffer.obj" />
+      <delete file="AparapiBuffer.o" />
+      <delete file="JNIHelper.obj" />
+      <delete file="JNIHelper.o" />
+      <delete file="CLHelper.obj" />
+      <delete file="CLHelper.o" />
+      <delete file="JNIContext.obj" />
+      <delete file="JNIContext.o" />
+      <delete file="KernelArg.obj" />
+      <delete file="KernelArg.o" />
+      <delete file="Range.obj" />
+      <delete file="Range.o" />
+      <delete file="OpenCLArgDescriptor.obj" />
+      <delete file="OpenCLArgDescriptor.o" />
+      <delete file="agent.obj" />
+      <delete file="agent.o" />
+      <delete file="classtools.obj" />
+      <delete file="classtools.o" />
+      <delete file="OpenCLMem.obj" />
+      <delete file="OpenCLMem.o" />
+   </target>
+
+   <target name="javah">
+      <mkdir dir="include" />
+      <javah classpath="..\com.amd.aparapi\classes" destdir="include" force="true">
+         <class name="com.amd.aparapi.internal.jni.ConfigJNI" />
+         <class name="com.amd.aparapi.internal.jni.KernelArgJNI" />
+         <class name="com.amd.aparapi.internal.jni.KernelRunnerJNI" />
+         <class name="com.amd.aparapi.internal.jni.OpenCLJNI" />
+         <class name="com.amd.aparapi.internal.jni.RangeJNI" />
+         <!-- Non-Native Classes -->
+         <class name="com.amd.aparapi.Kernel"/>
+         <class name="com.amd.aparapi.Range"/>
+         <class name="com.amd.aparapi.Config" />
+         <class name="com.amd.aparapi.device.Device" />
+         <class name="com.amd.aparapi.device.OpenCLDevice" />
+         <class name="com.amd.aparapi.internal.kernel.KernelRunner"/>
+         <class name="com.amd.aparapi.internal.opencl.OpenCLArgDescriptor" />
+         <class name="com.amd.aparapi.internal.opencl.OpenCLMem" />
+      </javah>
+   </target>
+
+
+   <target name="gcc" if="use.gcc">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="linuxcc ${os.arch}" />
+      <exec executable="g++">
+        <!-- !!! oren change -> add debug info, no optimizations 
+         <arg value="-O3" />
+        -->
+      	<!-- !!! oren change -> add support for ISO C++ 2011 (C++0x) requires GCC 4.3 and later -->      	
+      	<arg value="-std=c++0x" />
+         <arg value="-O0" />
+         <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/linux" />
+         <arg value="-Iinclude" />
+         <arg value="-I${amd.app.sdk.dir}/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_${x86_or_x86_64}.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" />
+      	<!-- !!! oren change -> platform config settings -->
+         <arg value="src/cpp/runKernel/ConfigSettings.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${amd.app.sdk.dir}/lib/${x86_or_x86_64}" />
+         <arg value="-lOpenCL" />
+      </exec>
+   </target>
+
+   <target name="gcc_mac" if="use.gcc_mac">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc ${os.arch}" />
+      <exec executable="g++">
+         <arg value="-O3" />
+         <arg value="-g" />
+         <arg value="-fPIC" />
+         <!-- <arg value="-fopenmp"/> -->
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="-I/System/Library/Frameworks/JavaVM.framework/Headers" />
+         <arg value="-Iinclude" />
+         <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_${x86_or_x86_64}.dylib" />
+         <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="-framework" />
+         <arg value="OpenCL" />
+         <arg value="-Wno-write-strings" />
+      </exec>
+   </target>
+
+   <target name="msvc" if="use.msvc">
+      <mkdir dir="${basedir}\dist"/>
+      <echo message="msvc ${os.arch}" />
+      <exec executable="${msvc.dir}\vc\bin\${optional.amd64.subdir}cl.exe">
+         <env key="PATH" path="${env.PATH};${msvc.dir}\\Common7\\IDE" />
+         <arg value="/nologo" />
+         <arg value="/TP" />
+         <arg value="/Ox" />
+         <!-- <arg value="/openmp" /> -->
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="/EHsc" />
+         <arg value="/I${msvc.dir}\vc\include" />
+         <arg value="/I${msvc.sdk.dir}\include" />
+         <arg value="/I${java.home}\..\include" />
+         <arg value="/I${java.home}\..\include\win32" />
+         <arg value="/Iinclude" />
+         <arg value="/I${amd.app.sdk.dir}\include" />
+         <arg value="/Isrc/cpp" />
+         <arg value="/Isrc/cpp/runKernel" />
+         <arg value="/Isrc/cpp/invoke" />
+         <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="/LD" />
+         <arg value="/link" />
+         <arg value="/libpath:${msvc.dir}\vc\lib\${optional.amd64.subdir}" />
+         <arg value="/libpath:${msvc.sdk.dir}\lib\${optional.x64.subdir}" />
+         <arg value="/libpath:${amd.app.sdk.dir}\lib\${x86_or_x86_64}" />
+         <arg value="OpenCL.lib" />
+         <arg value="/out:${basedir}\dist\aparapi_${x86_or_x86_64}.dll" />
+      </exec>
+   </target>
+
+   <target name="mingw" if="use.mingw">
+      <mkdir dir="${basedir}\dist"/>
+      <echo message="mingw ${os.arch}" /> 
+      <exec executable="${mingw.dir}/bin/g++">
+         <env key="PATH" path="${env.PATH};${mingw.dir}/bin" />
+         <arg value="-Wall" />
+         <arg value="-O3" />
+         <arg value="-Wl,--kill-at" />
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="-I${java.home}\..\include" />
+         <arg value="-I${java.home}\..\include\win32" />
+         <arg value="-Iinclude" />
+         <arg value="-I${amd.app.sdk.dir}\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\aparapi_${x86_or_x86_64}.dll" />
+         <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${amd.app.sdk.dir}\lib\${x86_or_x86_64}" />
+         <arg value="-lOpenCL" />
+      </exec>
+   </target>
+
+   <target name="build" depends="clean, javah, msvc, mingw, gcc, gcc_mac" />
+
+   <target name="msvc_cltest" if="use.msvc">
+      <mkdir dir="${basedir}\dist"/>
+      <echo message="msvc_cltest ${os.arch}" />
+      <exec executable="${msvc.dir}\vc\bin\${optional.amd64.subdir}cl.exe">
+         <env key="PATH" path="${env.PATH};${msvc.dir}\\Common7\\IDE" />
+         <arg value="/nologo" />
+         <arg value="/TP" />
+         <arg value="/Ox" />
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="/I${msvc.dir}\vc\include" />
+         <arg value="/I${msvc.sdk.dir}\include" />
+         <arg value="/I${amd.app.sdk.dir}\include" />
+         <arg value="/Isrc/cpp" />
+         <arg value="/Isrc/cpp/runKernel" />
+         <arg value="/Isrc/cpp/invoke" />
+         <arg value="src\cpp\CLTest.cpp" />
+         <arg value="/link" />
+         <arg value="/libpath:${msvc.dir}\vc\lib\${optional.amd64.subdir}" />
+         <arg value="/libpath:${msvc.sdk.dir}\lib\${optional.x64.subdir}" />
+         <arg value="/libpath:${amd.app.sdk.dir}\lib\${x86_or_x86_64}" />
+         <arg value="OpenCL.lib" />
+         <arg value="/out:${basedir}/dist/cltest_${x86_or_x86_64}.exe" />
+      </exec>
+   </target>
+
+   <target name="mac_cltest" if="use.gcc_mac">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc cltest ${os.arch}" />
+      <exec executable="g++">
+         <arg value="-O3" />
+         <arg value="-g" />
+         <arg value="-fPIC" />
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="-I/System/Library/Frameworks/JavaVM.framework/Headers" />
+         <arg value="-Iinclude" />
+         <arg value="-Isrc/cpp" />
+         <arg value="-Isrc/cpp/runKernel" />
+         <arg value="-Isrc/cpp/invoke" />
+         <arg value="-o" />
+         <arg value="${basedir}/dist/cltest" />
+         <arg value="src/cpp/CLTest.cpp" />
+         <arg value="-framework" />
+         <arg value="OpenCL" />
+      </exec>
+   </target>
+
+   <target name="gcc_cltest" if="use.gcc">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc cltest ${os.arch}" />
+      <exec executable="g++">
+         <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/linux" />
+         <arg value="-I${amd.app.sdk.dir}/include" />
+         <arg value="src/cpp/cltest.cpp" />
+         <arg value="-L${amd.app.sdk.dir}/lib/${x86_or_x86_64}" />
+         <arg value="-lOpenCL" />
+         <arg value="-o" />
+         <arg value="${basedir}/cltest_${x86_or_x86_64}" />
+      </exec>
+  </target>
+
+   <target name="gcc_clt" if="use.gcc">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc cltest ${os.arch}" />
+      <exec executable="g++">
+         <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="mac_clt" if="use.gcc_mac">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc clt ${os.arch}" />
+      <exec executable="g++">
+         <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,gcc_cltest" />
+   <target name="clt" depends="check,gcc_clt,mac_clt" />
+</project>
diff --git a/buildAndCopy.sh b/buildAndCopy.sh
new file mode 100644
index 0000000000000000000000000000000000000000..0164a61b78791d25199758857224dc3448fb5cdb
--- /dev/null
+++ b/buildAndCopy.sh
@@ -0,0 +1,6 @@
+
+# $1 = ant build file name
+# $2 = copy to folder name
+# mkdir $2
+ant -f $1
+cp dist/libaparapi_x86_64.so dist.$2
diff --git a/build_altera_ocl_v14.xml b/build_altera_ocl_v14.xml
new file mode 100644
index 0000000000000000000000000000000000000000..881ab72b250a74b4e516d802323613d4b281ea89
--- /dev/null
+++ b/build_altera_ocl_v14.xml
@@ -0,0 +1,903 @@
+<?xml version="1.0"?>
+
+<!--
+You should not have to edit this file
+First consider editing the properties in build.properties
+-->
+<project name="com.amd.aparapi.jni" default="build" basedir=".">
+
+   <property file="build.properties"/>
+	
+   <!-- 
+   DO NOT EDIT BELOW THIS LINE 
+   -->
+   <echo>OS Name:    ${os.name}</echo>
+   <echo>OS Version: ${os.version}</echo>
+   <echo>OS Arch:    ${os.arch}</echo>
+
+   <!--<property name="build.compiler" value="javac1.6"/>-->
+   <!--  <property name="ant.build.javac.source" value="1.6"/>-->
+   <!-- <property name="ant.build.javac.target" value="1.6"/> -->
+
+   <property environment="env" />
+   <!-- we need env.PATH for msvc only -->
+
+   <!-- uncomment this if you want to use mingw! -->
+   <!--<property name="mingw.dir" value="c:\\MinGW"/>-->
+
+   <target name="init">
+      <available property="win32.amd.app.sdk.exists" file="C:/Program Files/AMD APP" type="dir"/>
+
+      <condition property="amd.app.sdk.dir" value="C:/Program Files/AMD APP">
+         <and>
+            <os family="windows" />
+            <isset property="win32.amd.app.sdk.exists" />
+            <not>
+               <isset property="amd.app.sdk.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <available property="win64.amd.app.sdk.exists" file="C:/Program Files (x86)/AMD APP" type="dir"/>
+      <condition property="amd.app.sdk.dir" value="C:/Program Files (x86)/AMD APP">
+         <and>
+            <os family="windows" />
+            <isset property="win64.amd.app.sdk.exists" />
+            <not>
+               <isset property="win32.amd.app.sdk.exists" />
+            </not>
+         </and>
+      </condition>
+
+      <!-- !!! oren change -> detect Altera OpenCL SDK -->
+      <available property="linux.amd.app.sdk.exists" file="${env.ALTERAOCLSDKROOT}" type="dir"/>
+      <condition property="amd.app.sdk.dir" value="${env.ALTERAOCLSDKROOT}">
+         <and>
+            <os family="unix" />
+            <not>
+               <os family="mac" />
+            </not>
+            <isset property="linux.amd.app.sdk.exists" />
+            <not>
+               <isset property="win32.amd.app.sdk.exists" />
+            </not>
+            <not>
+               <isset property="win64.amd.app.sdk.exists" />
+            </not>
+         </and>
+      </condition>
+
+      <echo message=" amd.app.sdk.dir ${amd.app.sdk.dir}"/>
+   	
+   	  <!-- !!! wagnerse add -> automatically get the gcc compile arguments for the Altera OpenCL -->
+   	  <exec executable="aocl" outputproperty="altera.opencl.sdk.compileconfig" failonerror="true">
+   	  	<arg line="compile-config"/>
+   	  </exec>
+   	
+   	  <echo message=" AOCL Compile configuration: ${altera.opencl.sdk.compileconfig}"/>
+
+ 	  <!-- !!! wagnerse add -> automatically get the gcc link arguments for the Altera OpenCL -->
+ 	  <exec executable="aocl" outputproperty="altera.opencl.sdk.linkconfig" failonerror="true">
+ 	  	<arg line="link-config"/>
+ 	  </exec>
+   	
+ 	  <echo message=" AOCL Link configuration: ${altera.opencl.sdk.linkconfig}"/>
+
+      <!-- !!! 11.11.14 oren change -> detect Altera OpenCL SDK Board Package root -->
+      <available property="linux.amd.app.bsp.exists" file="${env.AOCL_BOARD_PACKAGE_ROOT}" type="dir"/>
+      <condition property="amd.app.bsp.dir" value="${env.AOCL_BOARD_PACKAGE_ROOT}">
+         <and>
+            <os family="unix" />
+            <not>
+               <os family="mac" />
+            </not>
+            <isset property="linux.amd.app.bsp.exists" />
+            <not>
+               <isset property="win32.amd.app.sdk.exists" />
+            </not>
+            <not>
+               <isset property="win64.amd.app.sdk.exists" />
+            </not>
+         </and>
+      </condition>
+
+      <echo message=" amd.app.bsp.dir ${amd.app.bsp.dir}"/>
+
+	  <!-- Check for Visual Studio -->
+	  <!-- This needs to be in descending order to properly handle multiple installations -->
+	  
+      <available property="msvc.32.11.0.exists" file="c:/Program Files (x86)/Microsoft Visual Studio 11.0\VC\bin" type="dir"/>
+      <condition property="msvc.dir" value="c:/Program Files (x86)/Microsoft Visual Studio 11.0">
+         <and>
+            <not>
+               <or>
+                  <os arch="x86" />
+                  <os arch="i386" />
+               </or>
+            </not>
+            <os family="windows" />
+            <isset property="msvc.32.11.0.exists" />
+            <not>
+               <isset property="msvc.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.64.10.0.exists" file="c:/Program Files/Microsoft Visual Studio 10.0\vc\bin" type="dir"/>
+      <condition property="msvc.dir" value="c:/Program Files/Microsoft Visual Studio 10.0">
+         <and>
+            <or>
+               <os arch="x86" />
+               <os arch="i386" />
+            </or>
+            <os family="windows" />
+            <isset property="msvc.64.10.0.exists" />
+            <not>
+               <isset property="msvc.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.32.10.0.exists" file="c:/Program Files (x86)/Microsoft Visual Studio 10.0\vc\bin" type="dir"/>
+      <condition property="msvc.dir" value="c:/Program Files (x86)/Microsoft Visual Studio 10.0">
+         <and>
+            <not>
+               <or>
+                  <os arch="x86" />
+                  <os arch="i386" />
+               </or>
+            </not>
+            <os family="windows" />
+            <isset property="msvc.32.10.0.exists" />
+            <not>
+               <isset property="msvc.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.32.9.0.exists" file="c:/Program Files/Microsoft Visual Studio 9.0\vc\bin" type="dir"/>
+      <condition property="msvc.dir" value="c:/Program Files/Microsoft Visual Studio 9.0">
+         <and>
+            <or>
+               <os arch="x86" />
+               <os arch="i386" />
+            </or>
+            <os family="windows" />
+            <isset property="msvc.32.9.0.exists" />
+            <not>
+               <isset property="msvc.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+	  <!-- Check for SDKs -->
+	  <!-- This needs to be in descending order to properly handle multiple installations -->
+	  
+      <!-- <available property="msvc.sdk.8.0A.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.8.0A.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.sdk.8.0.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.8.0.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition> -->
+      
+      <available property="msvc.sdk.7.1A.exists" file="C:/Program Files/Microsoft SDKs/Windows/v7.1A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v7.1A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.1A.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.sdk.7.1A.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.1A.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.sdk.7.1.exists" file="C:/Program Files/Microsoft SDKs/Windows/v7.1" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v7.1">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.1.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+	  <available property="msvc.sdk.7.1.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.1.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <available property="msvc.sdk.7.0A.exists" file="C:/Program Files/Microsoft SDKs/Windows/v7.0A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v7.0A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.0A.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <available property="msvc.sdk.7.0A.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.0A.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.sdk.7.0.exists" file="C:/Program Files/Microsoft SDKs/Windows/v7.0" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v7.0">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.0.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <available property="msvc.sdk.6.0A.exists" file="C:/Program Files/Microsoft SDKs/Windows/v6.0A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v6.0A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.6.0A.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <echo message=" msvc.dir ${msvc.dir}"/>
+      <echo message=" msvc.sdk.dir ${msvc.sdk.dir}"/>
+   </target>
+
+   <target name="check" depends="init">
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <isset property="msvc.dir" />
+               <not>
+                  <isset property="msvc.sdk.dir" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present msvc.dir seems to be Configured but not msvc.sdk.dir
+         ]]>
+      </fail>
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <not>
+                  <isset property="msvc.dir" />
+               </not>
+               <isset property="msvc.sdk.dir" />
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present msvc.sdk.dir seems to be Configured but not msvc.dir
+         ]]>
+      </fail>
+      <available file="${msvc.dir}" type="dir" property="msvc.dir.exists" />
+      <available file="${msvc.sdk.dir}" type="dir" property="msvc.sdk.dir.exists" />
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <isset property="msvc.dir" />
+               <not>
+                  <isset property="msvc.dir.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present msvc.dir is set (to ${msvc.dir}) but that dir does not exist
+         ]]>
+      </fail>
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <isset property="msvc.sdk.dir" />
+               <not>
+                  <isset property="msvc.sdk.dir.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present msvc.sdk.dir is set (to ${msvc.sdk.dir}) but that dir does not exist
+         ]]>
+      </fail>
+
+
+      <available file="${mingw.dir}" type="dir" property="mingw.dir.exists" />
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <isset property="mingw.dir" />
+               <not>
+                  <isset property="mingw.dir.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present mingw.dir is set (to ${mingw.dir}) but that dir does not exist
+         ]]>
+      </fail>
+      <!--<echo message="java.home ${java.home}"/>-->
+      <!--<echo message="msvc.dir.exists ${msvc.dir.exists}"/>-->
+      <!--<echo message="msvc.sdk.dir.exists ${msvc.sdk.dir.exists}"/>-->
+      <!--<echo message="mingw.dir.exists ${mingw.dir.exists}"/>-->
+      <condition property="use.msvc">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.dir.exists" />
+            <isset property="msvc.sdk.dir.exists" />
+         </and>
+      </condition>
+      <!--<echo message="use.msvc ${use.msvc}"/>-->
+
+      <condition property="use.mingw">
+         <and>
+            <os family="windows" />
+            <isset property="mingw.dir.exists" />
+         </and>
+      </condition>
+      <!--<echo message="use.mingw ${use.mingw}"/>-->
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <isset property="use.mingw" />
+               <isset property="use.msvc" />
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present ant is Configured for both MinGW AND Microsoft Visual Studio. You need to pick one or the other :) !
+
+         Just comment out the properties for the compiler that you *do not* wish to use.
+         ]]>
+      </fail>
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <not>
+                  <or>
+                     <isset property="use.mingw" />
+                     <isset property="use.msvc" />
+                  </or>
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         This looks like a windows machine so you probably need to Configure either:-
+
+         * msvc.dir and msvc.sdk.dir if you wish to use Microsoft Visual Studio compiler
+
+         * mingw.dir if you prefer if you prefer to use MinGW 
+         ]]>
+      </fail>
+
+      <condition property="use.gcc">
+         <and>
+            <os family="unix" />
+            <not>
+               <os family="mac" />
+            </not>
+         </and>
+      </condition>
+
+      <condition property="use.gcc_mac">
+         <os family="mac" />
+      </condition>
+
+      <condition property="x86_or_x86_64" value="x86" else="x86_64">
+         <or>
+            <os arch="x86" />
+            <os arch="i386" />
+         </or>
+      </condition>
+
+      <condition property="optional.amd64.subdir" value="" else="amd64\">
+         <or>
+            <os arch="x86" />
+            <os arch="i386" />
+         </or>
+      </condition>
+
+      <condition property="optional.x64.subdir" value="" else="x64\">
+         <or>
+            <os arch="x86" />
+            <os arch="i386" />
+         </or>
+      </condition>
+
+
+      <available file="${msvc.dir}\vc\bin\${optional.amd64.subdir}cl.exe" type="file" property="cl.exists" />
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <isset property="use.msvc" />
+               <not>
+                  <isset property="cl.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         Could not find vc\bin\${optional.amd64.subdir}cl under Configured msvc.dir. Check if msvc.dir is pointing
+         to a valid visual studio installation
+         ]]>
+      </fail>
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <not>
+                  <os family="mac" />
+               </not>
+               <not>
+                  <isset property="amd.app.sdk.dir" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         You need to set amd.app.sdk.dir to point to the location where AMD APP SDK is installed
+         ]]>
+      </fail>
+      <available file="${amd.app.sdk.dir}" type="dir" property="amd.app.sdk.dir.exists" />
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <not>
+                  <os family="mac" />
+               </not>
+               <not>
+                  <isset property="amd.app.sdk.dir.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present amd.app.sdk.dir is set (to ${amd.app.sdk.dir}) but that dir does not exist
+         ]]>
+      </fail>
+   </target>
+
+   <target name="clean" depends="check">
+      <delete dir="include" />
+      <delete dir="${basedir}/dist" />
+      <!-- Legacy cleanup -->
+      <delete file="libaparapi_${x86_or_x86_64}.dylib" />
+      <delete file="libaparapi_${x86_or_x86_64}.so" />
+      <delete file="aparapi_${x86_or_x86_64}.dll" />
+      <delete file="aparapi.dll" />
+      <delete file="aparapi.obj" />
+      <delete file="aparapi.o" />
+      <delete file="aparapi.lib" />
+      <delete file="aparapi.exp" />
+      <delete file="OpenCLJNI.obj" />
+      <delete file="OpenCLJNI.o" />
+      <delete file="Config.obj" />
+      <delete file="Config.o" />
+      <delete file="ProfileInfo.obj" />
+      <delete file="ProfileInfo.o" />
+      <delete file="ArrayBuffer.obj" />
+      <delete file="ArrayBuffer.o" />
+      <delete file="AparapiBuffer.obj" />
+      <delete file="AparapiBuffer.o" />
+      <delete file="JNIHelper.obj" />
+      <delete file="JNIHelper.o" />
+      <delete file="CLHelper.obj" />
+      <delete file="CLHelper.o" />
+      <delete file="JNIContext.obj" />
+      <delete file="JNIContext.o" />
+      <delete file="KernelArg.obj" />
+      <delete file="KernelArg.o" />
+      <delete file="Range.obj" />
+      <delete file="Range.o" />
+      <delete file="OpenCLArgDescriptor.obj" />
+      <delete file="OpenCLArgDescriptor.o" />
+      <delete file="agent.obj" />
+      <delete file="agent.o" />
+      <delete file="classtools.obj" />
+      <delete file="classtools.o" />
+      <delete file="OpenCLMem.obj" />
+      <delete file="OpenCLMem.o" />
+   </target>
+
+   <target name="javah">
+      <mkdir dir="include" />
+      <javah classpath="..\com.amd.aparapi\classes" destdir="include" force="true">
+         <class name="com.amd.aparapi.internal.jni.ConfigJNI" />
+         <class name="com.amd.aparapi.internal.jni.KernelArgJNI" />
+         <class name="com.amd.aparapi.internal.jni.KernelRunnerJNI" />
+         <class name="com.amd.aparapi.internal.jni.OpenCLJNI" />
+         <class name="com.amd.aparapi.internal.jni.RangeJNI" />
+         <!-- Non-Native Classes -->
+         <class name="com.amd.aparapi.Kernel"/>
+         <class name="com.amd.aparapi.Range"/>
+         <class name="com.amd.aparapi.Config" />
+         <class name="com.amd.aparapi.device.Device" />
+         <class name="com.amd.aparapi.device.OpenCLDevice" />
+         <class name="com.amd.aparapi.internal.kernel.KernelRunner"/>
+         <class name="com.amd.aparapi.internal.opencl.OpenCLArgDescriptor" />
+         <class name="com.amd.aparapi.internal.opencl.OpenCLMem" />
+      </javah>
+   </target>
+
+
+   <target name="gcc" if="use.gcc">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="linuxcc ${os.arch}" />
+      <exec executable="g++">
+        <!-- !!! oren change -> add debug info, no optimizations 
+         <arg value="-O3" />
+         <arg value="-O0" />
+        -->
+         <arg value="-O3" />
+         <arg value="-g" />
+         <arg value="-fPIC" />
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="-DALTERA_OPENCL"/>
+         <arg value="-I${java.home}/../include" />
+         <arg value="-I${java.home}/../include/linux" />
+         <arg value="-Iinclude" />
+         <arg value="-I${amd.app.sdk.dir}/host/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_${x86_or_x86_64}.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" />
+      	 <!-- !!! wagnerse -> Use compile and link configuration from aocl -->
+      	 <arg line="${altera.opencl.sdk.compileconfig}"/>
+      	 <!-- !!! oren -> no ICD in version 14, should not link to standard opencl lib -->
+         <!-- !!! <arg value="-lOpenCL"/> -->
+      	 <arg line="${altera.opencl.sdk.linkconfig}"/> 
+      	 <arg line="-Wl,--export-dynamic"/>
+      </exec>
+   </target>
+
+   <target name="gcc_mac" if="use.gcc_mac">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc ${os.arch}" />
+      <exec executable="g++">
+         <arg value="-O3" />
+         <arg value="-g" />
+         <arg value="-fPIC" />
+         <!-- <arg value="-fopenmp"/> -->
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="-I/System/Library/Frameworks/JavaVM.framework/Headers" />
+         <arg value="-Iinclude" />
+         <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_${x86_or_x86_64}.dylib" />
+         <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="-framework" />
+         <arg value="OpenCL" />
+         <arg value="-Wno-write-strings" />
+      </exec>
+   </target>
+
+   <target name="msvc" if="use.msvc">
+      <mkdir dir="${basedir}\dist"/>
+      <echo message="msvc ${os.arch}" />
+      <exec executable="${msvc.dir}\vc\bin\${optional.amd64.subdir}cl.exe">
+         <env key="PATH" path="${env.PATH};${msvc.dir}\\Common7\\IDE" />
+         <arg value="/nologo" />
+         <arg value="/TP" />
+         <arg value="/Ox" />
+         <!-- <arg value="/openmp" /> -->
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="/EHsc" />
+         <arg value="/I${msvc.dir}\vc\include" />
+         <arg value="/I${msvc.sdk.dir}\include" />
+         <arg value="/I${java.home}\..\include" />
+         <arg value="/I${java.home}\..\include\win32" />
+         <arg value="/Iinclude" />
+         <arg value="/I${amd.app.sdk.dir}\include" />
+         <arg value="/Isrc/cpp" />
+         <arg value="/Isrc/cpp/runKernel" />
+         <arg value="/Isrc/cpp/invoke" />
+         <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="/LD" />
+         <arg value="/link" />
+         <arg value="/libpath:${msvc.dir}\vc\lib\${optional.amd64.subdir}" />
+         <arg value="/libpath:${msvc.sdk.dir}\lib\${optional.x64.subdir}" />
+         <arg value="/libpath:${amd.app.sdk.dir}\lib\${x86_or_x86_64}" />
+         <arg value="OpenCL.lib" />
+         <arg value="/out:${basedir}\dist\aparapi_${x86_or_x86_64}.dll" />
+      </exec>
+   </target>
+
+   <target name="mingw" if="use.mingw">
+      <mkdir dir="${basedir}\dist"/>
+      <echo message="mingw ${os.arch}" /> 
+      <exec executable="${mingw.dir}/bin/g++">
+         <env key="PATH" path="${env.PATH};${mingw.dir}/bin" />
+         <arg value="-Wall" />
+         <arg value="-O3" />
+         <arg value="-Wl,--kill-at" />
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="-I${java.home}\..\include" />
+         <arg value="-I${java.home}\..\include\win32" />
+         <arg value="-Iinclude" />
+         <arg value="-I${amd.app.sdk.dir}\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\aparapi_${x86_or_x86_64}.dll" />
+         <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${amd.app.sdk.dir}\lib\${x86_or_x86_64}" />
+         <arg value="-lOpenCL" />
+      </exec>
+   </target>
+
+   <target name="build" depends="clean, javah, msvc, mingw, gcc, gcc_mac" />
+
+   <target name="msvc_cltest" if="use.msvc">
+      <mkdir dir="${basedir}\dist"/>
+      <echo message="msvc_cltest ${os.arch}" />
+      <exec executable="${msvc.dir}\vc\bin\${optional.amd64.subdir}cl.exe">
+         <env key="PATH" path="${env.PATH};${msvc.dir}\\Common7\\IDE" />
+         <arg value="/nologo" />
+         <arg value="/TP" />
+         <arg value="/Ox" />
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="/I${msvc.dir}\vc\include" />
+         <arg value="/I${msvc.sdk.dir}\include" />
+         <arg value="/I${amd.app.sdk.dir}\include" />
+         <arg value="/Isrc/cpp" />
+         <arg value="/Isrc/cpp/runKernel" />
+         <arg value="/Isrc/cpp/invoke" />
+         <arg value="src\cpp\CLTest.cpp" />
+         <arg value="/link" />
+         <arg value="/libpath:${msvc.dir}\vc\lib\${optional.amd64.subdir}" />
+         <arg value="/libpath:${msvc.sdk.dir}\lib\${optional.x64.subdir}" />
+         <arg value="/libpath:${amd.app.sdk.dir}\lib\${x86_or_x86_64}" />
+         <arg value="OpenCL.lib" />
+         <arg value="/out:${basedir}/dist/cltest_${x86_or_x86_64}.exe" />
+      </exec>
+   </target>
+
+   <target name="mac_cltest" if="use.gcc_mac">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc cltest ${os.arch}" />
+      <exec executable="g++">
+         <arg value="-O3" />
+         <arg value="-g" />
+         <arg value="-fPIC" />
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="-I/System/Library/Frameworks/JavaVM.framework/Headers" />
+         <arg value="-Iinclude" />
+         <arg value="-Isrc/cpp" />
+         <arg value="-Isrc/cpp/runKernel" />
+         <arg value="-Isrc/cpp/invoke" />
+         <arg value="-o" />
+         <arg value="${basedir}/dist/cltest" />
+         <arg value="src/cpp/CLTest.cpp" />
+         <arg value="-framework" />
+         <arg value="OpenCL" />
+      </exec>
+   </target>
+
+   <target name="gcc_cltest" if="use.gcc">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc cltest ${os.arch}" />
+      <exec executable="g++">
+         <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/linux" />
+         <arg value="-I${amd.app.sdk.dir}/include" />
+         <arg value="src/cpp/cltest.cpp" />
+         <arg value="-L${amd.app.sdk.dir}/lib/${x86_or_x86_64}" />
+         <arg value="-lOpenCL" />
+         <arg value="-o" />
+         <arg value="${basedir}/cltest_${x86_or_x86_64}" />
+      </exec>
+  </target>
+
+   <target name="gcc_clt" if="use.gcc">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc cltest ${os.arch}" />
+      <exec executable="g++">
+         <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="mac_clt" if="use.gcc_mac">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc clt ${os.arch}" />
+      <exec executable="g++">
+         <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,gcc_cltest" />
+   <target name="clt" depends="check,gcc_clt,mac_clt" />
+</project>
diff --git a/build_altera_ocl_v15.xml b/build_altera_ocl_v15.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2f96bf452d8daf5662f3066d57ce885ecbb32233
--- /dev/null
+++ b/build_altera_ocl_v15.xml
@@ -0,0 +1,906 @@
+<?xml version="1.0"?>
+
+<!--
+You should not have to edit this file
+First consider editing the properties in build.properties
+-->
+<project name="com.amd.aparapi.jni" default="build" basedir=".">
+
+   <property file="build.properties"/>
+	
+   <!-- 
+   DO NOT EDIT BELOW THIS LINE 
+   -->
+   <echo>OS Name:    ${os.name}</echo>
+   <echo>OS Version: ${os.version}</echo>
+   <echo>OS Arch:    ${os.arch}</echo>
+
+   <!--<property name="build.compiler" value="javac1.6"/>-->
+   <!--  <property name="ant.build.javac.source" value="1.6"/>-->
+   <!-- <property name="ant.build.javac.target" value="1.6"/> -->
+
+   <property environment="env" />
+   <!-- we need env.PATH for msvc only -->
+
+   <!-- uncomment this if you want to use mingw! -->
+   <!--<property name="mingw.dir" value="c:\\MinGW"/>-->
+
+   <target name="init">
+      <available property="win32.amd.app.sdk.exists" file="C:/Program Files/AMD APP" type="dir"/>
+
+      <condition property="amd.app.sdk.dir" value="C:/Program Files/AMD APP">
+         <and>
+            <os family="windows" />
+            <isset property="win32.amd.app.sdk.exists" />
+            <not>
+               <isset property="amd.app.sdk.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <available property="win64.amd.app.sdk.exists" file="C:/Program Files (x86)/AMD APP" type="dir"/>
+      <condition property="amd.app.sdk.dir" value="C:/Program Files (x86)/AMD APP">
+         <and>
+            <os family="windows" />
+            <isset property="win64.amd.app.sdk.exists" />
+            <not>
+               <isset property="win32.amd.app.sdk.exists" />
+            </not>
+         </and>
+      </condition>
+
+      <!-- !!! oren change -> detect Altera OpenCL SDK -->
+      <available property="linux.amd.app.sdk.exists" file="${env.ALTERAOCLSDKROOT}" type="dir"/>
+      <condition property="amd.app.sdk.dir" value="${env.ALTERAOCLSDKROOT}">
+         <and>
+            <os family="unix" />
+            <not>
+               <os family="mac" />
+            </not>
+            <isset property="linux.amd.app.sdk.exists" />
+            <not>
+               <isset property="win32.amd.app.sdk.exists" />
+            </not>
+            <not>
+               <isset property="win64.amd.app.sdk.exists" />
+            </not>
+         </and>
+      </condition>
+
+      <echo message=" amd.app.sdk.dir ${amd.app.sdk.dir}"/>
+   	
+   	  <!-- !!! wagnerse add -> automatically get the gcc compile arguments for the Altera OpenCL -->
+   	  <exec executable="aocl" outputproperty="altera.opencl.sdk.compileconfig" failonerror="true">
+   	  	<arg line="compile-config"/>
+   	  </exec>
+   	
+   	  <echo message=" AOCL Compile configuration: ${altera.opencl.sdk.compileconfig}"/>
+
+ 	  <!-- !!! wagnerse add -> automatically get the gcc link arguments for the Altera OpenCL -->
+ 	  <exec executable="aocl" outputproperty="altera.opencl.sdk.linkconfig" failonerror="true">
+ 	  	<arg line="link-config"/>
+ 	  </exec>
+   	
+ 	  <echo message=" AOCL Link configuration: ${altera.opencl.sdk.linkconfig}"/>
+
+      <!-- !!! 11.11.14 oren change -> detect Altera OpenCL SDK Board Package root -->
+      <available property="linux.amd.app.bsp.exists" file="${env.AOCL_BOARD_PACKAGE_ROOT}" type="dir"/>
+      <condition property="amd.app.bsp.dir" value="${env.AOCL_BOARD_PACKAGE_ROOT}">
+         <and>
+            <os family="unix" />
+            <not>
+               <os family="mac" />
+            </not>
+            <isset property="linux.amd.app.bsp.exists" />
+            <not>
+               <isset property="win32.amd.app.sdk.exists" />
+            </not>
+            <not>
+               <isset property="win64.amd.app.sdk.exists" />
+            </not>
+         </and>
+      </condition>
+
+      <echo message=" amd.app.bsp.dir ${amd.app.bsp.dir}"/>
+
+	  <!-- Check for Visual Studio -->
+	  <!-- This needs to be in descending order to properly handle multiple installations -->
+	  
+      <available property="msvc.32.11.0.exists" file="c:/Program Files (x86)/Microsoft Visual Studio 11.0\VC\bin" type="dir"/>
+      <condition property="msvc.dir" value="c:/Program Files (x86)/Microsoft Visual Studio 11.0">
+         <and>
+            <not>
+               <or>
+                  <os arch="x86" />
+                  <os arch="i386" />
+               </or>
+            </not>
+            <os family="windows" />
+            <isset property="msvc.32.11.0.exists" />
+            <not>
+               <isset property="msvc.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.64.10.0.exists" file="c:/Program Files/Microsoft Visual Studio 10.0\vc\bin" type="dir"/>
+      <condition property="msvc.dir" value="c:/Program Files/Microsoft Visual Studio 10.0">
+         <and>
+            <or>
+               <os arch="x86" />
+               <os arch="i386" />
+            </or>
+            <os family="windows" />
+            <isset property="msvc.64.10.0.exists" />
+            <not>
+               <isset property="msvc.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.32.10.0.exists" file="c:/Program Files (x86)/Microsoft Visual Studio 10.0\vc\bin" type="dir"/>
+      <condition property="msvc.dir" value="c:/Program Files (x86)/Microsoft Visual Studio 10.0">
+         <and>
+            <not>
+               <or>
+                  <os arch="x86" />
+                  <os arch="i386" />
+               </or>
+            </not>
+            <os family="windows" />
+            <isset property="msvc.32.10.0.exists" />
+            <not>
+               <isset property="msvc.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.32.9.0.exists" file="c:/Program Files/Microsoft Visual Studio 9.0\vc\bin" type="dir"/>
+      <condition property="msvc.dir" value="c:/Program Files/Microsoft Visual Studio 9.0">
+         <and>
+            <or>
+               <os arch="x86" />
+               <os arch="i386" />
+            </or>
+            <os family="windows" />
+            <isset property="msvc.32.9.0.exists" />
+            <not>
+               <isset property="msvc.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+	  <!-- Check for SDKs -->
+	  <!-- This needs to be in descending order to properly handle multiple installations -->
+	  
+      <!-- <available property="msvc.sdk.8.0A.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.8.0A.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.sdk.8.0.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.8.0.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition> -->
+      
+      <available property="msvc.sdk.7.1A.exists" file="C:/Program Files/Microsoft SDKs/Windows/v7.1A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v7.1A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.1A.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.sdk.7.1A.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.1A.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.sdk.7.1.exists" file="C:/Program Files/Microsoft SDKs/Windows/v7.1" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v7.1">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.1.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+	  <available property="msvc.sdk.7.1.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.1.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <available property="msvc.sdk.7.0A.exists" file="C:/Program Files/Microsoft SDKs/Windows/v7.0A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v7.0A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.0A.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <available property="msvc.sdk.7.0A.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.0A.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.sdk.7.0.exists" file="C:/Program Files/Microsoft SDKs/Windows/v7.0" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v7.0">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.0.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <available property="msvc.sdk.6.0A.exists" file="C:/Program Files/Microsoft SDKs/Windows/v6.0A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v6.0A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.6.0A.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <echo message=" msvc.dir ${msvc.dir}"/>
+      <echo message=" msvc.sdk.dir ${msvc.sdk.dir}"/>
+   </target>
+
+   <target name="check" depends="init">
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <isset property="msvc.dir" />
+               <not>
+                  <isset property="msvc.sdk.dir" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present msvc.dir seems to be Configured but not msvc.sdk.dir
+         ]]>
+      </fail>
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <not>
+                  <isset property="msvc.dir" />
+               </not>
+               <isset property="msvc.sdk.dir" />
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present msvc.sdk.dir seems to be Configured but not msvc.dir
+         ]]>
+      </fail>
+      <available file="${msvc.dir}" type="dir" property="msvc.dir.exists" />
+      <available file="${msvc.sdk.dir}" type="dir" property="msvc.sdk.dir.exists" />
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <isset property="msvc.dir" />
+               <not>
+                  <isset property="msvc.dir.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present msvc.dir is set (to ${msvc.dir}) but that dir does not exist
+         ]]>
+      </fail>
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <isset property="msvc.sdk.dir" />
+               <not>
+                  <isset property="msvc.sdk.dir.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present msvc.sdk.dir is set (to ${msvc.sdk.dir}) but that dir does not exist
+         ]]>
+      </fail>
+
+
+      <available file="${mingw.dir}" type="dir" property="mingw.dir.exists" />
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <isset property="mingw.dir" />
+               <not>
+                  <isset property="mingw.dir.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present mingw.dir is set (to ${mingw.dir}) but that dir does not exist
+         ]]>
+      </fail>
+      <!--<echo message="java.home ${java.home}"/>-->
+      <!--<echo message="msvc.dir.exists ${msvc.dir.exists}"/>-->
+      <!--<echo message="msvc.sdk.dir.exists ${msvc.sdk.dir.exists}"/>-->
+      <!--<echo message="mingw.dir.exists ${mingw.dir.exists}"/>-->
+      <condition property="use.msvc">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.dir.exists" />
+            <isset property="msvc.sdk.dir.exists" />
+         </and>
+      </condition>
+      <!--<echo message="use.msvc ${use.msvc}"/>-->
+
+      <condition property="use.mingw">
+         <and>
+            <os family="windows" />
+            <isset property="mingw.dir.exists" />
+         </and>
+      </condition>
+      <!--<echo message="use.mingw ${use.mingw}"/>-->
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <isset property="use.mingw" />
+               <isset property="use.msvc" />
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present ant is Configured for both MinGW AND Microsoft Visual Studio. You need to pick one or the other :) !
+
+         Just comment out the properties for the compiler that you *do not* wish to use.
+         ]]>
+      </fail>
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <not>
+                  <or>
+                     <isset property="use.mingw" />
+                     <isset property="use.msvc" />
+                  </or>
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         This looks like a windows machine so you probably need to Configure either:-
+
+         * msvc.dir and msvc.sdk.dir if you wish to use Microsoft Visual Studio compiler
+
+         * mingw.dir if you prefer if you prefer to use MinGW 
+         ]]>
+      </fail>
+
+      <condition property="use.gcc">
+         <and>
+            <os family="unix" />
+            <not>
+               <os family="mac" />
+            </not>
+         </and>
+      </condition>
+
+      <condition property="use.gcc_mac">
+         <os family="mac" />
+      </condition>
+
+      <condition property="x86_or_x86_64" value="x86" else="x86_64">
+         <or>
+            <os arch="x86" />
+            <os arch="i386" />
+         </or>
+      </condition>
+
+      <condition property="optional.amd64.subdir" value="" else="amd64\">
+         <or>
+            <os arch="x86" />
+            <os arch="i386" />
+         </or>
+      </condition>
+
+      <condition property="optional.x64.subdir" value="" else="x64\">
+         <or>
+            <os arch="x86" />
+            <os arch="i386" />
+         </or>
+      </condition>
+
+
+      <available file="${msvc.dir}\vc\bin\${optional.amd64.subdir}cl.exe" type="file" property="cl.exists" />
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <isset property="use.msvc" />
+               <not>
+                  <isset property="cl.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         Could not find vc\bin\${optional.amd64.subdir}cl under Configured msvc.dir. Check if msvc.dir is pointing
+         to a valid visual studio installation
+         ]]>
+      </fail>
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <not>
+                  <os family="mac" />
+               </not>
+               <not>
+                  <isset property="amd.app.sdk.dir" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         You need to set amd.app.sdk.dir to point to the location where AMD APP SDK is installed
+         ]]>
+      </fail>
+      <available file="${amd.app.sdk.dir}" type="dir" property="amd.app.sdk.dir.exists" />
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <not>
+                  <os family="mac" />
+               </not>
+               <not>
+                  <isset property="amd.app.sdk.dir.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present amd.app.sdk.dir is set (to ${amd.app.sdk.dir}) but that dir does not exist
+         ]]>
+      </fail>
+   </target>
+
+   <target name="clean" depends="check">
+      <delete dir="include" />
+      <delete dir="${basedir}/dist" />
+      <!-- Legacy cleanup -->
+      <delete file="libaparapi_${x86_or_x86_64}.dylib" />
+      <delete file="libaparapi_${x86_or_x86_64}.so" />
+      <delete file="aparapi_${x86_or_x86_64}.dll" />
+      <delete file="aparapi.dll" />
+      <delete file="aparapi.obj" />
+      <delete file="aparapi.o" />
+      <delete file="aparapi.lib" />
+      <delete file="aparapi.exp" />
+      <delete file="OpenCLJNI.obj" />
+      <delete file="OpenCLJNI.o" />
+      <delete file="Config.obj" />
+      <delete file="Config.o" />
+      <delete file="ProfileInfo.obj" />
+      <delete file="ProfileInfo.o" />
+      <delete file="ArrayBuffer.obj" />
+      <delete file="ArrayBuffer.o" />
+      <delete file="AparapiBuffer.obj" />
+      <delete file="AparapiBuffer.o" />
+      <delete file="JNIHelper.obj" />
+      <delete file="JNIHelper.o" />
+      <delete file="CLHelper.obj" />
+      <delete file="CLHelper.o" />
+      <delete file="JNIContext.obj" />
+      <delete file="JNIContext.o" />
+      <delete file="KernelArg.obj" />
+      <delete file="KernelArg.o" />
+      <delete file="Range.obj" />
+      <delete file="Range.o" />
+      <delete file="OpenCLArgDescriptor.obj" />
+      <delete file="OpenCLArgDescriptor.o" />
+      <delete file="agent.obj" />
+      <delete file="agent.o" />
+      <delete file="classtools.obj" />
+      <delete file="classtools.o" />
+      <delete file="OpenCLMem.obj" />
+      <delete file="OpenCLMem.o" />
+   </target>
+
+   <target name="javah">
+      <mkdir dir="include" />
+      <javah classpath="..\com.amd.aparapi\classes" destdir="include" force="true">
+         <class name="com.amd.aparapi.internal.jni.ConfigJNI" />
+         <class name="com.amd.aparapi.internal.jni.KernelArgJNI" />
+         <class name="com.amd.aparapi.internal.jni.KernelRunnerJNI" />
+         <class name="com.amd.aparapi.internal.jni.OpenCLJNI" />
+         <class name="com.amd.aparapi.internal.jni.RangeJNI" />
+         <!-- Non-Native Classes -->
+         <class name="com.amd.aparapi.Kernel"/>
+         <class name="com.amd.aparapi.Range"/>
+         <class name="com.amd.aparapi.Config" />
+         <class name="com.amd.aparapi.device.Device" />
+         <class name="com.amd.aparapi.device.OpenCLDevice" />
+         <class name="com.amd.aparapi.internal.kernel.KernelRunner"/>
+         <class name="com.amd.aparapi.internal.opencl.OpenCLArgDescriptor" />
+         <class name="com.amd.aparapi.internal.opencl.OpenCLMem" />
+      </javah>
+   </target>
+
+
+   <target name="gcc" if="use.gcc">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="linuxcc ${os.arch}" />
+      <exec executable="g++">
+        <!-- !!! oren change -> add debug info, no optimizations 
+         <arg value="-O3" />
+         <arg value="-O0" />
+        -->
+      	<!-- !!! oren change -> add support for ISO C++ 2011 (C++0x) requires GCC 4.3 and later -->      	
+      	<arg value="-std=c++0x" />
+         <arg value="-O3" />
+         <arg value="-g" />
+         <arg value="-fPIC" />
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="-DALTERA_OPENCL"/>
+         <arg value="-I${java.home}/../include" />
+         <arg value="-I${java.home}/../include/linux" />
+         <arg value="-Iinclude" />
+         <arg value="-I${amd.app.sdk.dir}/host/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_${x86_or_x86_64}.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" />
+      	<!-- !!! oren change -> platform config settings -->
+         <arg value="src/cpp/runKernel/ConfigSettings.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" />
+      	 <!-- !!! wagnerse -> Use compile and link configuration from aocl -->
+      	 <arg line="${altera.opencl.sdk.compileconfig}"/>
+         <arg value="-lOpenCL"/>
+      	 <arg line="${altera.opencl.sdk.linkconfig}"/> 
+      	 <arg line="-Wl,--export-dynamic"/>
+      </exec>
+   </target>
+
+   <target name="gcc_mac" if="use.gcc_mac">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc ${os.arch}" />
+      <exec executable="g++">
+         <arg value="-O3" />
+         <arg value="-g" />
+         <arg value="-fPIC" />
+         <!-- <arg value="-fopenmp"/> -->
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="-I/System/Library/Frameworks/JavaVM.framework/Headers" />
+         <arg value="-Iinclude" />
+         <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_${x86_or_x86_64}.dylib" />
+         <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="-framework" />
+         <arg value="OpenCL" />
+         <arg value="-Wno-write-strings" />
+      </exec>
+   </target>
+
+   <target name="msvc" if="use.msvc">
+      <mkdir dir="${basedir}\dist"/>
+      <echo message="msvc ${os.arch}" />
+      <exec executable="${msvc.dir}\vc\bin\${optional.amd64.subdir}cl.exe">
+         <env key="PATH" path="${env.PATH};${msvc.dir}\\Common7\\IDE" />
+         <arg value="/nologo" />
+         <arg value="/TP" />
+         <arg value="/Ox" />
+         <!-- <arg value="/openmp" /> -->
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="/EHsc" />
+         <arg value="/I${msvc.dir}\vc\include" />
+         <arg value="/I${msvc.sdk.dir}\include" />
+         <arg value="/I${java.home}\..\include" />
+         <arg value="/I${java.home}\..\include\win32" />
+         <arg value="/Iinclude" />
+         <arg value="/I${amd.app.sdk.dir}\include" />
+         <arg value="/Isrc/cpp" />
+         <arg value="/Isrc/cpp/runKernel" />
+         <arg value="/Isrc/cpp/invoke" />
+         <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="/LD" />
+         <arg value="/link" />
+         <arg value="/libpath:${msvc.dir}\vc\lib\${optional.amd64.subdir}" />
+         <arg value="/libpath:${msvc.sdk.dir}\lib\${optional.x64.subdir}" />
+         <arg value="/libpath:${amd.app.sdk.dir}\lib\${x86_or_x86_64}" />
+         <arg value="OpenCL.lib" />
+         <arg value="/out:${basedir}\dist\aparapi_${x86_or_x86_64}.dll" />
+      </exec>
+   </target>
+
+   <target name="mingw" if="use.mingw">
+      <mkdir dir="${basedir}\dist"/>
+      <echo message="mingw ${os.arch}" /> 
+      <exec executable="${mingw.dir}/bin/g++">
+         <env key="PATH" path="${env.PATH};${mingw.dir}/bin" />
+         <arg value="-Wall" />
+         <arg value="-O3" />
+         <arg value="-Wl,--kill-at" />
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="-I${java.home}\..\include" />
+         <arg value="-I${java.home}\..\include\win32" />
+         <arg value="-Iinclude" />
+         <arg value="-I${amd.app.sdk.dir}\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\aparapi_${x86_or_x86_64}.dll" />
+         <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${amd.app.sdk.dir}\lib\${x86_or_x86_64}" />
+         <arg value="-lOpenCL" />
+      </exec>
+   </target>
+
+   <target name="build" depends="clean, javah, msvc, mingw, gcc, gcc_mac" />
+
+   <target name="msvc_cltest" if="use.msvc">
+      <mkdir dir="${basedir}\dist"/>
+      <echo message="msvc_cltest ${os.arch}" />
+      <exec executable="${msvc.dir}\vc\bin\${optional.amd64.subdir}cl.exe">
+         <env key="PATH" path="${env.PATH};${msvc.dir}\\Common7\\IDE" />
+         <arg value="/nologo" />
+         <arg value="/TP" />
+         <arg value="/Ox" />
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="/I${msvc.dir}\vc\include" />
+         <arg value="/I${msvc.sdk.dir}\include" />
+         <arg value="/I${amd.app.sdk.dir}\include" />
+         <arg value="/Isrc/cpp" />
+         <arg value="/Isrc/cpp/runKernel" />
+         <arg value="/Isrc/cpp/invoke" />
+         <arg value="src\cpp\CLTest.cpp" />
+         <arg value="/link" />
+         <arg value="/libpath:${msvc.dir}\vc\lib\${optional.amd64.subdir}" />
+         <arg value="/libpath:${msvc.sdk.dir}\lib\${optional.x64.subdir}" />
+         <arg value="/libpath:${amd.app.sdk.dir}\lib\${x86_or_x86_64}" />
+         <arg value="OpenCL.lib" />
+         <arg value="/out:${basedir}/dist/cltest_${x86_or_x86_64}.exe" />
+      </exec>
+   </target>
+
+   <target name="mac_cltest" if="use.gcc_mac">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc cltest ${os.arch}" />
+      <exec executable="g++">
+         <arg value="-O3" />
+         <arg value="-g" />
+         <arg value="-fPIC" />
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="-I/System/Library/Frameworks/JavaVM.framework/Headers" />
+         <arg value="-Iinclude" />
+         <arg value="-Isrc/cpp" />
+         <arg value="-Isrc/cpp/runKernel" />
+         <arg value="-Isrc/cpp/invoke" />
+         <arg value="-o" />
+         <arg value="${basedir}/dist/cltest" />
+         <arg value="src/cpp/CLTest.cpp" />
+         <arg value="-framework" />
+         <arg value="OpenCL" />
+      </exec>
+   </target>
+
+   <target name="gcc_cltest" if="use.gcc">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc cltest ${os.arch}" />
+      <exec executable="g++">
+         <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/linux" />
+         <arg value="-I${amd.app.sdk.dir}/include" />
+         <arg value="src/cpp/cltest.cpp" />
+         <arg value="-L${amd.app.sdk.dir}/lib/${x86_or_x86_64}" />
+         <arg value="-lOpenCL" />
+         <arg value="-o" />
+         <arg value="${basedir}/cltest_${x86_or_x86_64}" />
+      </exec>
+  </target>
+
+   <target name="gcc_clt" if="use.gcc">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc cltest ${os.arch}" />
+      <exec executable="g++">
+         <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="mac_clt" if="use.gcc_mac">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc clt ${os.arch}" />
+      <exec executable="g++">
+         <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,gcc_cltest" />
+   <target name="clt" depends="check,gcc_clt,mac_clt" />
+</project>
diff --git a/build_altera_ocl_v15_posix_mem_align.xml b/build_altera_ocl_v15_posix_mem_align.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0418ee9be34e1a174b73708263fcde8c490791f5
--- /dev/null
+++ b/build_altera_ocl_v15_posix_mem_align.xml
@@ -0,0 +1,907 @@
+<?xml version="1.0"?>
+
+<!--
+You should not have to edit this file
+First consider editing the properties in build.properties
+-->
+<project name="com.amd.aparapi.jni" default="build" basedir=".">
+
+   <property file="build.properties"/>
+	
+   <!-- 
+   DO NOT EDIT BELOW THIS LINE 
+   -->
+   <echo>OS Name:    ${os.name}</echo>
+   <echo>OS Version: ${os.version}</echo>
+   <echo>OS Arch:    ${os.arch}</echo>
+
+   <!--<property name="build.compiler" value="javac1.6"/>-->
+   <!--  <property name="ant.build.javac.source" value="1.6"/>-->
+   <!-- <property name="ant.build.javac.target" value="1.6"/> -->
+
+   <property environment="env" />
+   <!-- we need env.PATH for msvc only -->
+
+   <!-- uncomment this if you want to use mingw! -->
+   <!--<property name="mingw.dir" value="c:\\MinGW"/>-->
+
+   <target name="init">
+      <available property="win32.amd.app.sdk.exists" file="C:/Program Files/AMD APP" type="dir"/>
+
+      <condition property="amd.app.sdk.dir" value="C:/Program Files/AMD APP">
+         <and>
+            <os family="windows" />
+            <isset property="win32.amd.app.sdk.exists" />
+            <not>
+               <isset property="amd.app.sdk.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <available property="win64.amd.app.sdk.exists" file="C:/Program Files (x86)/AMD APP" type="dir"/>
+      <condition property="amd.app.sdk.dir" value="C:/Program Files (x86)/AMD APP">
+         <and>
+            <os family="windows" />
+            <isset property="win64.amd.app.sdk.exists" />
+            <not>
+               <isset property="win32.amd.app.sdk.exists" />
+            </not>
+         </and>
+      </condition>
+
+      <!-- !!! oren change -> detect Altera OpenCL SDK -->
+      <available property="linux.amd.app.sdk.exists" file="${env.ALTERAOCLSDKROOT}" type="dir"/>
+      <condition property="amd.app.sdk.dir" value="${env.ALTERAOCLSDKROOT}">
+         <and>
+            <os family="unix" />
+            <not>
+               <os family="mac" />
+            </not>
+            <isset property="linux.amd.app.sdk.exists" />
+            <not>
+               <isset property="win32.amd.app.sdk.exists" />
+            </not>
+            <not>
+               <isset property="win64.amd.app.sdk.exists" />
+            </not>
+         </and>
+      </condition>
+
+      <echo message=" amd.app.sdk.dir ${amd.app.sdk.dir}"/>
+   	
+   	  <!-- !!! wagnerse add -> automatically get the gcc compile arguments for the Altera OpenCL -->
+   	  <exec executable="aocl" outputproperty="altera.opencl.sdk.compileconfig" failonerror="true">
+   	  	<arg line="compile-config"/>
+   	  </exec>
+   	
+   	  <echo message=" AOCL Compile configuration: ${altera.opencl.sdk.compileconfig}"/>
+
+ 	  <!-- !!! wagnerse add -> automatically get the gcc link arguments for the Altera OpenCL -->
+ 	  <exec executable="aocl" outputproperty="altera.opencl.sdk.linkconfig" failonerror="true">
+ 	  	<arg line="link-config"/>
+ 	  </exec>
+   	
+ 	  <echo message=" AOCL Link configuration: ${altera.opencl.sdk.linkconfig}"/>
+
+      <!-- !!! 11.11.14 oren change -> detect Altera OpenCL SDK Board Package root -->
+      <available property="linux.amd.app.bsp.exists" file="${env.AOCL_BOARD_PACKAGE_ROOT}" type="dir"/>
+      <condition property="amd.app.bsp.dir" value="${env.AOCL_BOARD_PACKAGE_ROOT}">
+         <and>
+            <os family="unix" />
+            <not>
+               <os family="mac" />
+            </not>
+            <isset property="linux.amd.app.bsp.exists" />
+            <not>
+               <isset property="win32.amd.app.sdk.exists" />
+            </not>
+            <not>
+               <isset property="win64.amd.app.sdk.exists" />
+            </not>
+         </and>
+      </condition>
+
+      <echo message=" amd.app.bsp.dir ${amd.app.bsp.dir}"/>
+
+	  <!-- Check for Visual Studio -->
+	  <!-- This needs to be in descending order to properly handle multiple installations -->
+	  
+      <available property="msvc.32.11.0.exists" file="c:/Program Files (x86)/Microsoft Visual Studio 11.0\VC\bin" type="dir"/>
+      <condition property="msvc.dir" value="c:/Program Files (x86)/Microsoft Visual Studio 11.0">
+         <and>
+            <not>
+               <or>
+                  <os arch="x86" />
+                  <os arch="i386" />
+               </or>
+            </not>
+            <os family="windows" />
+            <isset property="msvc.32.11.0.exists" />
+            <not>
+               <isset property="msvc.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.64.10.0.exists" file="c:/Program Files/Microsoft Visual Studio 10.0\vc\bin" type="dir"/>
+      <condition property="msvc.dir" value="c:/Program Files/Microsoft Visual Studio 10.0">
+         <and>
+            <or>
+               <os arch="x86" />
+               <os arch="i386" />
+            </or>
+            <os family="windows" />
+            <isset property="msvc.64.10.0.exists" />
+            <not>
+               <isset property="msvc.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.32.10.0.exists" file="c:/Program Files (x86)/Microsoft Visual Studio 10.0\vc\bin" type="dir"/>
+      <condition property="msvc.dir" value="c:/Program Files (x86)/Microsoft Visual Studio 10.0">
+         <and>
+            <not>
+               <or>
+                  <os arch="x86" />
+                  <os arch="i386" />
+               </or>
+            </not>
+            <os family="windows" />
+            <isset property="msvc.32.10.0.exists" />
+            <not>
+               <isset property="msvc.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.32.9.0.exists" file="c:/Program Files/Microsoft Visual Studio 9.0\vc\bin" type="dir"/>
+      <condition property="msvc.dir" value="c:/Program Files/Microsoft Visual Studio 9.0">
+         <and>
+            <or>
+               <os arch="x86" />
+               <os arch="i386" />
+            </or>
+            <os family="windows" />
+            <isset property="msvc.32.9.0.exists" />
+            <not>
+               <isset property="msvc.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+	  <!-- Check for SDKs -->
+	  <!-- This needs to be in descending order to properly handle multiple installations -->
+	  
+      <!-- <available property="msvc.sdk.8.0A.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.8.0A.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.sdk.8.0.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.8.0.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition> -->
+      
+      <available property="msvc.sdk.7.1A.exists" file="C:/Program Files/Microsoft SDKs/Windows/v7.1A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v7.1A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.1A.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.sdk.7.1A.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.1A.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.sdk.7.1.exists" file="C:/Program Files/Microsoft SDKs/Windows/v7.1" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v7.1">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.1.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+	  <available property="msvc.sdk.7.1.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.1.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <available property="msvc.sdk.7.0A.exists" file="C:/Program Files/Microsoft SDKs/Windows/v7.0A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v7.0A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.0A.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <available property="msvc.sdk.7.0A.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.0A.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.sdk.7.0.exists" file="C:/Program Files/Microsoft SDKs/Windows/v7.0" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v7.0">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.0.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <available property="msvc.sdk.6.0A.exists" file="C:/Program Files/Microsoft SDKs/Windows/v6.0A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v6.0A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.6.0A.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <echo message=" msvc.dir ${msvc.dir}"/>
+      <echo message=" msvc.sdk.dir ${msvc.sdk.dir}"/>
+   </target>
+
+   <target name="check" depends="init">
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <isset property="msvc.dir" />
+               <not>
+                  <isset property="msvc.sdk.dir" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present msvc.dir seems to be Configured but not msvc.sdk.dir
+         ]]>
+      </fail>
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <not>
+                  <isset property="msvc.dir" />
+               </not>
+               <isset property="msvc.sdk.dir" />
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present msvc.sdk.dir seems to be Configured but not msvc.dir
+         ]]>
+      </fail>
+      <available file="${msvc.dir}" type="dir" property="msvc.dir.exists" />
+      <available file="${msvc.sdk.dir}" type="dir" property="msvc.sdk.dir.exists" />
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <isset property="msvc.dir" />
+               <not>
+                  <isset property="msvc.dir.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present msvc.dir is set (to ${msvc.dir}) but that dir does not exist
+         ]]>
+      </fail>
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <isset property="msvc.sdk.dir" />
+               <not>
+                  <isset property="msvc.sdk.dir.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present msvc.sdk.dir is set (to ${msvc.sdk.dir}) but that dir does not exist
+         ]]>
+      </fail>
+
+
+      <available file="${mingw.dir}" type="dir" property="mingw.dir.exists" />
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <isset property="mingw.dir" />
+               <not>
+                  <isset property="mingw.dir.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present mingw.dir is set (to ${mingw.dir}) but that dir does not exist
+         ]]>
+      </fail>
+      <!--<echo message="java.home ${java.home}"/>-->
+      <!--<echo message="msvc.dir.exists ${msvc.dir.exists}"/>-->
+      <!--<echo message="msvc.sdk.dir.exists ${msvc.sdk.dir.exists}"/>-->
+      <!--<echo message="mingw.dir.exists ${mingw.dir.exists}"/>-->
+      <condition property="use.msvc">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.dir.exists" />
+            <isset property="msvc.sdk.dir.exists" />
+         </and>
+      </condition>
+      <!--<echo message="use.msvc ${use.msvc}"/>-->
+
+      <condition property="use.mingw">
+         <and>
+            <os family="windows" />
+            <isset property="mingw.dir.exists" />
+         </and>
+      </condition>
+      <!--<echo message="use.mingw ${use.mingw}"/>-->
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <isset property="use.mingw" />
+               <isset property="use.msvc" />
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present ant is Configured for both MinGW AND Microsoft Visual Studio. You need to pick one or the other :) !
+
+         Just comment out the properties for the compiler that you *do not* wish to use.
+         ]]>
+      </fail>
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <not>
+                  <or>
+                     <isset property="use.mingw" />
+                     <isset property="use.msvc" />
+                  </or>
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         This looks like a windows machine so you probably need to Configure either:-
+
+         * msvc.dir and msvc.sdk.dir if you wish to use Microsoft Visual Studio compiler
+
+         * mingw.dir if you prefer if you prefer to use MinGW 
+         ]]>
+      </fail>
+
+      <condition property="use.gcc">
+         <and>
+            <os family="unix" />
+            <not>
+               <os family="mac" />
+            </not>
+         </and>
+      </condition>
+
+      <condition property="use.gcc_mac">
+         <os family="mac" />
+      </condition>
+
+      <condition property="x86_or_x86_64" value="x86" else="x86_64">
+         <or>
+            <os arch="x86" />
+            <os arch="i386" />
+         </or>
+      </condition>
+
+      <condition property="optional.amd64.subdir" value="" else="amd64\">
+         <or>
+            <os arch="x86" />
+            <os arch="i386" />
+         </or>
+      </condition>
+
+      <condition property="optional.x64.subdir" value="" else="x64\">
+         <or>
+            <os arch="x86" />
+            <os arch="i386" />
+         </or>
+      </condition>
+
+
+      <available file="${msvc.dir}\vc\bin\${optional.amd64.subdir}cl.exe" type="file" property="cl.exists" />
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <isset property="use.msvc" />
+               <not>
+                  <isset property="cl.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         Could not find vc\bin\${optional.amd64.subdir}cl under Configured msvc.dir. Check if msvc.dir is pointing
+         to a valid visual studio installation
+         ]]>
+      </fail>
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <not>
+                  <os family="mac" />
+               </not>
+               <not>
+                  <isset property="amd.app.sdk.dir" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         You need to set amd.app.sdk.dir to point to the location where AMD APP SDK is installed
+         ]]>
+      </fail>
+      <available file="${amd.app.sdk.dir}" type="dir" property="amd.app.sdk.dir.exists" />
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <not>
+                  <os family="mac" />
+               </not>
+               <not>
+                  <isset property="amd.app.sdk.dir.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present amd.app.sdk.dir is set (to ${amd.app.sdk.dir}) but that dir does not exist
+         ]]>
+      </fail>
+   </target>
+
+   <target name="clean" depends="check">
+      <delete dir="include" />
+      <delete dir="${basedir}/dist" />
+      <!-- Legacy cleanup -->
+      <delete file="libaparapi_${x86_or_x86_64}.dylib" />
+      <delete file="libaparapi_${x86_or_x86_64}.so" />
+      <delete file="aparapi_${x86_or_x86_64}.dll" />
+      <delete file="aparapi.dll" />
+      <delete file="aparapi.obj" />
+      <delete file="aparapi.o" />
+      <delete file="aparapi.lib" />
+      <delete file="aparapi.exp" />
+      <delete file="OpenCLJNI.obj" />
+      <delete file="OpenCLJNI.o" />
+      <delete file="Config.obj" />
+      <delete file="Config.o" />
+      <delete file="ProfileInfo.obj" />
+      <delete file="ProfileInfo.o" />
+      <delete file="ArrayBuffer.obj" />
+      <delete file="ArrayBuffer.o" />
+      <delete file="AparapiBuffer.obj" />
+      <delete file="AparapiBuffer.o" />
+      <delete file="JNIHelper.obj" />
+      <delete file="JNIHelper.o" />
+      <delete file="CLHelper.obj" />
+      <delete file="CLHelper.o" />
+      <delete file="JNIContext.obj" />
+      <delete file="JNIContext.o" />
+      <delete file="KernelArg.obj" />
+      <delete file="KernelArg.o" />
+      <delete file="Range.obj" />
+      <delete file="Range.o" />
+      <delete file="OpenCLArgDescriptor.obj" />
+      <delete file="OpenCLArgDescriptor.o" />
+      <delete file="agent.obj" />
+      <delete file="agent.o" />
+      <delete file="classtools.obj" />
+      <delete file="classtools.o" />
+      <delete file="OpenCLMem.obj" />
+      <delete file="OpenCLMem.o" />
+   </target>
+
+   <target name="javah">
+      <mkdir dir="include" />
+      <javah classpath="..\com.amd.aparapi\classes" destdir="include" force="true">
+         <class name="com.amd.aparapi.internal.jni.ConfigJNI" />
+         <class name="com.amd.aparapi.internal.jni.KernelArgJNI" />
+         <class name="com.amd.aparapi.internal.jni.KernelRunnerJNI" />
+         <class name="com.amd.aparapi.internal.jni.OpenCLJNI" />
+         <class name="com.amd.aparapi.internal.jni.RangeJNI" />
+         <!-- Non-Native Classes -->
+         <class name="com.amd.aparapi.Kernel"/>
+         <class name="com.amd.aparapi.Range"/>
+         <class name="com.amd.aparapi.Config" />
+         <class name="com.amd.aparapi.device.Device" />
+         <class name="com.amd.aparapi.device.OpenCLDevice" />
+         <class name="com.amd.aparapi.internal.kernel.KernelRunner"/>
+         <class name="com.amd.aparapi.internal.opencl.OpenCLArgDescriptor" />
+         <class name="com.amd.aparapi.internal.opencl.OpenCLMem" />
+      </javah>
+   </target>
+
+
+   <target name="gcc" if="use.gcc">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="linuxcc ${os.arch}" />
+      <exec executable="g++">
+        <!-- !!! oren change -> add debug info, no optimizations 
+         <arg value="-O3" />
+         <arg value="-O0" />
+        -->
+      	<!-- !!! oren change -> add support for ISO C++ 2011 (C++0x) requires GCC 4.3 and later -->      	
+      	<arg value="-std=c++0x" />
+         <arg value="-O3" />
+         <arg value="-g" />
+         <arg value="-fPIC" />
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="-DALTERA_OPENCL"/>
+         <arg value="-DTEST_ALIGNED_MEM"/>
+         <arg value="-I${java.home}/../include" />
+         <arg value="-I${java.home}/../include/linux" />
+         <arg value="-Iinclude" />
+         <arg value="-I${amd.app.sdk.dir}/host/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_${x86_or_x86_64}.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" />
+      	<!-- !!! oren change -> platform config settings -->
+         <arg value="src/cpp/runKernel/ConfigSettings.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" />
+      	 <!-- !!! wagnerse -> Use compile and link configuration from aocl -->
+      	 <arg line="${altera.opencl.sdk.compileconfig}"/>
+         <arg value="-lOpenCL"/>
+      	 <arg line="${altera.opencl.sdk.linkconfig}"/> 
+      	 <arg line="-Wl,--export-dynamic"/>
+      </exec>
+   </target>
+
+   <target name="gcc_mac" if="use.gcc_mac">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc ${os.arch}" />
+      <exec executable="g++">
+         <arg value="-O3" />
+         <arg value="-g" />
+         <arg value="-fPIC" />
+         <!-- <arg value="-fopenmp"/> -->
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="-I/System/Library/Frameworks/JavaVM.framework/Headers" />
+         <arg value="-Iinclude" />
+         <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_${x86_or_x86_64}.dylib" />
+         <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="-framework" />
+         <arg value="OpenCL" />
+         <arg value="-Wno-write-strings" />
+      </exec>
+   </target>
+
+   <target name="msvc" if="use.msvc">
+      <mkdir dir="${basedir}\dist"/>
+      <echo message="msvc ${os.arch}" />
+      <exec executable="${msvc.dir}\vc\bin\${optional.amd64.subdir}cl.exe">
+         <env key="PATH" path="${env.PATH};${msvc.dir}\\Common7\\IDE" />
+         <arg value="/nologo" />
+         <arg value="/TP" />
+         <arg value="/Ox" />
+         <!-- <arg value="/openmp" /> -->
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="/EHsc" />
+         <arg value="/I${msvc.dir}\vc\include" />
+         <arg value="/I${msvc.sdk.dir}\include" />
+         <arg value="/I${java.home}\..\include" />
+         <arg value="/I${java.home}\..\include\win32" />
+         <arg value="/Iinclude" />
+         <arg value="/I${amd.app.sdk.dir}\include" />
+         <arg value="/Isrc/cpp" />
+         <arg value="/Isrc/cpp/runKernel" />
+         <arg value="/Isrc/cpp/invoke" />
+         <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="/LD" />
+         <arg value="/link" />
+         <arg value="/libpath:${msvc.dir}\vc\lib\${optional.amd64.subdir}" />
+         <arg value="/libpath:${msvc.sdk.dir}\lib\${optional.x64.subdir}" />
+         <arg value="/libpath:${amd.app.sdk.dir}\lib\${x86_or_x86_64}" />
+         <arg value="OpenCL.lib" />
+         <arg value="/out:${basedir}\dist\aparapi_${x86_or_x86_64}.dll" />
+      </exec>
+   </target>
+
+   <target name="mingw" if="use.mingw">
+      <mkdir dir="${basedir}\dist"/>
+      <echo message="mingw ${os.arch}" /> 
+      <exec executable="${mingw.dir}/bin/g++">
+         <env key="PATH" path="${env.PATH};${mingw.dir}/bin" />
+         <arg value="-Wall" />
+         <arg value="-O3" />
+         <arg value="-Wl,--kill-at" />
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="-I${java.home}\..\include" />
+         <arg value="-I${java.home}\..\include\win32" />
+         <arg value="-Iinclude" />
+         <arg value="-I${amd.app.sdk.dir}\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\aparapi_${x86_or_x86_64}.dll" />
+         <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${amd.app.sdk.dir}\lib\${x86_or_x86_64}" />
+         <arg value="-lOpenCL" />
+      </exec>
+   </target>
+
+   <target name="build" depends="clean, javah, msvc, mingw, gcc, gcc_mac" />
+
+   <target name="msvc_cltest" if="use.msvc">
+      <mkdir dir="${basedir}\dist"/>
+      <echo message="msvc_cltest ${os.arch}" />
+      <exec executable="${msvc.dir}\vc\bin\${optional.amd64.subdir}cl.exe">
+         <env key="PATH" path="${env.PATH};${msvc.dir}\\Common7\\IDE" />
+         <arg value="/nologo" />
+         <arg value="/TP" />
+         <arg value="/Ox" />
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="/I${msvc.dir}\vc\include" />
+         <arg value="/I${msvc.sdk.dir}\include" />
+         <arg value="/I${amd.app.sdk.dir}\include" />
+         <arg value="/Isrc/cpp" />
+         <arg value="/Isrc/cpp/runKernel" />
+         <arg value="/Isrc/cpp/invoke" />
+         <arg value="src\cpp\CLTest.cpp" />
+         <arg value="/link" />
+         <arg value="/libpath:${msvc.dir}\vc\lib\${optional.amd64.subdir}" />
+         <arg value="/libpath:${msvc.sdk.dir}\lib\${optional.x64.subdir}" />
+         <arg value="/libpath:${amd.app.sdk.dir}\lib\${x86_or_x86_64}" />
+         <arg value="OpenCL.lib" />
+         <arg value="/out:${basedir}/dist/cltest_${x86_or_x86_64}.exe" />
+      </exec>
+   </target>
+
+   <target name="mac_cltest" if="use.gcc_mac">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc cltest ${os.arch}" />
+      <exec executable="g++">
+         <arg value="-O3" />
+         <arg value="-g" />
+         <arg value="-fPIC" />
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="-I/System/Library/Frameworks/JavaVM.framework/Headers" />
+         <arg value="-Iinclude" />
+         <arg value="-Isrc/cpp" />
+         <arg value="-Isrc/cpp/runKernel" />
+         <arg value="-Isrc/cpp/invoke" />
+         <arg value="-o" />
+         <arg value="${basedir}/dist/cltest" />
+         <arg value="src/cpp/CLTest.cpp" />
+         <arg value="-framework" />
+         <arg value="OpenCL" />
+      </exec>
+   </target>
+
+   <target name="gcc_cltest" if="use.gcc">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc cltest ${os.arch}" />
+      <exec executable="g++">
+         <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/linux" />
+         <arg value="-I${amd.app.sdk.dir}/include" />
+         <arg value="src/cpp/cltest.cpp" />
+         <arg value="-L${amd.app.sdk.dir}/lib/${x86_or_x86_64}" />
+         <arg value="-lOpenCL" />
+         <arg value="-o" />
+         <arg value="${basedir}/cltest_${x86_or_x86_64}" />
+      </exec>
+  </target>
+
+   <target name="gcc_clt" if="use.gcc">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc cltest ${os.arch}" />
+      <exec executable="g++">
+         <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="mac_clt" if="use.gcc_mac">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc clt ${os.arch}" />
+      <exec executable="g++">
+         <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,gcc_cltest" />
+   <target name="clt" depends="check,gcc_clt,mac_clt" />
+</project>
diff --git a/build_intel_ocl.xml b/build_intel_ocl.xml
new file mode 100644
index 0000000000000000000000000000000000000000..24177f84add00a61f685f72a2169ddf68d276e80
--- /dev/null
+++ b/build_intel_ocl.xml
@@ -0,0 +1,864 @@
+<?xml version="1.0"?>
+
+<!--
+You should not have to edit this file
+First consider editing the properties in build.properties
+-->
+<project name="com.amd.aparapi.jni" default="build" basedir=".">
+
+   <!-- 
+   DO NOT EDIT BELOW THIS LINE 
+   -->
+   <echo>OS Name:    ${os.name}</echo>
+   <echo>OS Version: ${os.version}</echo>
+   <echo>OS Arch:    ${os.arch}</echo>
+
+   <!--<property name="build.compiler" value="javac1.6"/>-->
+   <!--  <property name="ant.build.javac.source" value="1.6"/>-->
+   <!-- <property name="ant.build.javac.target" value="1.6"/> -->
+
+   <property environment="env" />
+   <!-- we need env.PATH for msvc only -->
+
+   <!-- uncomment this if you want to use mingw! -->
+   <!--<property name="mingw.dir" value="c:\\MinGW"/>-->
+
+   <target name="init">
+      <available property="win32.amd.app.sdk.exists" file="C:/Program Files/AMD APP" type="dir"/>
+
+      <condition property="amd.app.sdk.dir" value="C:/Program Files/AMD APP">
+         <and>
+            <os family="windows" />
+            <isset property="win32.amd.app.sdk.exists" />
+            <not>
+               <isset property="amd.app.sdk.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <available property="win64.amd.app.sdk.exists" file="C:/Program Files (x86)/AMD APP" type="dir"/>
+      <condition property="amd.app.sdk.dir" value="C:/Program Files (x86)/AMD APP">
+         <and>
+            <os family="windows" />
+            <isset property="win64.amd.app.sdk.exists" />
+            <not>
+               <isset property="win32.amd.app.sdk.exists" />
+            </not>
+         </and>
+      </condition>
+
+      <available property="linux.amd.app.sdk.exists" file="/opt/intel/opencl" type="dir"/>
+      <condition property="amd.app.sdk.dir" value="/opt/intel/opencl">
+         <and>
+            <os family="unix" />
+            <not>
+               <os family="mac" />
+            </not>
+            <isset property="linux.amd.app.sdk.exists" />
+            <not>
+               <isset property="win32.amd.app.sdk.exists" />
+            </not>
+            <not>
+               <isset property="win64.amd.app.sdk.exists" />
+            </not>
+         </and>
+      </condition>
+
+      <echo message=" amd.app.sdk.dir ${amd.app.sdk.dir}"/>
+
+	  <!-- Check for Visual Studio -->
+	  <!-- This needs to be in descending order to properly handle multiple installations -->
+	  
+      <available property="msvc.32.11.0.exists" file="c:/Program Files (x86)/Microsoft Visual Studio 11.0\VC\bin" type="dir"/>
+      <condition property="msvc.dir" value="c:/Program Files (x86)/Microsoft Visual Studio 11.0">
+         <and>
+            <not>
+               <or>
+                  <os arch="x86" />
+                  <os arch="i386" />
+               </or>
+            </not>
+            <os family="windows" />
+            <isset property="msvc.32.11.0.exists" />
+            <not>
+               <isset property="msvc.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.64.10.0.exists" file="c:/Program Files/Microsoft Visual Studio 10.0\vc\bin" type="dir"/>
+      <condition property="msvc.dir" value="c:/Program Files/Microsoft Visual Studio 10.0">
+         <and>
+            <or>
+               <os arch="x86" />
+               <os arch="i386" />
+            </or>
+            <os family="windows" />
+            <isset property="msvc.64.10.0.exists" />
+            <not>
+               <isset property="msvc.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.32.10.0.exists" file="c:/Program Files (x86)/Microsoft Visual Studio 10.0\vc\bin" type="dir"/>
+      <condition property="msvc.dir" value="c:/Program Files (x86)/Microsoft Visual Studio 10.0">
+         <and>
+            <not>
+               <or>
+                  <os arch="x86" />
+                  <os arch="i386" />
+               </or>
+            </not>
+            <os family="windows" />
+            <isset property="msvc.32.10.0.exists" />
+            <not>
+               <isset property="msvc.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.32.9.0.exists" file="c:/Program Files/Microsoft Visual Studio 9.0\vc\bin" type="dir"/>
+      <condition property="msvc.dir" value="c:/Program Files/Microsoft Visual Studio 9.0">
+         <and>
+            <or>
+               <os arch="x86" />
+               <os arch="i386" />
+            </or>
+            <os family="windows" />
+            <isset property="msvc.32.9.0.exists" />
+            <not>
+               <isset property="msvc.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+	  <!-- Check for SDKs -->
+	  <!-- This needs to be in descending order to properly handle multiple installations -->
+	  
+      <!-- <available property="msvc.sdk.8.0A.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.8.0A.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.sdk.8.0.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.8.0.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition> -->
+      
+      <available property="msvc.sdk.7.1A.exists" file="C:/Program Files/Microsoft SDKs/Windows/v7.1A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v7.1A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.1A.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.sdk.7.1A.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.1A.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.sdk.7.1.exists" file="C:/Program Files/Microsoft SDKs/Windows/v7.1" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v7.1">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.1.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+	  <available property="msvc.sdk.7.1.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.1.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <available property="msvc.sdk.7.0A.exists" file="C:/Program Files/Microsoft SDKs/Windows/v7.0A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v7.0A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.0A.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <available property="msvc.sdk.7.0A.32.exists" file="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.0A.32.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+      
+      <available property="msvc.sdk.7.0.exists" file="C:/Program Files/Microsoft SDKs/Windows/v7.0" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v7.0">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.7.0.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <available property="msvc.sdk.6.0A.exists" file="C:/Program Files/Microsoft SDKs/Windows/v6.0A" type="dir"/>
+      <condition property="msvc.sdk.dir" value="C:/Program Files/Microsoft SDKs/Windows/v6.0A">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.sdk.6.0A.exists" />
+            <not>
+               <isset property="msvc.sdk.dir" />
+            </not>
+            <not>
+               <isset property="mingw.dir" />
+            </not>
+         </and>
+      </condition>
+
+      <echo message=" msvc.dir ${msvc.dir}"/>
+      <echo message=" msvc.sdk.dir ${msvc.sdk.dir}"/>
+   </target>
+
+   <target name="check" depends="init">
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <isset property="msvc.dir" />
+               <not>
+                  <isset property="msvc.sdk.dir" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present msvc.dir seems to be Configured but not msvc.sdk.dir
+         ]]>
+      </fail>
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <not>
+                  <isset property="msvc.dir" />
+               </not>
+               <isset property="msvc.sdk.dir" />
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present msvc.sdk.dir seems to be Configured but not msvc.dir
+         ]]>
+      </fail>
+      <available file="${msvc.dir}" type="dir" property="msvc.dir.exists" />
+      <available file="${msvc.sdk.dir}" type="dir" property="msvc.sdk.dir.exists" />
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <isset property="msvc.dir" />
+               <not>
+                  <isset property="msvc.dir.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present msvc.dir is set (to ${msvc.dir}) but that dir does not exist
+         ]]>
+      </fail>
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <isset property="msvc.sdk.dir" />
+               <not>
+                  <isset property="msvc.sdk.dir.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present msvc.sdk.dir is set (to ${msvc.sdk.dir}) but that dir does not exist
+         ]]>
+      </fail>
+
+
+      <available file="${mingw.dir}" type="dir" property="mingw.dir.exists" />
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <isset property="mingw.dir" />
+               <not>
+                  <isset property="mingw.dir.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present mingw.dir is set (to ${mingw.dir}) but that dir does not exist
+         ]]>
+      </fail>
+      <!--<echo message="java.home ${java.home}"/>-->
+      <!--<echo message="msvc.dir.exists ${msvc.dir.exists}"/>-->
+      <!--<echo message="msvc.sdk.dir.exists ${msvc.sdk.dir.exists}"/>-->
+      <!--<echo message="mingw.dir.exists ${mingw.dir.exists}"/>-->
+      <condition property="use.msvc">
+         <and>
+            <os family="windows" />
+            <isset property="msvc.dir.exists" />
+            <isset property="msvc.sdk.dir.exists" />
+         </and>
+      </condition>
+      <!--<echo message="use.msvc ${use.msvc}"/>-->
+
+      <condition property="use.mingw">
+         <and>
+            <os family="windows" />
+            <isset property="mingw.dir.exists" />
+         </and>
+      </condition>
+      <!--<echo message="use.mingw ${use.mingw}"/>-->
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <isset property="use.mingw" />
+               <isset property="use.msvc" />
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present ant is Configured for both MinGW AND Microsoft Visual Studio. You need to pick one or the other :) !
+
+         Just comment out the properties for the compiler that you *do not* wish to use.
+         ]]>
+      </fail>
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <os family="windows" />
+               <not>
+                  <or>
+                     <isset property="use.mingw" />
+                     <isset property="use.msvc" />
+                  </or>
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         This looks like a windows machine so you probably need to Configure either:-
+
+         * msvc.dir and msvc.sdk.dir if you wish to use Microsoft Visual Studio compiler
+
+         * mingw.dir if you prefer if you prefer to use MinGW 
+         ]]>
+      </fail>
+
+      <condition property="use.gcc">
+         <and>
+            <os family="unix" />
+            <not>
+               <os family="mac" />
+            </not>
+         </and>
+      </condition>
+
+      <condition property="use.gcc_mac">
+         <os family="mac" />
+      </condition>
+
+      <condition property="x86_or_x86_64" value="x86" else="x86_64">
+         <or>
+            <os arch="x86" />
+            <os arch="i386" />
+         </or>
+      </condition>
+
+      <condition property="optional.amd64.subdir" value="" else="amd64\">
+         <or>
+            <os arch="x86" />
+            <os arch="i386" />
+         </or>
+      </condition>
+
+      <condition property="optional.x64.subdir" value="" else="x64\">
+         <or>
+            <os arch="x86" />
+            <os arch="i386" />
+         </or>
+      </condition>
+
+
+      <available file="${msvc.dir}\vc\bin\${optional.amd64.subdir}cl.exe" type="file" property="cl.exists" />
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <isset property="use.msvc" />
+               <not>
+                  <isset property="cl.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         Could not find vc\bin\${optional.amd64.subdir}cl under Configured msvc.dir. Check if msvc.dir is pointing
+         to a valid visual studio installation
+         ]]>
+      </fail>
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <not>
+                  <os family="mac" />
+               </not>
+               <not>
+                  <isset property="amd.app.sdk.dir" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         You need to set amd.app.sdk.dir to point to the location where AMD APP SDK is installed
+         ]]>
+      </fail>
+      <available file="${amd.app.sdk.dir}" type="dir" property="amd.app.sdk.dir.exists" />
+
+      <fail message="Error:">
+         <condition>
+            <and>
+               <not>
+                  <os family="mac" />
+               </not>
+               <not>
+                  <isset property="amd.app.sdk.dir.exists" />
+               </not>
+            </and>
+         </condition>
+         <![CDATA[
+         You will need to edit com.amd.aparapi.jni/build.properties to compile aparapi JNI code
+
+         At present amd.app.sdk.dir is set (to ${amd.app.sdk.dir}) but that dir does not exist
+         ]]>
+      </fail>
+   </target>
+
+   <target name="clean" depends="check">
+      <delete dir="include" />
+      <delete dir="${basedir}/dist" />
+      <!-- Legacy cleanup -->
+      <delete file="libaparapi_${x86_or_x86_64}.dylib" />
+      <delete file="libaparapi_${x86_or_x86_64}.so" />
+      <delete file="aparapi_${x86_or_x86_64}.dll" />
+      <delete file="aparapi.dll" />
+      <delete file="aparapi.obj" />
+      <delete file="aparapi.o" />
+      <delete file="aparapi.lib" />
+      <delete file="aparapi.exp" />
+      <delete file="OpenCLJNI.obj" />
+      <delete file="OpenCLJNI.o" />
+      <delete file="Config.obj" />
+      <delete file="Config.o" />
+      <delete file="ProfileInfo.obj" />
+      <delete file="ProfileInfo.o" />
+      <delete file="ArrayBuffer.obj" />
+      <delete file="ArrayBuffer.o" />
+      <delete file="AparapiBuffer.obj" />
+      <delete file="AparapiBuffer.o" />
+      <delete file="JNIHelper.obj" />
+      <delete file="JNIHelper.o" />
+      <delete file="CLHelper.obj" />
+      <delete file="CLHelper.o" />
+      <delete file="JNIContext.obj" />
+      <delete file="JNIContext.o" />
+      <delete file="KernelArg.obj" />
+      <delete file="KernelArg.o" />
+      <delete file="Range.obj" />
+      <delete file="Range.o" />
+      <delete file="OpenCLArgDescriptor.obj" />
+      <delete file="OpenCLArgDescriptor.o" />
+      <delete file="agent.obj" />
+      <delete file="agent.o" />
+      <delete file="classtools.obj" />
+      <delete file="classtools.o" />
+      <delete file="OpenCLMem.obj" />
+      <delete file="OpenCLMem.o" />
+   </target>
+
+   <target name="javah">
+      <mkdir dir="include" />
+      <javah classpath="..\com.amd.aparapi\classes" destdir="include" force="true">
+         <class name="com.amd.aparapi.internal.jni.ConfigJNI" />
+         <class name="com.amd.aparapi.internal.jni.KernelArgJNI" />
+         <class name="com.amd.aparapi.internal.jni.KernelRunnerJNI" />
+         <class name="com.amd.aparapi.internal.jni.OpenCLJNI" />
+         <class name="com.amd.aparapi.internal.jni.RangeJNI" />
+         <!-- Non-Native Classes -->
+         <class name="com.amd.aparapi.Kernel"/>
+         <class name="com.amd.aparapi.Range"/>
+         <class name="com.amd.aparapi.Config" />
+         <class name="com.amd.aparapi.device.Device" />
+         <class name="com.amd.aparapi.device.OpenCLDevice" />
+         <class name="com.amd.aparapi.internal.kernel.KernelRunner"/>
+         <class name="com.amd.aparapi.internal.opencl.OpenCLArgDescriptor" />
+         <class name="com.amd.aparapi.internal.opencl.OpenCLMem" />
+      </javah>
+   </target>
+
+
+   <target name="gcc" if="use.gcc">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="linuxcc ${os.arch}" />
+      <exec executable="g++">
+        <!-- !!! oren change -> add debug info, no optimizations 
+         <arg value="-O3" />
+        -->
+      	 <!-- !!! oren change -> add support for ISO C++ 2011 (C++0x) requires GCC 4.3 and later -->      	
+      	 <arg value="-std=c++0x" />
+         <arg value="-O0" />
+         <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/linux" />
+         <arg value="-Iinclude" />
+         <arg value="-I${amd.app.sdk.dir}/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_${x86_or_x86_64}.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" />
+      	<!-- !!! oren change -> platform config settings -->
+         <arg value="src/cpp/runKernel/ConfigSettings.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${amd.app.sdk.dir}/lib/${x86_or_x86_64}" />
+         <arg value="-lOpenCL" />
+      </exec>
+   </target>
+
+   <target name="gcc_mac" if="use.gcc_mac">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc ${os.arch}" />
+      <exec executable="g++">
+         <arg value="-O3" />
+         <arg value="-g" />
+         <arg value="-fPIC" />
+         <!-- <arg value="-fopenmp"/> -->
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="-I/System/Library/Frameworks/JavaVM.framework/Headers" />
+         <arg value="-Iinclude" />
+         <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_${x86_or_x86_64}.dylib" />
+         <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="-framework" />
+         <arg value="OpenCL" />
+         <arg value="-Wno-write-strings" />
+      </exec>
+   </target>
+
+   <target name="msvc" if="use.msvc">
+      <mkdir dir="${basedir}\dist"/>
+      <echo message="msvc ${os.arch}" />
+      <exec executable="${msvc.dir}\vc\bin\${optional.amd64.subdir}cl.exe">
+         <env key="PATH" path="${env.PATH};${msvc.dir}\\Common7\\IDE" />
+         <arg value="/nologo" />
+         <arg value="/TP" />
+         <arg value="/Ox" />
+         <!-- <arg value="/openmp" /> -->
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="/EHsc" />
+         <arg value="/I${msvc.dir}\vc\include" />
+         <arg value="/I${msvc.sdk.dir}\include" />
+         <arg value="/I${java.home}\..\include" />
+         <arg value="/I${java.home}\..\include\win32" />
+         <arg value="/Iinclude" />
+         <arg value="/I${amd.app.sdk.dir}\include" />
+         <arg value="/Isrc/cpp" />
+         <arg value="/Isrc/cpp/runKernel" />
+         <arg value="/Isrc/cpp/invoke" />
+         <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="/LD" />
+         <arg value="/link" />
+         <arg value="/libpath:${msvc.dir}\vc\lib\${optional.amd64.subdir}" />
+         <arg value="/libpath:${msvc.sdk.dir}\lib\${optional.x64.subdir}" />
+         <arg value="/libpath:${amd.app.sdk.dir}\lib\${x86_or_x86_64}" />
+         <arg value="OpenCL.lib" />
+         <arg value="/out:${basedir}\dist\aparapi_${x86_or_x86_64}.dll" />
+      </exec>
+   </target>
+
+   <target name="mingw" if="use.mingw">
+      <mkdir dir="${basedir}\dist"/>
+      <echo message="mingw ${os.arch}" /> 
+      <exec executable="${mingw.dir}/bin/g++">
+         <env key="PATH" path="${env.PATH};${mingw.dir}/bin" />
+         <arg value="-Wall" />
+         <arg value="-O3" />
+         <arg value="-Wl,--kill-at" />
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="-I${java.home}\..\include" />
+         <arg value="-I${java.home}\..\include\win32" />
+         <arg value="-Iinclude" />
+         <arg value="-I${amd.app.sdk.dir}\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\aparapi_${x86_or_x86_64}.dll" />
+         <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${amd.app.sdk.dir}\lib\${x86_or_x86_64}" />
+         <arg value="-lOpenCL" />
+      </exec>
+   </target>
+
+   <target name="build" depends="clean, javah, msvc, mingw, gcc, gcc_mac" />
+
+   <target name="msvc_cltest" if="use.msvc">
+      <mkdir dir="${basedir}\dist"/>
+      <echo message="msvc_cltest ${os.arch}" />
+      <exec executable="${msvc.dir}\vc\bin\${optional.amd64.subdir}cl.exe">
+         <env key="PATH" path="${env.PATH};${msvc.dir}\\Common7\\IDE" />
+         <arg value="/nologo" />
+         <arg value="/TP" />
+         <arg value="/Ox" />
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="/I${msvc.dir}\vc\include" />
+         <arg value="/I${msvc.sdk.dir}\include" />
+         <arg value="/I${amd.app.sdk.dir}\include" />
+         <arg value="/Isrc/cpp" />
+         <arg value="/Isrc/cpp/runKernel" />
+         <arg value="/Isrc/cpp/invoke" />
+         <arg value="src\cpp\CLTest.cpp" />
+         <arg value="/link" />
+         <arg value="/libpath:${msvc.dir}\vc\lib\${optional.amd64.subdir}" />
+         <arg value="/libpath:${msvc.sdk.dir}\lib\${optional.x64.subdir}" />
+         <arg value="/libpath:${amd.app.sdk.dir}\lib\${x86_or_x86_64}" />
+         <arg value="OpenCL.lib" />
+         <arg value="/out:${basedir}/dist/cltest_${x86_or_x86_64}.exe" />
+      </exec>
+   </target>
+
+   <target name="mac_cltest" if="use.gcc_mac">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc cltest ${os.arch}" />
+      <exec executable="g++">
+         <arg value="-O3" />
+         <arg value="-g" />
+         <arg value="-fPIC" />
+         <arg value="-DCL_USE_DEPRECATED_OPENCL_1_1_APIS"/>
+         <arg value="-I/System/Library/Frameworks/JavaVM.framework/Headers" />
+         <arg value="-Iinclude" />
+         <arg value="-Isrc/cpp" />
+         <arg value="-Isrc/cpp/runKernel" />
+         <arg value="-Isrc/cpp/invoke" />
+         <arg value="-o" />
+         <arg value="${basedir}/dist/cltest" />
+         <arg value="src/cpp/CLTest.cpp" />
+         <arg value="-framework" />
+         <arg value="OpenCL" />
+      </exec>
+   </target>
+
+   <target name="gcc_cltest" if="use.gcc">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc cltest ${os.arch}" />
+      <exec executable="g++">
+         <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/linux" />
+         <arg value="-I${amd.app.sdk.dir}/include" />
+         <arg value="src/cpp/cltest.cpp" />
+         <arg value="-L${amd.app.sdk.dir}/lib/${x86_or_x86_64}" />
+         <arg value="-lOpenCL" />
+         <arg value="-o" />
+         <arg value="${basedir}/cltest_${x86_or_x86_64}" />
+      </exec>
+  </target>
+
+   <target name="gcc_clt" if="use.gcc">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc cltest ${os.arch}" />
+      <exec executable="g++">
+         <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="mac_clt" if="use.gcc_mac">
+      <mkdir dir="${basedir}/dist"/>
+      <echo message="gcc clt ${os.arch}" />
+      <exec executable="g++">
+         <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,gcc_cltest" />
+   <target name="clt" depends="check,gcc_clt,mac_clt" />
+</project>
diff --git a/cmake-build-debug/CMakeCache.txt b/cmake-build-debug/CMakeCache.txt
new file mode 100644
index 0000000000000000000000000000000000000000..83d14e5a50e983a046e71cb8322d168748b6e4ef
--- /dev/null
+++ b/cmake-build-debug/CMakeCache.txt
@@ -0,0 +1,329 @@
+# This is the CMakeCache file.
+# For build in directory: /home/freemo/source/aparapi-native/cmake-build-debug
+# It was generated by CMake: /opt/clion/bin/cmake/bin/cmake
+# You can edit this file to change values found and used by cmake.
+# If you do not want to change any of the values, simply exit the editor.
+# If you do want to change a value, simply edit, save, and exit the editor.
+# The syntax for the file is as follows:
+# KEY:TYPE=VALUE
+# KEY is the name of a variable in the cache.
+# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
+# VALUE is the current value for the KEY.
+
+########################
+# EXTERNAL cache entries
+########################
+
+//Path to a program.
+CMAKE_AR:FILEPATH=/usr/bin/ar
+
+//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or
+// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.
+CMAKE_BUILD_TYPE:STRING=Debug
+
+//The CodeBlocks executable
+CMAKE_CODEBLOCKS_EXECUTABLE:FILEPATH=CMAKE_CODEBLOCKS_EXECUTABLE-NOTFOUND
+
+//Additional command line arguments when CodeBlocks invokes make.
+// Enter e.g. -j<some_number> to get parallel builds
+CMAKE_CODEBLOCKS_MAKE_ARGUMENTS:STRING=-j8
+
+//Enable/Disable color output during build.
+CMAKE_COLOR_MAKEFILE:BOOL=ON
+
+//CXX compiler
+CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++
+
+//Flags used by the compiler during all build types.
+CMAKE_CXX_FLAGS:STRING=
+
+//Flags used by the compiler during debug builds.
+CMAKE_CXX_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the compiler during release builds for minimum
+// size.
+CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the compiler during release builds.
+CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the compiler during release builds with debug info.
+CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//C compiler
+CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc
+
+//Flags used by the compiler during all build types.
+CMAKE_C_FLAGS:STRING=
+
+//Flags used by the compiler during debug builds.
+CMAKE_C_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the compiler during release builds for minimum
+// size.
+CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the compiler during release builds.
+CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the compiler during release builds with debug info.
+CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//Flags used by the linker.
+CMAKE_EXE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Enable/Disable output of compile commands during generation.
+CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF
+
+//Install path prefix, prepended onto install directories.
+CMAKE_INSTALL_PREFIX:PATH=/usr/local
+
+//Path to a program.
+CMAKE_LINKER:FILEPATH=/usr/bin/ld
+
+//Path to a program.
+CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
+
+//Flags used by the linker during the creation of modules.
+CMAKE_MODULE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Path to a program.
+CMAKE_NM:FILEPATH=/usr/bin/nm
+
+//Path to a program.
+CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
+
+//Path to a program.
+CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
+
+//Value Computed by CMake
+CMAKE_PROJECT_NAME:STATIC=aparapi_native
+
+//Path to a program.
+CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
+
+//Flags used by the linker during the creation of dll's.
+CMAKE_SHARED_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//If set, runtime paths are not added when installing shared libraries,
+// but are added when building.
+CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
+
+//If set, runtime paths are not added when using shared libraries.
+CMAKE_SKIP_RPATH:BOOL=NO
+
+//Flags used by the linker during the creation of static libraries.
+CMAKE_STATIC_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Path to a program.
+CMAKE_STRIP:FILEPATH=/usr/bin/strip
+
+//If this value is on, makefiles will be generated without the
+// .SILENT directive, and all commands will be echoed to the console
+// during the make.  This is useful for debugging only. With Visual
+// Studio IDE projects all commands are done without /nologo.
+CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
+
+//Path to a program.
+ProcessorCount_cmd_getconf:FILEPATH=/usr/bin/getconf
+
+//Path to a program.
+ProcessorCount_cmd_sysctl:FILEPATH=/usr/bin/sysctl
+
+//Value Computed by CMake
+aparapi_native_BINARY_DIR:STATIC=/home/freemo/source/aparapi-native/cmake-build-debug
+
+//Value Computed by CMake
+aparapi_native_SOURCE_DIR:STATIC=/home/freemo/source/aparapi-native
+
+
+########################
+# INTERNAL cache entries
+########################
+
+//ADVANCED property for variable: CMAKE_AR
+CMAKE_AR-ADVANCED:INTERNAL=1
+//This is the directory where this CMakeCache.txt was created
+CMAKE_CACHEFILE_DIR:INTERNAL=/home/freemo/source/aparapi-native/cmake-build-debug
+//Major version of cmake used to create the current loaded cache
+CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
+//Minor version of cmake used to create the current loaded cache
+CMAKE_CACHE_MINOR_VERSION:INTERNAL=6
+//Patch version of cmake used to create the current loaded cache
+CMAKE_CACHE_PATCH_VERSION:INTERNAL=2
+//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
+CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
+//Path to CMake executable.
+CMAKE_COMMAND:INTERNAL=/opt/clion/bin/cmake/bin/cmake
+//Path to cpack program executable.
+CMAKE_CPACK_COMMAND:INTERNAL=/opt/clion/bin/cmake/bin/cpack
+//Path to ctest program executable.
+CMAKE_CTEST_COMMAND:INTERNAL=/opt/clion/bin/cmake/bin/ctest
+//ADVANCED property for variable: CMAKE_CXX_COMPILER
+CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS
+CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
+CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
+CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
+CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
+CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_COMPILER
+CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS
+CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
+CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
+CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
+CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
+CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//Executable file format
+CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
+CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
+CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
+CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
+CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
+//Name of external makefile project generator.
+CMAKE_EXTRA_GENERATOR:INTERNAL=CodeBlocks
+//CXX compiler system defined macros
+CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS:INTERNAL=__STDC__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__STDC_HOSTED__;1;__GNUC__;6;__GNUC_MINOR__;2;__GNUC_PATCHLEVEL__;1;__VERSION__;"6.2.1 20160830";__ATOMIC_RELAXED; ;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__FINITE_MATH_ONLY__; ;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_ABI_VERSION;1010;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__; ;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;((double)1.79769313486231570815e+308L);__DBL_MIN__;((double)2.22507385850720138309e-308L);__DBL_EPSILON__;((double)2.22044604925031308085e-16L);__DBL_DENORM_MIN__;((double)4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_STDC_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__GCC_ASM_FLAG_OUTPUTS__;1;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__SEG_FS;1;__SEG_GS;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201505L;__STDC_NO_THREADS__;1;__STDC__;1;__cplusplus;201402L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__STDC_HOSTED__;1;__GNUC__;6;__GNUC_MINOR__;2;__GNUC_PATCHLEVEL__;1;__VERSION__;"6.2.1 20160830";__ATOMIC_RELAXED; ;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__FINITE_MATH_ONLY__; ;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__GNUG__;6;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_WEAK__;1;__DEPRECATED;1;__GXX_RTTI;1;__cpp_rtti;199711;__GXX_EXPERIMENTAL_CXX0X__;1;__cpp_binary_literals;201304;__cpp_hex_float;201603;__cpp_runtime_arrays;198712;__cpp_unicode_characters;200704;__cpp_raw_strings;200710;__cpp_unicode_literals;200710;__cpp_user_defined_literals;200809;__cpp_lambdas;200907;__cpp_range_based_for;200907;__cpp_static_assert;200410;__cpp_decltype;200707;__cpp_attributes;200809;__cpp_rvalue_reference;200610;__cpp_rvalue_references;200610;__cpp_variadic_templates;200704;__cpp_initializer_lists;200806;__cpp_delegating_constructors;200604;__cpp_nsdmi;200809;__cpp_inheriting_constructors;200802;__cpp_ref_qualifiers;200710;__cpp_alias_templates;200704;__cpp_return_type_deduction;201304;__cpp_init_captures;201304;__cpp_generic_lambdas;201304;__cpp_constexpr;201304;__cpp_decltype_auto;201304;__cpp_aggregate_nsdmi;201304;__cpp_variable_templates;201304;__cpp_digit_separators;201309;__cpp_sized_deallocation;201309;__EXCEPTIONS;1;__cpp_exceptions;199711;__GXX_ABI_VERSION;1010;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__GLIBCXX_TYPE_INT_N_0;__int128;__GLIBCXX_BITSIZE_INT_N_0;128;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__; ;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;double(1.79769313486231570815e+308L);__DBL_MIN__;double(2.22507385850720138309e-308L);__DBL_EPSILON__;double(2.22044604925031308085e-16L);__DBL_DENORM_MIN__;double(4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_STDC_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__GCC_ASM_FLAG_OUTPUTS__;1;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__SEG_FS;1;__SEG_GS;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_GNU_SOURCE;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201505L;__STDC_NO_THREADS__;1
+//CXX compiler system include directories
+CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1;/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/x86_64-pc-linux-gnu;/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/backward;/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include;/usr/local/include;/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include-fixed;/usr/include
+//C compiler system defined macros
+CMAKE_EXTRA_GENERATOR_C_SYSTEM_DEFINED_MACROS:INTERNAL=__STDC__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__STDC_HOSTED__;1;__GNUC__;6;__GNUC_MINOR__;2;__GNUC_PATCHLEVEL__;1;__VERSION__;"6.2.1 20160830";__ATOMIC_RELAXED; ;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__FINITE_MATH_ONLY__; ;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_ABI_VERSION;1010;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__; ;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;((double)1.79769313486231570815e+308L);__DBL_MIN__;((double)2.22507385850720138309e-308L);__DBL_EPSILON__;((double)2.22044604925031308085e-16L);__DBL_DENORM_MIN__;((double)4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_STDC_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__GCC_ASM_FLAG_OUTPUTS__;1;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__SEG_FS;1;__SEG_GS;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201505L;__STDC_NO_THREADS__;1
+//C compiler system include directories
+CMAKE_EXTRA_GENERATOR_C_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include;/usr/local/include;/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include-fixed;/usr/include
+//Name of generator.
+CMAKE_GENERATOR:INTERNAL=Unix Makefiles
+//Name of generator platform.
+CMAKE_GENERATOR_PLATFORM:INTERNAL=
+//Name of generator toolset.
+CMAKE_GENERATOR_TOOLSET:INTERNAL=
+//Source directory with the top level CMakeLists.txt file for this
+// project
+CMAKE_HOME_DIRECTORY:INTERNAL=/home/freemo/source/aparapi-native
+//Install .so files without execute permission.
+CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0
+//ADVANCED property for variable: CMAKE_LINKER
+CMAKE_LINKER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
+CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
+CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
+CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
+CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_NM
+CMAKE_NM-ADVANCED:INTERNAL=1
+//number of local generators
+CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
+//ADVANCED property for variable: CMAKE_OBJCOPY
+CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_OBJDUMP
+CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RANLIB
+CMAKE_RANLIB-ADVANCED:INTERNAL=1
+//Path to CMake installation.
+CMAKE_ROOT:INTERNAL=/opt/clion/bin/cmake/share/cmake-3.6
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
+CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
+CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
+CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
+CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_RPATH
+CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
+CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
+CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
+CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STRIP
+CMAKE_STRIP-ADVANCED:INTERNAL=1
+//uname command
+CMAKE_UNAME:INTERNAL=/usr/bin/uname
+//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
+CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: ProcessorCount_cmd_getconf
+ProcessorCount_cmd_getconf-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: ProcessorCount_cmd_sysctl
+ProcessorCount_cmd_sysctl-ADVANCED:INTERNAL=1
+
diff --git a/cmake-build-debug/CMakeFiles/3.6.2/CMakeCCompiler.cmake b/cmake-build-debug/CMakeFiles/3.6.2/CMakeCCompiler.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..f0709327edc1cf69b916d7dc613f92e6ed4438aa
--- /dev/null
+++ b/cmake-build-debug/CMakeFiles/3.6.2/CMakeCCompiler.cmake
@@ -0,0 +1,67 @@
+set(CMAKE_C_COMPILER "/usr/bin/cc")
+set(CMAKE_C_COMPILER_ARG1 "")
+set(CMAKE_C_COMPILER_ID "GNU")
+set(CMAKE_C_COMPILER_VERSION "6.2.1")
+set(CMAKE_C_COMPILER_WRAPPER "")
+set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11")
+set(CMAKE_C_COMPILE_FEATURES "c_function_prototypes;c_restrict;c_variadic_macros;c_static_assert")
+set(CMAKE_C90_COMPILE_FEATURES "c_function_prototypes")
+set(CMAKE_C99_COMPILE_FEATURES "c_restrict;c_variadic_macros")
+set(CMAKE_C11_COMPILE_FEATURES "c_static_assert")
+
+set(CMAKE_C_PLATFORM_ID "Linux")
+set(CMAKE_C_SIMULATE_ID "")
+set(CMAKE_C_SIMULATE_VERSION "")
+
+set(CMAKE_AR "/usr/bin/ar")
+set(CMAKE_RANLIB "/usr/bin/ranlib")
+set(CMAKE_LINKER "/usr/bin/ld")
+set(CMAKE_COMPILER_IS_GNUCC 1)
+set(CMAKE_C_COMPILER_LOADED 1)
+set(CMAKE_C_COMPILER_WORKS TRUE)
+set(CMAKE_C_ABI_COMPILED TRUE)
+set(CMAKE_COMPILER_IS_MINGW )
+set(CMAKE_COMPILER_IS_CYGWIN )
+if(CMAKE_COMPILER_IS_CYGWIN)
+  set(CYGWIN 1)
+  set(UNIX 1)
+endif()
+
+set(CMAKE_C_COMPILER_ENV_VAR "CC")
+
+if(CMAKE_COMPILER_IS_MINGW)
+  set(MINGW 1)
+endif()
+set(CMAKE_C_COMPILER_ID_RUN 1)
+set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
+set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
+set(CMAKE_C_LINKER_PREFERENCE 10)
+
+# Save compiler ABI information.
+set(CMAKE_C_SIZEOF_DATA_PTR "8")
+set(CMAKE_C_COMPILER_ABI "ELF")
+set(CMAKE_C_LIBRARY_ARCHITECTURE "")
+
+if(CMAKE_C_SIZEOF_DATA_PTR)
+  set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_C_COMPILER_ABI)
+  set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
+endif()
+
+if(CMAKE_C_LIBRARY_ARCHITECTURE)
+  set(CMAKE_LIBRARY_ARCHITECTURE "")
+endif()
+
+set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
+if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
+  set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "c")
+set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1;/usr/lib;/lib")
+set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
diff --git a/cmake-build-debug/CMakeFiles/3.6.2/CMakeCXXCompiler.cmake b/cmake-build-debug/CMakeFiles/3.6.2/CMakeCXXCompiler.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..fc5685537311af16a8447419ef06558d32d046ff
--- /dev/null
+++ b/cmake-build-debug/CMakeFiles/3.6.2/CMakeCXXCompiler.cmake
@@ -0,0 +1,68 @@
+set(CMAKE_CXX_COMPILER "/usr/bin/c++")
+set(CMAKE_CXX_COMPILER_ARG1 "")
+set(CMAKE_CXX_COMPILER_ID "GNU")
+set(CMAKE_CXX_COMPILER_VERSION "6.2.1")
+set(CMAKE_CXX_COMPILER_WRAPPER "")
+set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14")
+set(CMAKE_CXX_COMPILE_FEATURES "cxx_template_template_parameters;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
+set(CMAKE_CXX98_COMPILE_FEATURES "cxx_template_template_parameters")
+set(CMAKE_CXX11_COMPILE_FEATURES "cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
+set(CMAKE_CXX14_COMPILE_FEATURES "cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
+
+set(CMAKE_CXX_PLATFORM_ID "Linux")
+set(CMAKE_CXX_SIMULATE_ID "")
+set(CMAKE_CXX_SIMULATE_VERSION "")
+
+set(CMAKE_AR "/usr/bin/ar")
+set(CMAKE_RANLIB "/usr/bin/ranlib")
+set(CMAKE_LINKER "/usr/bin/ld")
+set(CMAKE_COMPILER_IS_GNUCXX 1)
+set(CMAKE_CXX_COMPILER_LOADED 1)
+set(CMAKE_CXX_COMPILER_WORKS TRUE)
+set(CMAKE_CXX_ABI_COMPILED TRUE)
+set(CMAKE_COMPILER_IS_MINGW )
+set(CMAKE_COMPILER_IS_CYGWIN )
+if(CMAKE_COMPILER_IS_CYGWIN)
+  set(CYGWIN 1)
+  set(UNIX 1)
+endif()
+
+set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
+
+if(CMAKE_COMPILER_IS_MINGW)
+  set(MINGW 1)
+endif()
+set(CMAKE_CXX_COMPILER_ID_RUN 1)
+set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
+set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP)
+set(CMAKE_CXX_LINKER_PREFERENCE 30)
+set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
+
+# Save compiler ABI information.
+set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
+set(CMAKE_CXX_COMPILER_ABI "ELF")
+set(CMAKE_CXX_LIBRARY_ARCHITECTURE "")
+
+if(CMAKE_CXX_SIZEOF_DATA_PTR)
+  set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_CXX_COMPILER_ABI)
+  set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
+endif()
+
+if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
+  set(CMAKE_LIBRARY_ARCHITECTURE "")
+endif()
+
+set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
+if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
+  set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;c")
+set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1;/usr/lib;/lib")
+set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
diff --git a/cmake-build-debug/CMakeFiles/3.6.2/CMakeDetermineCompilerABI_C.bin b/cmake-build-debug/CMakeFiles/3.6.2/CMakeDetermineCompilerABI_C.bin
new file mode 100755
index 0000000000000000000000000000000000000000..7625d2b493656b13cd9ce55182ee59885bbb8fa1
Binary files /dev/null and b/cmake-build-debug/CMakeFiles/3.6.2/CMakeDetermineCompilerABI_C.bin differ
diff --git a/cmake-build-debug/CMakeFiles/3.6.2/CMakeDetermineCompilerABI_CXX.bin b/cmake-build-debug/CMakeFiles/3.6.2/CMakeDetermineCompilerABI_CXX.bin
new file mode 100755
index 0000000000000000000000000000000000000000..ad6fac60a58b56a28cdbbee478cd8e3e075bd155
Binary files /dev/null and b/cmake-build-debug/CMakeFiles/3.6.2/CMakeDetermineCompilerABI_CXX.bin differ
diff --git a/cmake-build-debug/CMakeFiles/3.6.2/CMakeSystem.cmake b/cmake-build-debug/CMakeFiles/3.6.2/CMakeSystem.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..4c97559782a92b64e11b470eb831a6b3d986b0b6
--- /dev/null
+++ b/cmake-build-debug/CMakeFiles/3.6.2/CMakeSystem.cmake
@@ -0,0 +1,15 @@
+set(CMAKE_HOST_SYSTEM "Linux-4.8.4-1-ARCH")
+set(CMAKE_HOST_SYSTEM_NAME "Linux")
+set(CMAKE_HOST_SYSTEM_VERSION "4.8.4-1-ARCH")
+set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
+
+
+
+set(CMAKE_SYSTEM "Linux-4.8.4-1-ARCH")
+set(CMAKE_SYSTEM_NAME "Linux")
+set(CMAKE_SYSTEM_VERSION "4.8.4-1-ARCH")
+set(CMAKE_SYSTEM_PROCESSOR "x86_64")
+
+set(CMAKE_CROSSCOMPILING "FALSE")
+
+set(CMAKE_SYSTEM_LOADED 1)
diff --git a/cmake-build-debug/CMakeFiles/3.6.2/CompilerIdC/CMakeCCompilerId.c b/cmake-build-debug/CMakeFiles/3.6.2/CompilerIdC/CMakeCCompilerId.c
new file mode 100644
index 0000000000000000000000000000000000000000..512e3606409146e554bb8288dcef740f8b20880f
--- /dev/null
+++ b/cmake-build-debug/CMakeFiles/3.6.2/CompilerIdC/CMakeCCompilerId.c
@@ -0,0 +1,561 @@
+#ifdef __cplusplus
+# error "A C++ compiler has been selected for C."
+#endif
+
+#if defined(__18CXX)
+# define ID_VOID_MAIN
+#endif
+#if defined(__CLASSIC_C__)
+/* cv-qualifiers did not exist in K&R C */
+# define const
+# define volatile
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+   Version date components:   YYYY=Year, MM=Month,   DD=Day  */
+
+#if defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+  /* __INTEL_COMPILER = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+  /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__     & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+  /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+   /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+   /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_C)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_C >= 0x5100
+   /* __SUNPRO_C = 0xVRRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)
+# else
+   /* __SUNPRO_CC = 0xVRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)
+# endif
+
+#elif defined(__HP_cc)
+# define COMPILER_ID "HP"
+  /* __HP_cc = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_cc     % 100)
+
+#elif defined(__DECC)
+# define COMPILER_ID "Compaq"
+  /* __DECC_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000  % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECC_VER         % 10000)
+
+#elif defined(__IBMC__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+  /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
+
+#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
+# define COMPILER_ID "XL"
+  /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
+
+#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
+# define COMPILER_ID "VisualAge"
+  /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
+
+#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
+# define COMPILER_ID "Fujitsu"
+
+#elif defined(__TINYC__)
+# define COMPILER_ID "TinyCC"
+
+#elif defined(__BCC__)
+# define COMPILER_ID "Bruce"
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__GNUC__)
+# define COMPILER_ID "GNU"
+# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# if defined(__GNUC_MINOR__)
+#  define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+  /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+#  if _MSC_VER >= 1400
+    /* _MSC_FULL_VER = VVRRPPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+#  else
+    /* _MSC_FULL_VER = VVRRPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+#  endif
+# endif
+# if defined(_MSC_BUILD)
+#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
+# define COMPILER_ID "ADSP"
+#if defined(__VISUALDSPVERSION__)
+  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
+# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
+# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+
+#elif defined(__ARMCC_VERSION)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+  /* __ARMCC_VERSION = VRRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION     % 10000)
+#else
+  /* __ARMCC_VERSION = VRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION    % 10000)
+#endif
+
+
+#elif defined(SDCC)
+# define COMPILER_ID "SDCC"
+  /* SDCC = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(SDCC/100)
+#  define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(SDCC    % 10)
+
+#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
+# define COMPILER_ID "MIPSpro"
+# if defined(_SGI_COMPILER_VERSION)
+  /* _SGI_COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION    % 10)
+# else
+  /* _COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION    % 10)
+# endif
+
+
+/* These compilers are either not known or too old to define an
+  identification macro.  Try to identify the platform and guess that
+  it is the native compiler.  */
+#elif defined(__sgi)
+# define COMPILER_ID "MIPSpro"
+
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXE) || defined(__CRAYXC)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name.  */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)
+# define PLATFORM_ID "IRIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+#  define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+#  define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+#  define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+#  define PLATFORM_ID "Windows3x"
+
+# else /* unknown platform */
+#  define PLATFORM_ID
+# endif
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+   the architecture of the compiler being used.  This is because
+   the compilers do not have flags that can change the architecture,
+   but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+#  define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+#  define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM)
+#  if _M_ARM == 4
+#   define ARCHITECTURE_ID "ARMV4I"
+#  elif _M_ARM == 5
+#   define ARCHITECTURE_ID "ARMV5I"
+#  else
+#   define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+#  endif
+
+# elif defined(_M_MIPS)
+#  define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+#  define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+#  define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#else
+#  define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals.  */
+#define DEC(n)                   \
+  ('0' + (((n) / 10000000)%10)), \
+  ('0' + (((n) / 1000000)%10)),  \
+  ('0' + (((n) / 100000)%10)),   \
+  ('0' + (((n) / 10000)%10)),    \
+  ('0' + (((n) / 1000)%10)),     \
+  ('0' + (((n) / 100)%10)),      \
+  ('0' + (((n) / 10)%10)),       \
+  ('0' +  ((n) % 10))
+
+/* Convert integer to hex digit literals.  */
+#define HEX(n)             \
+  ('0' + ((n)>>28 & 0xF)), \
+  ('0' + ((n)>>24 & 0xF)), \
+  ('0' + ((n)>>20 & 0xF)), \
+  ('0' + ((n)>>16 & 0xF)), \
+  ('0' + ((n)>>12 & 0xF)), \
+  ('0' + ((n)>>8  & 0xF)), \
+  ('0' + ((n)>>4  & 0xF)), \
+  ('0' + ((n)     & 0xF))
+
+/* Construct a string literal encoding the version number components. */
+#ifdef COMPILER_VERSION_MAJOR
+char const info_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+  COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+  '.', COMPILER_VERSION_MINOR,
+#  ifdef COMPILER_VERSION_PATCH
+   '.', COMPILER_VERSION_PATCH,
+#   ifdef COMPILER_VERSION_TWEAK
+    '.', COMPILER_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+  SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+  '.', SIMULATE_VERSION_MINOR,
+#  ifdef SIMULATE_VERSION_PATCH
+   '.', SIMULATE_VERSION_PATCH,
+#   ifdef SIMULATE_VERSION_TWEAK
+    '.', SIMULATE_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+
+#if !defined(__STDC__)
+# if defined(_MSC_VER) && !defined(__clang__)
+#  define C_DIALECT "90"
+# else
+#  define C_DIALECT
+# endif
+#elif __STDC_VERSION__ >= 201000L
+# define C_DIALECT "11"
+#elif __STDC_VERSION__ >= 199901L
+# define C_DIALECT "99"
+#else
+# define C_DIALECT "90"
+#endif
+const char* info_language_dialect_default =
+  "INFO" ":" "dialect_default[" C_DIALECT "]";
+
+/*--------------------------------------------------------------------------*/
+
+#ifdef ID_VOID_MAIN
+void main() {}
+#else
+# if defined(__CLASSIC_C__)
+int main(argc, argv) int argc; char *argv[];
+# else
+int main(int argc, char* argv[])
+# endif
+{
+  int require = 0;
+  require += info_compiler[argc];
+  require += info_platform[argc];
+  require += info_arch[argc];
+#ifdef COMPILER_VERSION_MAJOR
+  require += info_version[argc];
+#endif
+#ifdef SIMULATE_ID
+  require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+  require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXE) || defined(__CRAYXC)
+  require += info_cray[argc];
+#endif
+  require += info_language_dialect_default[argc];
+  (void)argv;
+  return require;
+}
+#endif
diff --git a/cmake-build-debug/CMakeFiles/3.6.2/CompilerIdC/a.out b/cmake-build-debug/CMakeFiles/3.6.2/CompilerIdC/a.out
new file mode 100755
index 0000000000000000000000000000000000000000..196f2878dcc178b5a0ec46554bf96b4b11ce1263
Binary files /dev/null and b/cmake-build-debug/CMakeFiles/3.6.2/CompilerIdC/a.out differ
diff --git a/cmake-build-debug/CMakeFiles/3.6.2/CompilerIdCXX/CMakeCXXCompilerId.cpp b/cmake-build-debug/CMakeFiles/3.6.2/CompilerIdCXX/CMakeCXXCompilerId.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..a6e6bedec4f7adf424f8ebaf03d7dba4adbaa432
--- /dev/null
+++ b/cmake-build-debug/CMakeFiles/3.6.2/CompilerIdCXX/CMakeCXXCompilerId.cpp
@@ -0,0 +1,533 @@
+/* This source file must have a .cpp extension so that all C++ compilers
+   recognize the extension without flags.  Borland does not know .cxx for
+   example.  */
+#ifndef __cplusplus
+# error "A C compiler has been selected for C++."
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+   Version date components:   YYYY=Year, MM=Month,   DD=Day  */
+
+#if defined(__COMO__)
+# define COMPILER_ID "Comeau"
+  /* __COMO_VERSION__ = VRR */
+# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
+# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
+
+#elif defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+  /* __INTEL_COMPILER = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+  /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__     & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+  /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+   /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+   /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_CC)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_CC >= 0x5100
+   /* __SUNPRO_CC = 0xVRRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
+# else
+   /* __SUNPRO_CC = 0xVRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
+# endif
+
+#elif defined(__HP_aCC)
+# define COMPILER_ID "HP"
+  /* __HP_aCC = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_aCC     % 100)
+
+#elif defined(__DECCXX)
+# define COMPILER_ID "Compaq"
+  /* __DECCXX_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000  % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER         % 10000)
+
+#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+  /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
+
+#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
+# define COMPILER_ID "XL"
+  /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
+
+#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
+# define COMPILER_ID "VisualAge"
+  /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
+
+#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
+# define COMPILER_ID "Fujitsu"
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__GNUC__)
+# define COMPILER_ID "GNU"
+# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# if defined(__GNUC_MINOR__)
+#  define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+  /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+#  if _MSC_VER >= 1400
+    /* _MSC_FULL_VER = VVRRPPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+#  else
+    /* _MSC_FULL_VER = VVRRPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+#  endif
+# endif
+# if defined(_MSC_BUILD)
+#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
+# define COMPILER_ID "ADSP"
+#if defined(__VISUALDSPVERSION__)
+  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
+# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
+# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+
+#elif defined(__ARMCC_VERSION)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+  /* __ARMCC_VERSION = VRRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION     % 10000)
+#else
+  /* __ARMCC_VERSION = VRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION    % 10000)
+#endif
+
+
+#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
+# define COMPILER_ID "MIPSpro"
+# if defined(_SGI_COMPILER_VERSION)
+  /* _SGI_COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION    % 10)
+# else
+  /* _COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION    % 10)
+# endif
+
+
+/* These compilers are either not known or too old to define an
+  identification macro.  Try to identify the platform and guess that
+  it is the native compiler.  */
+#elif defined(__sgi)
+# define COMPILER_ID "MIPSpro"
+
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXE) || defined(__CRAYXC)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name.  */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)
+# define PLATFORM_ID "IRIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+#  define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+#  define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+#  define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+#  define PLATFORM_ID "Windows3x"
+
+# else /* unknown platform */
+#  define PLATFORM_ID
+# endif
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+   the architecture of the compiler being used.  This is because
+   the compilers do not have flags that can change the architecture,
+   but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+#  define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+#  define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM)
+#  if _M_ARM == 4
+#   define ARCHITECTURE_ID "ARMV4I"
+#  elif _M_ARM == 5
+#   define ARCHITECTURE_ID "ARMV5I"
+#  else
+#   define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+#  endif
+
+# elif defined(_M_MIPS)
+#  define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+#  define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+#  define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#else
+#  define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals.  */
+#define DEC(n)                   \
+  ('0' + (((n) / 10000000)%10)), \
+  ('0' + (((n) / 1000000)%10)),  \
+  ('0' + (((n) / 100000)%10)),   \
+  ('0' + (((n) / 10000)%10)),    \
+  ('0' + (((n) / 1000)%10)),     \
+  ('0' + (((n) / 100)%10)),      \
+  ('0' + (((n) / 10)%10)),       \
+  ('0' +  ((n) % 10))
+
+/* Convert integer to hex digit literals.  */
+#define HEX(n)             \
+  ('0' + ((n)>>28 & 0xF)), \
+  ('0' + ((n)>>24 & 0xF)), \
+  ('0' + ((n)>>20 & 0xF)), \
+  ('0' + ((n)>>16 & 0xF)), \
+  ('0' + ((n)>>12 & 0xF)), \
+  ('0' + ((n)>>8  & 0xF)), \
+  ('0' + ((n)>>4  & 0xF)), \
+  ('0' + ((n)     & 0xF))
+
+/* Construct a string literal encoding the version number components. */
+#ifdef COMPILER_VERSION_MAJOR
+char const info_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+  COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+  '.', COMPILER_VERSION_MINOR,
+#  ifdef COMPILER_VERSION_PATCH
+   '.', COMPILER_VERSION_PATCH,
+#   ifdef COMPILER_VERSION_TWEAK
+    '.', COMPILER_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+  SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+  '.', SIMULATE_VERSION_MINOR,
+#  ifdef SIMULATE_VERSION_PATCH
+   '.', SIMULATE_VERSION_PATCH,
+#   ifdef SIMULATE_VERSION_TWEAK
+    '.', SIMULATE_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+
+const char* info_language_dialect_default = "INFO" ":" "dialect_default["
+#if __cplusplus >= 201402L
+  "14"
+#elif __cplusplus >= 201103L
+  "11"
+#else
+  "98"
+#endif
+"]";
+
+/*--------------------------------------------------------------------------*/
+
+int main(int argc, char* argv[])
+{
+  int require = 0;
+  require += info_compiler[argc];
+  require += info_platform[argc];
+#ifdef COMPILER_VERSION_MAJOR
+  require += info_version[argc];
+#endif
+#ifdef SIMULATE_ID
+  require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+  require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXE) || defined(__CRAYXC)
+  require += info_cray[argc];
+#endif
+  require += info_language_dialect_default[argc];
+  (void)argv;
+  return require;
+}
diff --git a/cmake-build-debug/CMakeFiles/3.6.2/CompilerIdCXX/a.out b/cmake-build-debug/CMakeFiles/3.6.2/CompilerIdCXX/a.out
new file mode 100755
index 0000000000000000000000000000000000000000..8bf638c8aa430efb52b12f066849a66c767ac33c
Binary files /dev/null and b/cmake-build-debug/CMakeFiles/3.6.2/CompilerIdCXX/a.out differ
diff --git a/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake b/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..2348f1d5dc23571bb24c4c643eaa144210c2bdc9
--- /dev/null
+++ b/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -0,0 +1,16 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.6
+
+# Relative path conversion top directories.
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/freemo/source/aparapi-native")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/freemo/source/aparapi-native/cmake-build-debug")
+
+# Force unix paths in dependencies.
+set(CMAKE_FORCE_UNIX_PATHS 1)
+
+
+# The C and CXX include file regular expressions for this directory.
+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/cmake-build-debug/CMakeFiles/CMakeOutput.log b/cmake-build-debug/CMakeFiles/CMakeOutput.log
new file mode 100644
index 0000000000000000000000000000000000000000..c66bffdf2ca069cd9dba78cdfd17a82ec531ad40
--- /dev/null
+++ b/cmake-build-debug/CMakeFiles/CMakeOutput.log
@@ -0,0 +1,536 @@
+The system is: Linux - 4.8.4-1-ARCH - x86_64
+Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+Compiler: /usr/bin/cc 
+Build flags: 
+Id flags: 
+
+The output was:
+0
+
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"
+
+The C compiler identification is GNU, found in "/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/3.6.2/CompilerIdC/a.out"
+
+Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
+Compiler: /usr/bin/c++ 
+Build flags: 
+Id flags: 
+
+The output was:
+0
+
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"
+
+The CXX compiler identification is GNU, found in "/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/3.6.2/CompilerIdCXX/a.out"
+
+Determining if the C compiler works passed with the following output:
+Change Dir: /home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_e5427/fast"
+/usr/bin/make -f CMakeFiles/cmTC_e5427.dir/build.make CMakeFiles/cmTC_e5427.dir/build
+make[1]: Entering directory '/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_e5427.dir/testCCompiler.c.o
+/usr/bin/cc     -o CMakeFiles/cmTC_e5427.dir/testCCompiler.c.o   -c /home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp/testCCompiler.c
+Linking C executable cmTC_e5427
+/opt/clion/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e5427.dir/link.txt --verbose=1
+/usr/bin/cc       CMakeFiles/cmTC_e5427.dir/testCCompiler.c.o  -o cmTC_e5427 
+make[1]: Leaving directory '/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp'
+
+
+Detecting C compiler ABI info compiled with the following output:
+Change Dir: /home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_4b56f/fast"
+/usr/bin/make -f CMakeFiles/cmTC_4b56f.dir/build.make CMakeFiles/cmTC_4b56f.dir/build
+make[1]: Entering directory '/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_4b56f.dir/CMakeCCompilerABI.c.o
+/usr/bin/cc     -o CMakeFiles/cmTC_4b56f.dir/CMakeCCompilerABI.c.o   -c /opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeCCompilerABI.c
+Linking C executable cmTC_4b56f
+/opt/clion/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_4b56f.dir/link.txt --verbose=1
+/usr/bin/cc      -v CMakeFiles/cmTC_4b56f.dir/CMakeCCompilerABI.c.o  -o cmTC_4b56f  
+Using built-in specs.
+COLLECT_GCC=/usr/bin/cc
+COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/lto-wrapper
+Target: x86_64-pc-linux-gnu
+Configured with: /build/gcc-multilib/src/gcc/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --enable-libmpx --with-system-zlib --with-isl --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu --enable-gnu-indirect-function --enable-multilib --disable-werror --enable-checking=release
+Thread model: posix
+gcc version 6.2.1 20160830 (GCC) 
+COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_4b56f' '-mtune=generic' '-march=x86-64'
+ /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccm353JP.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTC_4b56f /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/crt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/crtbegin.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../.. CMakeFiles/cmTC_4b56f.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/crtend.o /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/crtn.o
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_4b56f' '-mtune=generic' '-march=x86-64'
+make[1]: Leaving directory '/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp'
+
+
+Parsed C implicit link information from above output:
+  link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)]
+  ignore line: [Change Dir: /home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp]
+  ignore line: []
+  ignore line: [Run Build Command:"/usr/bin/make" "cmTC_4b56f/fast"]
+  ignore line: [/usr/bin/make -f CMakeFiles/cmTC_4b56f.dir/build.make CMakeFiles/cmTC_4b56f.dir/build]
+  ignore line: [make[1]: Entering directory '/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp']
+  ignore line: [Building C object CMakeFiles/cmTC_4b56f.dir/CMakeCCompilerABI.c.o]
+  ignore line: [/usr/bin/cc     -o CMakeFiles/cmTC_4b56f.dir/CMakeCCompilerABI.c.o   -c /opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeCCompilerABI.c]
+  ignore line: [Linking C executable cmTC_4b56f]
+  ignore line: [/opt/clion/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_4b56f.dir/link.txt --verbose=1]
+  ignore line: [/usr/bin/cc      -v CMakeFiles/cmTC_4b56f.dir/CMakeCCompilerABI.c.o  -o cmTC_4b56f  ]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/cc]
+  ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/lto-wrapper]
+  ignore line: [Target: x86_64-pc-linux-gnu]
+  ignore line: [Configured with: /build/gcc-multilib/src/gcc/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --enable-libmpx --with-system-zlib --with-isl --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu --enable-gnu-indirect-function --enable-multilib --disable-werror --enable-checking=release]
+  ignore line: [Thread model: posix]
+  ignore line: [gcc version 6.2.1 20160830 (GCC) ]
+  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_4b56f' '-mtune=generic' '-march=x86-64']
+  link line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccm353JP.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTC_4b56f /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/crt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/crtbegin.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../.. CMakeFiles/cmTC_4b56f.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/crtend.o /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/crtn.o]
+    arg [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/collect2] ==> ignore
+    arg [-plugin] ==> ignore
+    arg [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/liblto_plugin.so] ==> ignore
+    arg [-plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/lto-wrapper] ==> ignore
+    arg [-plugin-opt=-fresolution=/tmp/ccm353JP.res] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [--build-id] ==> ignore
+    arg [--eh-frame-hdr] ==> ignore
+    arg [--hash-style=gnu] ==> ignore
+    arg [-m] ==> ignore
+    arg [elf_x86_64] ==> ignore
+    arg [-dynamic-linker] ==> ignore
+    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
+    arg [-o] ==> ignore
+    arg [cmTC_4b56f] ==> ignore
+    arg [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/crt1.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/crti.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/crtbegin.o] ==> ignore
+    arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1]
+    arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib]
+    arg [-L/lib/../lib] ==> dir [/lib/../lib]
+    arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
+    arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../..] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../..]
+    arg [CMakeFiles/cmTC_4b56f.dir/CMakeCCompilerABI.c.o] ==> ignore
+    arg [-lgcc] ==> lib [gcc]
+    arg [--as-needed] ==> ignore
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [--no-as-needed] ==> ignore
+    arg [-lc] ==> lib [c]
+    arg [-lgcc] ==> lib [gcc]
+    arg [--as-needed] ==> ignore
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [--no-as-needed] ==> ignore
+    arg [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/crtend.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/crtn.o] ==> ignore
+  remove lib [gcc]
+  remove lib [gcc_s]
+  remove lib [gcc]
+  remove lib [gcc_s]
+  collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1]
+  collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib] ==> [/usr/lib]
+  collapse library dir [/lib/../lib] ==> [/lib]
+  collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
+  collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../..] ==> [/usr/lib]
+  implicit libs: [c]
+  implicit dirs: [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1;/usr/lib;/lib]
+  implicit fwks: []
+
+
+
+
+Detecting C [-std=c11] compiler features compiled with the following output:
+Change Dir: /home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_46bc1/fast"
+/usr/bin/make -f CMakeFiles/cmTC_46bc1.dir/build.make CMakeFiles/cmTC_46bc1.dir/build
+make[1]: Entering directory '/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_46bc1.dir/feature_tests.c.o
+/usr/bin/cc    -std=c11 -o CMakeFiles/cmTC_46bc1.dir/feature_tests.c.o   -c /home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/feature_tests.c
+Linking C executable cmTC_46bc1
+/opt/clion/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_46bc1.dir/link.txt --verbose=1
+/usr/bin/cc       CMakeFiles/cmTC_46bc1.dir/feature_tests.c.o  -o cmTC_46bc1 
+make[1]: Leaving directory '/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp'
+
+
+    Feature record: C_FEATURE:1c_function_prototypes
+    Feature record: C_FEATURE:1c_restrict
+    Feature record: C_FEATURE:1c_static_assert
+    Feature record: C_FEATURE:1c_variadic_macros
+
+
+Detecting C [-std=c99] compiler features compiled with the following output:
+Change Dir: /home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_2ae6f/fast"
+/usr/bin/make -f CMakeFiles/cmTC_2ae6f.dir/build.make CMakeFiles/cmTC_2ae6f.dir/build
+make[1]: Entering directory '/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_2ae6f.dir/feature_tests.c.o
+/usr/bin/cc    -std=c99 -o CMakeFiles/cmTC_2ae6f.dir/feature_tests.c.o   -c /home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/feature_tests.c
+Linking C executable cmTC_2ae6f
+/opt/clion/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_2ae6f.dir/link.txt --verbose=1
+/usr/bin/cc       CMakeFiles/cmTC_2ae6f.dir/feature_tests.c.o  -o cmTC_2ae6f 
+make[1]: Leaving directory '/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp'
+
+
+    Feature record: C_FEATURE:1c_function_prototypes
+    Feature record: C_FEATURE:1c_restrict
+    Feature record: C_FEATURE:0c_static_assert
+    Feature record: C_FEATURE:1c_variadic_macros
+
+
+Detecting C [-std=c90] compiler features compiled with the following output:
+Change Dir: /home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_ac31b/fast"
+/usr/bin/make -f CMakeFiles/cmTC_ac31b.dir/build.make CMakeFiles/cmTC_ac31b.dir/build
+make[1]: Entering directory '/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_ac31b.dir/feature_tests.c.o
+/usr/bin/cc    -std=c90 -o CMakeFiles/cmTC_ac31b.dir/feature_tests.c.o   -c /home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/feature_tests.c
+Linking C executable cmTC_ac31b
+/opt/clion/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ac31b.dir/link.txt --verbose=1
+/usr/bin/cc       CMakeFiles/cmTC_ac31b.dir/feature_tests.c.o  -o cmTC_ac31b 
+make[1]: Leaving directory '/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp'
+
+
+    Feature record: C_FEATURE:1c_function_prototypes
+    Feature record: C_FEATURE:0c_restrict
+    Feature record: C_FEATURE:0c_static_assert
+    Feature record: C_FEATURE:0c_variadic_macros
+Determining if the CXX compiler works passed with the following output:
+Change Dir: /home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_9866a/fast"
+/usr/bin/make -f CMakeFiles/cmTC_9866a.dir/build.make CMakeFiles/cmTC_9866a.dir/build
+make[1]: Entering directory '/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_9866a.dir/testCXXCompiler.cxx.o
+/usr/bin/c++      -o CMakeFiles/cmTC_9866a.dir/testCXXCompiler.cxx.o -c /home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
+Linking CXX executable cmTC_9866a
+/opt/clion/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9866a.dir/link.txt --verbose=1
+/usr/bin/c++        CMakeFiles/cmTC_9866a.dir/testCXXCompiler.cxx.o  -o cmTC_9866a 
+make[1]: Leaving directory '/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp'
+
+
+Detecting CXX compiler ABI info compiled with the following output:
+Change Dir: /home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_fae08/fast"
+/usr/bin/make -f CMakeFiles/cmTC_fae08.dir/build.make CMakeFiles/cmTC_fae08.dir/build
+make[1]: Entering directory '/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_fae08.dir/CMakeCXXCompilerABI.cpp.o
+/usr/bin/c++      -o CMakeFiles/cmTC_fae08.dir/CMakeCXXCompilerABI.cpp.o -c /opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeCXXCompilerABI.cpp
+Linking CXX executable cmTC_fae08
+/opt/clion/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_fae08.dir/link.txt --verbose=1
+/usr/bin/c++       -v CMakeFiles/cmTC_fae08.dir/CMakeCXXCompilerABI.cpp.o  -o cmTC_fae08  
+Using built-in specs.
+COLLECT_GCC=/usr/bin/c++
+COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/lto-wrapper
+Target: x86_64-pc-linux-gnu
+Configured with: /build/gcc-multilib/src/gcc/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --enable-libmpx --with-system-zlib --with-isl --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu --enable-gnu-indirect-function --enable-multilib --disable-werror --enable-checking=release
+Thread model: posix
+gcc version 6.2.1 20160830 (GCC) 
+COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_fae08' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
+ /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/cc7J9Nme.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTC_fae08 /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/crt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/crtbegin.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../.. CMakeFiles/cmTC_fae08.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/crtend.o /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/crtn.o
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_fae08' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
+make[1]: Leaving directory '/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp'
+
+
+Parsed CXX implicit link information from above output:
+  link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)]
+  ignore line: [Change Dir: /home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp]
+  ignore line: []
+  ignore line: [Run Build Command:"/usr/bin/make" "cmTC_fae08/fast"]
+  ignore line: [/usr/bin/make -f CMakeFiles/cmTC_fae08.dir/build.make CMakeFiles/cmTC_fae08.dir/build]
+  ignore line: [make[1]: Entering directory '/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp']
+  ignore line: [Building CXX object CMakeFiles/cmTC_fae08.dir/CMakeCXXCompilerABI.cpp.o]
+  ignore line: [/usr/bin/c++      -o CMakeFiles/cmTC_fae08.dir/CMakeCXXCompilerABI.cpp.o -c /opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeCXXCompilerABI.cpp]
+  ignore line: [Linking CXX executable cmTC_fae08]
+  ignore line: [/opt/clion/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_fae08.dir/link.txt --verbose=1]
+  ignore line: [/usr/bin/c++       -v CMakeFiles/cmTC_fae08.dir/CMakeCXXCompilerABI.cpp.o  -o cmTC_fae08  ]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/c++]
+  ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/lto-wrapper]
+  ignore line: [Target: x86_64-pc-linux-gnu]
+  ignore line: [Configured with: /build/gcc-multilib/src/gcc/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --enable-libmpx --with-system-zlib --with-isl --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu --enable-gnu-indirect-function --enable-multilib --disable-werror --enable-checking=release]
+  ignore line: [Thread model: posix]
+  ignore line: [gcc version 6.2.1 20160830 (GCC) ]
+  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_fae08' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
+  link line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/cc7J9Nme.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTC_fae08 /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/crt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/crtbegin.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../.. CMakeFiles/cmTC_fae08.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/crtend.o /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/crtn.o]
+    arg [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/collect2] ==> ignore
+    arg [-plugin] ==> ignore
+    arg [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/liblto_plugin.so] ==> ignore
+    arg [-plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/lto-wrapper] ==> ignore
+    arg [-plugin-opt=-fresolution=/tmp/cc7J9Nme.res] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [--build-id] ==> ignore
+    arg [--eh-frame-hdr] ==> ignore
+    arg [--hash-style=gnu] ==> ignore
+    arg [-m] ==> ignore
+    arg [elf_x86_64] ==> ignore
+    arg [-dynamic-linker] ==> ignore
+    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
+    arg [-o] ==> ignore
+    arg [cmTC_fae08] ==> ignore
+    arg [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/crt1.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/crti.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/crtbegin.o] ==> ignore
+    arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1]
+    arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib]
+    arg [-L/lib/../lib] ==> dir [/lib/../lib]
+    arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
+    arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../..] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../..]
+    arg [CMakeFiles/cmTC_fae08.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
+    arg [-lstdc++] ==> lib [stdc++]
+    arg [-lm] ==> lib [m]
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [-lgcc] ==> lib [gcc]
+    arg [-lc] ==> lib [c]
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [-lgcc] ==> lib [gcc]
+    arg [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/crtend.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/crtn.o] ==> ignore
+  remove lib [gcc_s]
+  remove lib [gcc]
+  remove lib [gcc_s]
+  remove lib [gcc]
+  collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1]
+  collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib] ==> [/usr/lib]
+  collapse library dir [/lib/../lib] ==> [/lib]
+  collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
+  collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../..] ==> [/usr/lib]
+  implicit libs: [stdc++;m;c]
+  implicit dirs: [/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1;/usr/lib;/lib]
+  implicit fwks: []
+
+
+
+
+Detecting CXX [-std=c++14] compiler features compiled with the following output:
+Change Dir: /home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_1fadc/fast"
+/usr/bin/make -f CMakeFiles/cmTC_1fadc.dir/build.make CMakeFiles/cmTC_1fadc.dir/build
+make[1]: Entering directory '/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_1fadc.dir/feature_tests.cxx.o
+/usr/bin/c++     -std=c++14 -o CMakeFiles/cmTC_1fadc.dir/feature_tests.cxx.o -c /home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/feature_tests.cxx
+Linking CXX executable cmTC_1fadc
+/opt/clion/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1fadc.dir/link.txt --verbose=1
+/usr/bin/c++        CMakeFiles/cmTC_1fadc.dir/feature_tests.cxx.o  -o cmTC_1fadc 
+make[1]: Leaving directory '/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp'
+
+
+    Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers
+    Feature record: CXX_FEATURE:1cxx_alias_templates
+    Feature record: CXX_FEATURE:1cxx_alignas
+    Feature record: CXX_FEATURE:1cxx_alignof
+    Feature record: CXX_FEATURE:1cxx_attributes
+    Feature record: CXX_FEATURE:1cxx_attribute_deprecated
+    Feature record: CXX_FEATURE:1cxx_auto_type
+    Feature record: CXX_FEATURE:1cxx_binary_literals
+    Feature record: CXX_FEATURE:1cxx_constexpr
+    Feature record: CXX_FEATURE:1cxx_contextual_conversions
+    Feature record: CXX_FEATURE:1cxx_decltype
+    Feature record: CXX_FEATURE:1cxx_decltype_auto
+    Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types
+    Feature record: CXX_FEATURE:1cxx_default_function_template_args
+    Feature record: CXX_FEATURE:1cxx_defaulted_functions
+    Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers
+    Feature record: CXX_FEATURE:1cxx_delegating_constructors
+    Feature record: CXX_FEATURE:1cxx_deleted_functions
+    Feature record: CXX_FEATURE:1cxx_digit_separators
+    Feature record: CXX_FEATURE:1cxx_enum_forward_declarations
+    Feature record: CXX_FEATURE:1cxx_explicit_conversions
+    Feature record: CXX_FEATURE:1cxx_extended_friend_declarations
+    Feature record: CXX_FEATURE:1cxx_extern_templates
+    Feature record: CXX_FEATURE:1cxx_final
+    Feature record: CXX_FEATURE:1cxx_func_identifier
+    Feature record: CXX_FEATURE:1cxx_generalized_initializers
+    Feature record: CXX_FEATURE:1cxx_generic_lambdas
+    Feature record: CXX_FEATURE:1cxx_inheriting_constructors
+    Feature record: CXX_FEATURE:1cxx_inline_namespaces
+    Feature record: CXX_FEATURE:1cxx_lambdas
+    Feature record: CXX_FEATURE:1cxx_lambda_init_captures
+    Feature record: CXX_FEATURE:1cxx_local_type_template_args
+    Feature record: CXX_FEATURE:1cxx_long_long_type
+    Feature record: CXX_FEATURE:1cxx_noexcept
+    Feature record: CXX_FEATURE:1cxx_nonstatic_member_init
+    Feature record: CXX_FEATURE:1cxx_nullptr
+    Feature record: CXX_FEATURE:1cxx_override
+    Feature record: CXX_FEATURE:1cxx_range_for
+    Feature record: CXX_FEATURE:1cxx_raw_string_literals
+    Feature record: CXX_FEATURE:1cxx_reference_qualified_functions
+    Feature record: CXX_FEATURE:1cxx_relaxed_constexpr
+    Feature record: CXX_FEATURE:1cxx_return_type_deduction
+    Feature record: CXX_FEATURE:1cxx_right_angle_brackets
+    Feature record: CXX_FEATURE:1cxx_rvalue_references
+    Feature record: CXX_FEATURE:1cxx_sizeof_member
+    Feature record: CXX_FEATURE:1cxx_static_assert
+    Feature record: CXX_FEATURE:1cxx_strong_enums
+    Feature record: CXX_FEATURE:1cxx_template_template_parameters
+    Feature record: CXX_FEATURE:1cxx_thread_local
+    Feature record: CXX_FEATURE:1cxx_trailing_return_types
+    Feature record: CXX_FEATURE:1cxx_unicode_literals
+    Feature record: CXX_FEATURE:1cxx_uniform_initialization
+    Feature record: CXX_FEATURE:1cxx_unrestricted_unions
+    Feature record: CXX_FEATURE:1cxx_user_literals
+    Feature record: CXX_FEATURE:1cxx_variable_templates
+    Feature record: CXX_FEATURE:1cxx_variadic_macros
+    Feature record: CXX_FEATURE:1cxx_variadic_templates
+
+
+Detecting CXX [-std=c++11] compiler features compiled with the following output:
+Change Dir: /home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_4c1fd/fast"
+/usr/bin/make -f CMakeFiles/cmTC_4c1fd.dir/build.make CMakeFiles/cmTC_4c1fd.dir/build
+make[1]: Entering directory '/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_4c1fd.dir/feature_tests.cxx.o
+/usr/bin/c++     -std=c++11 -o CMakeFiles/cmTC_4c1fd.dir/feature_tests.cxx.o -c /home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/feature_tests.cxx
+Linking CXX executable cmTC_4c1fd
+/opt/clion/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_4c1fd.dir/link.txt --verbose=1
+/usr/bin/c++        CMakeFiles/cmTC_4c1fd.dir/feature_tests.cxx.o  -o cmTC_4c1fd 
+make[1]: Leaving directory '/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp'
+
+
+    Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers
+    Feature record: CXX_FEATURE:1cxx_alias_templates
+    Feature record: CXX_FEATURE:1cxx_alignas
+    Feature record: CXX_FEATURE:1cxx_alignof
+    Feature record: CXX_FEATURE:1cxx_attributes
+    Feature record: CXX_FEATURE:0cxx_attribute_deprecated
+    Feature record: CXX_FEATURE:1cxx_auto_type
+    Feature record: CXX_FEATURE:0cxx_binary_literals
+    Feature record: CXX_FEATURE:1cxx_constexpr
+    Feature record: CXX_FEATURE:0cxx_contextual_conversions
+    Feature record: CXX_FEATURE:1cxx_decltype
+    Feature record: CXX_FEATURE:0cxx_decltype_auto
+    Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types
+    Feature record: CXX_FEATURE:1cxx_default_function_template_args
+    Feature record: CXX_FEATURE:1cxx_defaulted_functions
+    Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers
+    Feature record: CXX_FEATURE:1cxx_delegating_constructors
+    Feature record: CXX_FEATURE:1cxx_deleted_functions
+    Feature record: CXX_FEATURE:0cxx_digit_separators
+    Feature record: CXX_FEATURE:1cxx_enum_forward_declarations
+    Feature record: CXX_FEATURE:1cxx_explicit_conversions
+    Feature record: CXX_FEATURE:1cxx_extended_friend_declarations
+    Feature record: CXX_FEATURE:1cxx_extern_templates
+    Feature record: CXX_FEATURE:1cxx_final
+    Feature record: CXX_FEATURE:1cxx_func_identifier
+    Feature record: CXX_FEATURE:1cxx_generalized_initializers
+    Feature record: CXX_FEATURE:0cxx_generic_lambdas
+    Feature record: CXX_FEATURE:1cxx_inheriting_constructors
+    Feature record: CXX_FEATURE:1cxx_inline_namespaces
+    Feature record: CXX_FEATURE:1cxx_lambdas
+    Feature record: CXX_FEATURE:0cxx_lambda_init_captures
+    Feature record: CXX_FEATURE:1cxx_local_type_template_args
+    Feature record: CXX_FEATURE:1cxx_long_long_type
+    Feature record: CXX_FEATURE:1cxx_noexcept
+    Feature record: CXX_FEATURE:1cxx_nonstatic_member_init
+    Feature record: CXX_FEATURE:1cxx_nullptr
+    Feature record: CXX_FEATURE:1cxx_override
+    Feature record: CXX_FEATURE:1cxx_range_for
+    Feature record: CXX_FEATURE:1cxx_raw_string_literals
+    Feature record: CXX_FEATURE:1cxx_reference_qualified_functions
+    Feature record: CXX_FEATURE:0cxx_relaxed_constexpr
+    Feature record: CXX_FEATURE:0cxx_return_type_deduction
+    Feature record: CXX_FEATURE:1cxx_right_angle_brackets
+    Feature record: CXX_FEATURE:1cxx_rvalue_references
+    Feature record: CXX_FEATURE:1cxx_sizeof_member
+    Feature record: CXX_FEATURE:1cxx_static_assert
+    Feature record: CXX_FEATURE:1cxx_strong_enums
+    Feature record: CXX_FEATURE:1cxx_template_template_parameters
+    Feature record: CXX_FEATURE:1cxx_thread_local
+    Feature record: CXX_FEATURE:1cxx_trailing_return_types
+    Feature record: CXX_FEATURE:1cxx_unicode_literals
+    Feature record: CXX_FEATURE:1cxx_uniform_initialization
+    Feature record: CXX_FEATURE:1cxx_unrestricted_unions
+    Feature record: CXX_FEATURE:1cxx_user_literals
+    Feature record: CXX_FEATURE:0cxx_variable_templates
+    Feature record: CXX_FEATURE:1cxx_variadic_macros
+    Feature record: CXX_FEATURE:1cxx_variadic_templates
+
+
+Detecting CXX [-std=c++98] compiler features compiled with the following output:
+Change Dir: /home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_8ba01/fast"
+/usr/bin/make -f CMakeFiles/cmTC_8ba01.dir/build.make CMakeFiles/cmTC_8ba01.dir/build
+make[1]: Entering directory '/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_8ba01.dir/feature_tests.cxx.o
+/usr/bin/c++     -std=c++98 -o CMakeFiles/cmTC_8ba01.dir/feature_tests.cxx.o -c /home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/feature_tests.cxx
+Linking CXX executable cmTC_8ba01
+/opt/clion/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_8ba01.dir/link.txt --verbose=1
+/usr/bin/c++        CMakeFiles/cmTC_8ba01.dir/feature_tests.cxx.o  -o cmTC_8ba01 
+make[1]: Leaving directory '/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/CMakeTmp'
+
+
+    Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers
+    Feature record: CXX_FEATURE:0cxx_alias_templates
+    Feature record: CXX_FEATURE:0cxx_alignas
+    Feature record: CXX_FEATURE:0cxx_alignof
+    Feature record: CXX_FEATURE:0cxx_attributes
+    Feature record: CXX_FEATURE:0cxx_attribute_deprecated
+    Feature record: CXX_FEATURE:0cxx_auto_type
+    Feature record: CXX_FEATURE:0cxx_binary_literals
+    Feature record: CXX_FEATURE:0cxx_constexpr
+    Feature record: CXX_FEATURE:0cxx_contextual_conversions
+    Feature record: CXX_FEATURE:0cxx_decltype
+    Feature record: CXX_FEATURE:0cxx_decltype_auto
+    Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types
+    Feature record: CXX_FEATURE:0cxx_default_function_template_args
+    Feature record: CXX_FEATURE:0cxx_defaulted_functions
+    Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers
+    Feature record: CXX_FEATURE:0cxx_delegating_constructors
+    Feature record: CXX_FEATURE:0cxx_deleted_functions
+    Feature record: CXX_FEATURE:0cxx_digit_separators
+    Feature record: CXX_FEATURE:0cxx_enum_forward_declarations
+    Feature record: CXX_FEATURE:0cxx_explicit_conversions
+    Feature record: CXX_FEATURE:0cxx_extended_friend_declarations
+    Feature record: CXX_FEATURE:0cxx_extern_templates
+    Feature record: CXX_FEATURE:0cxx_final
+    Feature record: CXX_FEATURE:0cxx_func_identifier
+    Feature record: CXX_FEATURE:0cxx_generalized_initializers
+    Feature record: CXX_FEATURE:0cxx_generic_lambdas
+    Feature record: CXX_FEATURE:0cxx_inheriting_constructors
+    Feature record: CXX_FEATURE:0cxx_inline_namespaces
+    Feature record: CXX_FEATURE:0cxx_lambdas
+    Feature record: CXX_FEATURE:0cxx_lambda_init_captures
+    Feature record: CXX_FEATURE:0cxx_local_type_template_args
+    Feature record: CXX_FEATURE:0cxx_long_long_type
+    Feature record: CXX_FEATURE:0cxx_noexcept
+    Feature record: CXX_FEATURE:0cxx_nonstatic_member_init
+    Feature record: CXX_FEATURE:0cxx_nullptr
+    Feature record: CXX_FEATURE:0cxx_override
+    Feature record: CXX_FEATURE:0cxx_range_for
+    Feature record: CXX_FEATURE:0cxx_raw_string_literals
+    Feature record: CXX_FEATURE:0cxx_reference_qualified_functions
+    Feature record: CXX_FEATURE:0cxx_relaxed_constexpr
+    Feature record: CXX_FEATURE:0cxx_return_type_deduction
+    Feature record: CXX_FEATURE:0cxx_right_angle_brackets
+    Feature record: CXX_FEATURE:0cxx_rvalue_references
+    Feature record: CXX_FEATURE:0cxx_sizeof_member
+    Feature record: CXX_FEATURE:0cxx_static_assert
+    Feature record: CXX_FEATURE:0cxx_strong_enums
+    Feature record: CXX_FEATURE:1cxx_template_template_parameters
+    Feature record: CXX_FEATURE:0cxx_thread_local
+    Feature record: CXX_FEATURE:0cxx_trailing_return_types
+    Feature record: CXX_FEATURE:0cxx_unicode_literals
+    Feature record: CXX_FEATURE:0cxx_uniform_initialization
+    Feature record: CXX_FEATURE:0cxx_unrestricted_unions
+    Feature record: CXX_FEATURE:0cxx_user_literals
+    Feature record: CXX_FEATURE:0cxx_variable_templates
+    Feature record: CXX_FEATURE:0cxx_variadic_macros
+    Feature record: CXX_FEATURE:0cxx_variadic_templates
diff --git a/cmake-build-debug/CMakeFiles/Makefile.cmake b/cmake-build-debug/CMakeFiles/Makefile.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..5217b4a045e63d804b26d81c257cfd0f4ab70b9b
--- /dev/null
+++ b/cmake-build-debug/CMakeFiles/Makefile.cmake
@@ -0,0 +1,118 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.6
+
+# The generator used is:
+set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
+
+# The top level Makefile was generated from the following files:
+set(CMAKE_MAKEFILE_DEPENDS
+  "CMakeCache.txt"
+  "../CMakeLists.txt"
+  "CMakeFiles/3.6.2/CMakeCCompiler.cmake"
+  "CMakeFiles/3.6.2/CMakeCXXCompiler.cmake"
+  "CMakeFiles/3.6.2/CMakeSystem.cmake"
+  "CMakeFiles/feature_tests.c"
+  "CMakeFiles/feature_tests.cxx"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeCCompiler.cmake.in"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeCCompilerABI.c"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeCInformation.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeCXXCompiler.cmake.in"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeCXXCompilerABI.cpp"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeCXXInformation.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeCommonLanguageInclude.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeCompilerIdDetection.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeDetermineCCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeDetermineCXXCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeDetermineCompileFeatures.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeDetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeDetermineCompilerABI.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeDetermineCompilerId.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeDetermineSystem.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeFindBinUtils.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeFindCodeBlocks.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeGenericSystem.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeLanguageInformation.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeParseArguments.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeParseImplicitLinkInfo.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeSystem.cmake.in"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeSystemSpecificInformation.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeSystemSpecificInitialize.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeTestCCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeTestCXXCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeTestCompilerCommon.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/CMakeUnixFindMake.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/ADSP-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/Borland-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/Clang-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/Cray-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/GHS-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/GNU-C-FeatureTests.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/GNU-C.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/GNU-CXX-FeatureTests.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/GNU-CXX.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/GNU-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/GNU.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/HP-C-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/IAR-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/Intel-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/MIPSpro-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/MSVC-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/PGI-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/PathScale-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/SCO-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/TI-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/Watcom-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/XL-C-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Internal/FeatureTesting.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Platform/Linux-CXX.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Platform/Linux-GNU-C.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Platform/Linux-GNU-CXX.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Platform/Linux-GNU.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Platform/Linux.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/Platform/UnixPaths.cmake"
+  "/opt/clion/bin/cmake/share/cmake-3.6/Modules/ProcessorCount.cmake"
+  )
+
+# The corresponding makefile is:
+set(CMAKE_MAKEFILE_OUTPUTS
+  "Makefile"
+  "CMakeFiles/cmake.check_cache"
+  )
+
+# Byproducts of CMake generate step:
+set(CMAKE_MAKEFILE_PRODUCTS
+  "CMakeFiles/3.6.2/CMakeSystem.cmake"
+  "CMakeFiles/3.6.2/CMakeCCompiler.cmake"
+  "CMakeFiles/3.6.2/CMakeCXXCompiler.cmake"
+  "CMakeFiles/3.6.2/CMakeCCompiler.cmake"
+  "CMakeFiles/3.6.2/CMakeCXXCompiler.cmake"
+  "CMakeFiles/CMakeDirectoryInformation.cmake"
+  )
+
+# Dependency information for all targets:
+set(CMAKE_DEPEND_INFO_FILES
+  "CMakeFiles/aparapi_native.dir/DependInfo.cmake"
+  )
diff --git a/cmake-build-debug/CMakeFiles/Makefile2 b/cmake-build-debug/CMakeFiles/Makefile2
new file mode 100644
index 0000000000000000000000000000000000000000..63b9d3ee9137d362389047b1a1ce74bc923f1a6a
--- /dev/null
+++ b/cmake-build-debug/CMakeFiles/Makefile2
@@ -0,0 +1,108 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.6
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# The main recursive all target
+all:
+
+.PHONY : all
+
+# The main recursive preinstall target
+preinstall:
+
+.PHONY : preinstall
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /opt/clion/bin/cmake/bin/cmake
+
+# The command to remove a file.
+RM = /opt/clion/bin/cmake/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/freemo/source/aparapi-native
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/freemo/source/aparapi-native/cmake-build-debug
+
+#=============================================================================
+# Target rules for target CMakeFiles/aparapi_native.dir
+
+# All Build rule for target.
+CMakeFiles/aparapi_native.dir/all:
+	$(MAKE) -f CMakeFiles/aparapi_native.dir/build.make CMakeFiles/aparapi_native.dir/depend
+	$(MAKE) -f CMakeFiles/aparapi_native.dir/build.make CMakeFiles/aparapi_native.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 "Built target aparapi_native"
+.PHONY : CMakeFiles/aparapi_native.dir/all
+
+# Include target in all.
+all: CMakeFiles/aparapi_native.dir/all
+
+.PHONY : all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/aparapi_native.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles 18
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/aparapi_native.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles 0
+.PHONY : CMakeFiles/aparapi_native.dir/rule
+
+# Convenience name for target.
+aparapi_native: CMakeFiles/aparapi_native.dir/rule
+
+.PHONY : aparapi_native
+
+# clean rule for target.
+CMakeFiles/aparapi_native.dir/clean:
+	$(MAKE) -f CMakeFiles/aparapi_native.dir/build.make CMakeFiles/aparapi_native.dir/clean
+.PHONY : CMakeFiles/aparapi_native.dir/clean
+
+# clean rule for target.
+clean: CMakeFiles/aparapi_native.dir/clean
+
+.PHONY : clean
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/cmake-build-debug/CMakeFiles/TargetDirectories.txt b/cmake-build-debug/CMakeFiles/TargetDirectories.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e95f2bb60f389b5fad7168339339fcb83ca2c960
--- /dev/null
+++ b/cmake-build-debug/CMakeFiles/TargetDirectories.txt
@@ -0,0 +1,3 @@
+/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/edit_cache.dir
+/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/rebuild_cache.dir
+/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/aparapi_native.dir
diff --git a/cmake-build-debug/CMakeFiles/aparapi_native.dir/DependInfo.cmake b/cmake-build-debug/CMakeFiles/aparapi_native.dir/DependInfo.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..b4fdb77a9f87f2af8cd767e2699703c049792a74
--- /dev/null
+++ b/cmake-build-debug/CMakeFiles/aparapi_native.dir/DependInfo.cmake
@@ -0,0 +1,37 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  "CXX"
+  )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_CXX
+  "/home/freemo/source/aparapi-native/src/cpp/CLHelper.cpp" "/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.o"
+  "/home/freemo/source/aparapi-native/src/cpp/JNIHelper.cpp" "/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.o"
+  "/home/freemo/source/aparapi-native/src/cpp/agent.cpp" "/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.o"
+  "/home/freemo/source/aparapi-native/src/cpp/classtools.cpp" "/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.o"
+  "/home/freemo/source/aparapi-native/src/cpp/classtoolstest.cpp" "/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.o"
+  "/home/freemo/source/aparapi-native/src/cpp/cltest.cpp" "/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.o"
+  "/home/freemo/source/aparapi-native/src/cpp/invoke/OpenCLArgDescriptor.cpp" "/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.o"
+  "/home/freemo/source/aparapi-native/src/cpp/invoke/OpenCLJNI.cpp" "/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.o"
+  "/home/freemo/source/aparapi-native/src/cpp/invoke/OpenCLMem.cpp" "/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.o"
+  "/home/freemo/source/aparapi-native/src/cpp/runKernel/Aparapi.cpp" "/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.o"
+  "/home/freemo/source/aparapi-native/src/cpp/runKernel/AparapiBuffer.cpp" "/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.o"
+  "/home/freemo/source/aparapi-native/src/cpp/runKernel/ArrayBuffer.cpp" "/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.o"
+  "/home/freemo/source/aparapi-native/src/cpp/runKernel/Config.cpp" "/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.o"
+  "/home/freemo/source/aparapi-native/src/cpp/runKernel/JNIContext.cpp" "/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.o"
+  "/home/freemo/source/aparapi-native/src/cpp/runKernel/KernelArg.cpp" "/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.o"
+  "/home/freemo/source/aparapi-native/src/cpp/runKernel/ProfileInfo.cpp" "/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.o"
+  "/home/freemo/source/aparapi-native/src/cpp/runKernel/Range.cpp" "/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.o"
+  )
+set(CMAKE_CXX_COMPILER_ID "GNU")
+
+# The include file search paths:
+set(CMAKE_CXX_TARGET_INCLUDE_PATH
+  "../include"
+  )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/cmake-build-debug/CMakeFiles/aparapi_native.dir/build.make b/cmake-build-debug/CMakeFiles/aparapi_native.dir/build.make
new file mode 100644
index 0000000000000000000000000000000000000000..eeb9d6733e7e42ad8f01be93d017488b36370e5d
--- /dev/null
+++ b/cmake-build-debug/CMakeFiles/aparapi_native.dir/build.make
@@ -0,0 +1,545 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.6
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /opt/clion/bin/cmake/bin/cmake
+
+# The command to remove a file.
+RM = /opt/clion/bin/cmake/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/freemo/source/aparapi-native
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/freemo/source/aparapi-native/cmake-build-debug
+
+# Include any dependencies generated for this target.
+include CMakeFiles/aparapi_native.dir/depend.make
+
+# Include the progress variables for this target.
+include CMakeFiles/aparapi_native.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include CMakeFiles/aparapi_native.dir/flags.make
+
+CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.o: CMakeFiles/aparapi_native.dir/flags.make
+CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.o: ../src/cpp/invoke/OpenCLArgDescriptor.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.o"
+	/usr/bin/c++   $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.o -c /home/freemo/source/aparapi-native/src/cpp/invoke/OpenCLArgDescriptor.cpp
+
+CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.i"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/freemo/source/aparapi-native/src/cpp/invoke/OpenCLArgDescriptor.cpp > CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.i
+
+CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.s"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/freemo/source/aparapi-native/src/cpp/invoke/OpenCLArgDescriptor.cpp -o CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.s
+
+CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.o.requires:
+
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.o.requires
+
+CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.o.provides: CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.o.requires
+	$(MAKE) -f CMakeFiles/aparapi_native.dir/build.make CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.o.provides.build
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.o.provides
+
+CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.o.provides.build: CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.o
+
+
+CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.o: CMakeFiles/aparapi_native.dir/flags.make
+CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.o: ../src/cpp/invoke/OpenCLJNI.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.o"
+	/usr/bin/c++   $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.o -c /home/freemo/source/aparapi-native/src/cpp/invoke/OpenCLJNI.cpp
+
+CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.i"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/freemo/source/aparapi-native/src/cpp/invoke/OpenCLJNI.cpp > CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.i
+
+CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.s"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/freemo/source/aparapi-native/src/cpp/invoke/OpenCLJNI.cpp -o CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.s
+
+CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.o.requires:
+
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.o.requires
+
+CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.o.provides: CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.o.requires
+	$(MAKE) -f CMakeFiles/aparapi_native.dir/build.make CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.o.provides.build
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.o.provides
+
+CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.o.provides.build: CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.o
+
+
+CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.o: CMakeFiles/aparapi_native.dir/flags.make
+CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.o: ../src/cpp/invoke/OpenCLMem.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.o"
+	/usr/bin/c++   $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.o -c /home/freemo/source/aparapi-native/src/cpp/invoke/OpenCLMem.cpp
+
+CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.i"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/freemo/source/aparapi-native/src/cpp/invoke/OpenCLMem.cpp > CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.i
+
+CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.s"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/freemo/source/aparapi-native/src/cpp/invoke/OpenCLMem.cpp -o CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.s
+
+CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.o.requires:
+
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.o.requires
+
+CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.o.provides: CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.o.requires
+	$(MAKE) -f CMakeFiles/aparapi_native.dir/build.make CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.o.provides.build
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.o.provides
+
+CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.o.provides.build: CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.o
+
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.o: CMakeFiles/aparapi_native.dir/flags.make
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.o: ../src/cpp/runKernel/Aparapi.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building CXX object CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.o"
+	/usr/bin/c++   $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.o -c /home/freemo/source/aparapi-native/src/cpp/runKernel/Aparapi.cpp
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.i"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/freemo/source/aparapi-native/src/cpp/runKernel/Aparapi.cpp > CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.i
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.s"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/freemo/source/aparapi-native/src/cpp/runKernel/Aparapi.cpp -o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.s
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.o.requires:
+
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.o.requires
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.o.provides: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.o.requires
+	$(MAKE) -f CMakeFiles/aparapi_native.dir/build.make CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.o.provides.build
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.o.provides
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.o.provides.build: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.o
+
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.o: CMakeFiles/aparapi_native.dir/flags.make
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.o: ../src/cpp/runKernel/AparapiBuffer.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building CXX object CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.o"
+	/usr/bin/c++   $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.o -c /home/freemo/source/aparapi-native/src/cpp/runKernel/AparapiBuffer.cpp
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.i"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/freemo/source/aparapi-native/src/cpp/runKernel/AparapiBuffer.cpp > CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.i
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.s"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/freemo/source/aparapi-native/src/cpp/runKernel/AparapiBuffer.cpp -o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.s
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.o.requires:
+
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.o.requires
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.o.provides: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.o.requires
+	$(MAKE) -f CMakeFiles/aparapi_native.dir/build.make CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.o.provides.build
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.o.provides
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.o.provides.build: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.o
+
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.o: CMakeFiles/aparapi_native.dir/flags.make
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.o: ../src/cpp/runKernel/ArrayBuffer.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Building CXX object CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.o"
+	/usr/bin/c++   $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.o -c /home/freemo/source/aparapi-native/src/cpp/runKernel/ArrayBuffer.cpp
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.i"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/freemo/source/aparapi-native/src/cpp/runKernel/ArrayBuffer.cpp > CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.i
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.s"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/freemo/source/aparapi-native/src/cpp/runKernel/ArrayBuffer.cpp -o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.s
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.o.requires:
+
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.o.requires
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.o.provides: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.o.requires
+	$(MAKE) -f CMakeFiles/aparapi_native.dir/build.make CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.o.provides.build
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.o.provides
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.o.provides.build: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.o
+
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.o: CMakeFiles/aparapi_native.dir/flags.make
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.o: ../src/cpp/runKernel/Config.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_7) "Building CXX object CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.o"
+	/usr/bin/c++   $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.o -c /home/freemo/source/aparapi-native/src/cpp/runKernel/Config.cpp
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.i"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/freemo/source/aparapi-native/src/cpp/runKernel/Config.cpp > CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.i
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.s"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/freemo/source/aparapi-native/src/cpp/runKernel/Config.cpp -o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.s
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.o.requires:
+
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.o.requires
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.o.provides: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.o.requires
+	$(MAKE) -f CMakeFiles/aparapi_native.dir/build.make CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.o.provides.build
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.o.provides
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.o.provides.build: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.o
+
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.o: CMakeFiles/aparapi_native.dir/flags.make
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.o: ../src/cpp/runKernel/JNIContext.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_8) "Building CXX object CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.o"
+	/usr/bin/c++   $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.o -c /home/freemo/source/aparapi-native/src/cpp/runKernel/JNIContext.cpp
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.i"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/freemo/source/aparapi-native/src/cpp/runKernel/JNIContext.cpp > CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.i
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.s"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/freemo/source/aparapi-native/src/cpp/runKernel/JNIContext.cpp -o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.s
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.o.requires:
+
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.o.requires
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.o.provides: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.o.requires
+	$(MAKE) -f CMakeFiles/aparapi_native.dir/build.make CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.o.provides.build
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.o.provides
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.o.provides.build: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.o
+
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.o: CMakeFiles/aparapi_native.dir/flags.make
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.o: ../src/cpp/runKernel/KernelArg.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_9) "Building CXX object CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.o"
+	/usr/bin/c++   $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.o -c /home/freemo/source/aparapi-native/src/cpp/runKernel/KernelArg.cpp
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.i"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/freemo/source/aparapi-native/src/cpp/runKernel/KernelArg.cpp > CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.i
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.s"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/freemo/source/aparapi-native/src/cpp/runKernel/KernelArg.cpp -o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.s
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.o.requires:
+
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.o.requires
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.o.provides: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.o.requires
+	$(MAKE) -f CMakeFiles/aparapi_native.dir/build.make CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.o.provides.build
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.o.provides
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.o.provides.build: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.o
+
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.o: CMakeFiles/aparapi_native.dir/flags.make
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.o: ../src/cpp/runKernel/ProfileInfo.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_10) "Building CXX object CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.o"
+	/usr/bin/c++   $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.o -c /home/freemo/source/aparapi-native/src/cpp/runKernel/ProfileInfo.cpp
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.i"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/freemo/source/aparapi-native/src/cpp/runKernel/ProfileInfo.cpp > CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.i
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.s"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/freemo/source/aparapi-native/src/cpp/runKernel/ProfileInfo.cpp -o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.s
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.o.requires:
+
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.o.requires
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.o.provides: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.o.requires
+	$(MAKE) -f CMakeFiles/aparapi_native.dir/build.make CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.o.provides.build
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.o.provides
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.o.provides.build: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.o
+
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.o: CMakeFiles/aparapi_native.dir/flags.make
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.o: ../src/cpp/runKernel/Range.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_11) "Building CXX object CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.o"
+	/usr/bin/c++   $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.o -c /home/freemo/source/aparapi-native/src/cpp/runKernel/Range.cpp
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.i"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/freemo/source/aparapi-native/src/cpp/runKernel/Range.cpp > CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.i
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.s"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/freemo/source/aparapi-native/src/cpp/runKernel/Range.cpp -o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.s
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.o.requires:
+
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.o.requires
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.o.provides: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.o.requires
+	$(MAKE) -f CMakeFiles/aparapi_native.dir/build.make CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.o.provides.build
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.o.provides
+
+CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.o.provides.build: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.o
+
+
+CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.o: CMakeFiles/aparapi_native.dir/flags.make
+CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.o: ../src/cpp/agent.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_12) "Building CXX object CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.o"
+	/usr/bin/c++   $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.o -c /home/freemo/source/aparapi-native/src/cpp/agent.cpp
+
+CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.i"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/freemo/source/aparapi-native/src/cpp/agent.cpp > CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.i
+
+CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.s"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/freemo/source/aparapi-native/src/cpp/agent.cpp -o CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.s
+
+CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.o.requires:
+
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.o.requires
+
+CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.o.provides: CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.o.requires
+	$(MAKE) -f CMakeFiles/aparapi_native.dir/build.make CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.o.provides.build
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.o.provides
+
+CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.o.provides.build: CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.o
+
+
+CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.o: CMakeFiles/aparapi_native.dir/flags.make
+CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.o: ../src/cpp/classtools.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_13) "Building CXX object CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.o"
+	/usr/bin/c++   $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.o -c /home/freemo/source/aparapi-native/src/cpp/classtools.cpp
+
+CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.i"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/freemo/source/aparapi-native/src/cpp/classtools.cpp > CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.i
+
+CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.s"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/freemo/source/aparapi-native/src/cpp/classtools.cpp -o CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.s
+
+CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.o.requires:
+
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.o.requires
+
+CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.o.provides: CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.o.requires
+	$(MAKE) -f CMakeFiles/aparapi_native.dir/build.make CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.o.provides.build
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.o.provides
+
+CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.o.provides.build: CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.o
+
+
+CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.o: CMakeFiles/aparapi_native.dir/flags.make
+CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.o: ../src/cpp/classtoolstest.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_14) "Building CXX object CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.o"
+	/usr/bin/c++   $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.o -c /home/freemo/source/aparapi-native/src/cpp/classtoolstest.cpp
+
+CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.i"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/freemo/source/aparapi-native/src/cpp/classtoolstest.cpp > CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.i
+
+CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.s"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/freemo/source/aparapi-native/src/cpp/classtoolstest.cpp -o CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.s
+
+CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.o.requires:
+
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.o.requires
+
+CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.o.provides: CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.o.requires
+	$(MAKE) -f CMakeFiles/aparapi_native.dir/build.make CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.o.provides.build
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.o.provides
+
+CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.o.provides.build: CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.o
+
+
+CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.o: CMakeFiles/aparapi_native.dir/flags.make
+CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.o: ../src/cpp/CLHelper.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_15) "Building CXX object CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.o"
+	/usr/bin/c++   $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.o -c /home/freemo/source/aparapi-native/src/cpp/CLHelper.cpp
+
+CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.i"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/freemo/source/aparapi-native/src/cpp/CLHelper.cpp > CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.i
+
+CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.s"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/freemo/source/aparapi-native/src/cpp/CLHelper.cpp -o CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.s
+
+CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.o.requires:
+
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.o.requires
+
+CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.o.provides: CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.o.requires
+	$(MAKE) -f CMakeFiles/aparapi_native.dir/build.make CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.o.provides.build
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.o.provides
+
+CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.o.provides.build: CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.o
+
+
+CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.o: CMakeFiles/aparapi_native.dir/flags.make
+CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.o: ../src/cpp/cltest.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_16) "Building CXX object CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.o"
+	/usr/bin/c++   $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.o -c /home/freemo/source/aparapi-native/src/cpp/cltest.cpp
+
+CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.i"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/freemo/source/aparapi-native/src/cpp/cltest.cpp > CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.i
+
+CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.s"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/freemo/source/aparapi-native/src/cpp/cltest.cpp -o CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.s
+
+CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.o.requires:
+
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.o.requires
+
+CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.o.provides: CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.o.requires
+	$(MAKE) -f CMakeFiles/aparapi_native.dir/build.make CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.o.provides.build
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.o.provides
+
+CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.o.provides.build: CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.o
+
+
+CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.o: CMakeFiles/aparapi_native.dir/flags.make
+CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.o: ../src/cpp/JNIHelper.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_17) "Building CXX object CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.o"
+	/usr/bin/c++   $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.o -c /home/freemo/source/aparapi-native/src/cpp/JNIHelper.cpp
+
+CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.i"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/freemo/source/aparapi-native/src/cpp/JNIHelper.cpp > CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.i
+
+CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.s"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/freemo/source/aparapi-native/src/cpp/JNIHelper.cpp -o CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.s
+
+CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.o.requires:
+
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.o.requires
+
+CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.o.provides: CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.o.requires
+	$(MAKE) -f CMakeFiles/aparapi_native.dir/build.make CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.o.provides.build
+.PHONY : CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.o.provides
+
+CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.o.provides.build: CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.o
+
+
+# Object files for target aparapi_native
+aparapi_native_OBJECTS = \
+"CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.o" \
+"CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.o" \
+"CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.o" \
+"CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.o" \
+"CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.o" \
+"CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.o" \
+"CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.o" \
+"CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.o" \
+"CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.o" \
+"CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.o" \
+"CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.o" \
+"CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.o" \
+"CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.o" \
+"CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.o" \
+"CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.o" \
+"CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.o" \
+"CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.o"
+
+# External object files for target aparapi_native
+aparapi_native_EXTERNAL_OBJECTS =
+
+aparapi_native: CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.o
+aparapi_native: CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.o
+aparapi_native: CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.o
+aparapi_native: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.o
+aparapi_native: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.o
+aparapi_native: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.o
+aparapi_native: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.o
+aparapi_native: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.o
+aparapi_native: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.o
+aparapi_native: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.o
+aparapi_native: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.o
+aparapi_native: CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.o
+aparapi_native: CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.o
+aparapi_native: CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.o
+aparapi_native: CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.o
+aparapi_native: CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.o
+aparapi_native: CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.o
+aparapi_native: CMakeFiles/aparapi_native.dir/build.make
+aparapi_native: CMakeFiles/aparapi_native.dir/link.txt
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_18) "Linking CXX executable aparapi_native"
+	$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/aparapi_native.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+CMakeFiles/aparapi_native.dir/build: aparapi_native
+
+.PHONY : CMakeFiles/aparapi_native.dir/build
+
+CMakeFiles/aparapi_native.dir/requires: CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.o.requires
+CMakeFiles/aparapi_native.dir/requires: CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.o.requires
+CMakeFiles/aparapi_native.dir/requires: CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.o.requires
+CMakeFiles/aparapi_native.dir/requires: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.o.requires
+CMakeFiles/aparapi_native.dir/requires: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.o.requires
+CMakeFiles/aparapi_native.dir/requires: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.o.requires
+CMakeFiles/aparapi_native.dir/requires: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.o.requires
+CMakeFiles/aparapi_native.dir/requires: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.o.requires
+CMakeFiles/aparapi_native.dir/requires: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.o.requires
+CMakeFiles/aparapi_native.dir/requires: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.o.requires
+CMakeFiles/aparapi_native.dir/requires: CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.o.requires
+CMakeFiles/aparapi_native.dir/requires: CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.o.requires
+CMakeFiles/aparapi_native.dir/requires: CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.o.requires
+CMakeFiles/aparapi_native.dir/requires: CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.o.requires
+CMakeFiles/aparapi_native.dir/requires: CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.o.requires
+CMakeFiles/aparapi_native.dir/requires: CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.o.requires
+CMakeFiles/aparapi_native.dir/requires: CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.o.requires
+
+.PHONY : CMakeFiles/aparapi_native.dir/requires
+
+CMakeFiles/aparapi_native.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/aparapi_native.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/aparapi_native.dir/clean
+
+CMakeFiles/aparapi_native.dir/depend:
+	cd /home/freemo/source/aparapi-native/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/freemo/source/aparapi-native /home/freemo/source/aparapi-native /home/freemo/source/aparapi-native/cmake-build-debug /home/freemo/source/aparapi-native/cmake-build-debug /home/freemo/source/aparapi-native/cmake-build-debug/CMakeFiles/aparapi_native.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/aparapi_native.dir/depend
+
diff --git a/cmake-build-debug/CMakeFiles/aparapi_native.dir/cmake_clean.cmake b/cmake-build-debug/CMakeFiles/aparapi_native.dir/cmake_clean.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..24d63b11c6cdfc4d84aa9e962f199b210e7c8c2d
--- /dev/null
+++ b/cmake-build-debug/CMakeFiles/aparapi_native.dir/cmake_clean.cmake
@@ -0,0 +1,26 @@
+file(REMOVE_RECURSE
+  "CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.o"
+  "CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.o"
+  "CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.o"
+  "CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.o"
+  "CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.o"
+  "CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.o"
+  "CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.o"
+  "CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.o"
+  "CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.o"
+  "CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.o"
+  "CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.o"
+  "CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.o"
+  "CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.o"
+  "CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.o"
+  "CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.o"
+  "CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.o"
+  "CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.o"
+  "aparapi_native.pdb"
+  "aparapi_native"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang CXX)
+  include(CMakeFiles/aparapi_native.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/cmake-build-debug/CMakeFiles/aparapi_native.dir/depend.make b/cmake-build-debug/CMakeFiles/aparapi_native.dir/depend.make
new file mode 100644
index 0000000000000000000000000000000000000000..cba5ede199588ebf64d914de4a2802c578680ea2
--- /dev/null
+++ b/cmake-build-debug/CMakeFiles/aparapi_native.dir/depend.make
@@ -0,0 +1,2 @@
+# Empty dependencies file for aparapi_native.
+# This may be replaced when dependencies are built.
diff --git a/cmake-build-debug/CMakeFiles/aparapi_native.dir/flags.make b/cmake-build-debug/CMakeFiles/aparapi_native.dir/flags.make
new file mode 100644
index 0000000000000000000000000000000000000000..72e6b05442bde080f5e7517869b7700bb170cbb6
--- /dev/null
+++ b/cmake-build-debug/CMakeFiles/aparapi_native.dir/flags.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.6
+
+# compile CXX with /usr/bin/c++
+CXX_FLAGS = -g   -std=gnu++11
+
+CXX_DEFINES = 
+
+CXX_INCLUDES = -I/home/freemo/source/aparapi-native/include 
+
diff --git a/cmake-build-debug/CMakeFiles/aparapi_native.dir/link.txt b/cmake-build-debug/CMakeFiles/aparapi_native.dir/link.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1c88127cc8da7e6033df9c1e8eac40ff058f1e30
--- /dev/null
+++ b/cmake-build-debug/CMakeFiles/aparapi_native.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/c++   -g   CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLArgDescriptor.cpp.o CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLJNI.cpp.o CMakeFiles/aparapi_native.dir/src/cpp/invoke/OpenCLMem.cpp.o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Aparapi.cpp.o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/AparapiBuffer.cpp.o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ArrayBuffer.cpp.o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Config.cpp.o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/JNIContext.cpp.o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/KernelArg.cpp.o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/ProfileInfo.cpp.o CMakeFiles/aparapi_native.dir/src/cpp/runKernel/Range.cpp.o CMakeFiles/aparapi_native.dir/src/cpp/agent.cpp.o CMakeFiles/aparapi_native.dir/src/cpp/classtools.cpp.o CMakeFiles/aparapi_native.dir/src/cpp/classtoolstest.cpp.o CMakeFiles/aparapi_native.dir/src/cpp/CLHelper.cpp.o CMakeFiles/aparapi_native.dir/src/cpp/cltest.cpp.o CMakeFiles/aparapi_native.dir/src/cpp/JNIHelper.cpp.o  -o aparapi_native 
diff --git a/cmake-build-debug/CMakeFiles/aparapi_native.dir/progress.make b/cmake-build-debug/CMakeFiles/aparapi_native.dir/progress.make
new file mode 100644
index 0000000000000000000000000000000000000000..4f47425c83f0a6b9c0cbb593695b66ec29b129d8
--- /dev/null
+++ b/cmake-build-debug/CMakeFiles/aparapi_native.dir/progress.make
@@ -0,0 +1,19 @@
+CMAKE_PROGRESS_1 = 1
+CMAKE_PROGRESS_2 = 2
+CMAKE_PROGRESS_3 = 3
+CMAKE_PROGRESS_4 = 4
+CMAKE_PROGRESS_5 = 5
+CMAKE_PROGRESS_6 = 6
+CMAKE_PROGRESS_7 = 7
+CMAKE_PROGRESS_8 = 8
+CMAKE_PROGRESS_9 = 9
+CMAKE_PROGRESS_10 = 10
+CMAKE_PROGRESS_11 = 11
+CMAKE_PROGRESS_12 = 12
+CMAKE_PROGRESS_13 = 13
+CMAKE_PROGRESS_14 = 14
+CMAKE_PROGRESS_15 = 15
+CMAKE_PROGRESS_16 = 16
+CMAKE_PROGRESS_17 = 17
+CMAKE_PROGRESS_18 = 18
+
diff --git a/cmake-build-debug/CMakeFiles/clion-environment.txt b/cmake-build-debug/CMakeFiles/clion-environment.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7510556a807d533dc5382691a74dfd5ce10c931c
--- /dev/null
+++ b/cmake-build-debug/CMakeFiles/clion-environment.txt
@@ -0,0 +1 @@
+CMake: 3.6.2@/opt/clion/bin/cmake/bin/cmake
diff --git a/cmake-build-debug/CMakeFiles/clion-log.txt b/cmake-build-debug/CMakeFiles/clion-log.txt
new file mode 100644
index 0000000000000000000000000000000000000000..225f06fc81c3d1fdb644f9d03f7fbcaf4add1486
--- /dev/null
+++ b/cmake-build-debug/CMakeFiles/clion-log.txt
@@ -0,0 +1,18 @@
+/opt/clion/bin/cmake/bin/cmake -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" /home/freemo/source/aparapi-native
+-- The C compiler identification is GNU 6.2.1
+-- The CXX compiler identification is GNU 6.2.1
+-- Check for working C compiler: /usr/bin/cc
+-- Check for working C compiler: /usr/bin/cc -- works
+-- Detecting C compiler ABI info
+-- Detecting C compiler ABI info - done
+-- Detecting C compile features
+-- Detecting C compile features - done
+-- Check for working CXX compiler: /usr/bin/c++
+-- Check for working CXX compiler: /usr/bin/c++ -- works
+-- Detecting CXX compiler ABI info
+-- Detecting CXX compiler ABI info - done
+-- Detecting CXX compile features
+-- Detecting CXX compile features - done
+-- Configuring done
+-- Generating done
+-- Build files have been written to: /home/freemo/source/aparapi-native/cmake-build-debug
diff --git a/cmake-build-debug/CMakeFiles/cmake.check_cache b/cmake-build-debug/CMakeFiles/cmake.check_cache
new file mode 100644
index 0000000000000000000000000000000000000000..3dccd731726d7faa8b29d8d7dba3b981a53ca497
--- /dev/null
+++ b/cmake-build-debug/CMakeFiles/cmake.check_cache
@@ -0,0 +1 @@
+# This file is generated by cmake for dependency checking of the CMakeCache.txt file
diff --git a/cmake-build-debug/CMakeFiles/feature_tests.bin b/cmake-build-debug/CMakeFiles/feature_tests.bin
new file mode 100755
index 0000000000000000000000000000000000000000..91feb3db7917037d4fbffbcbb70efe4bb8a78f08
Binary files /dev/null and b/cmake-build-debug/CMakeFiles/feature_tests.bin differ
diff --git a/cmake-build-debug/CMakeFiles/feature_tests.c b/cmake-build-debug/CMakeFiles/feature_tests.c
new file mode 100644
index 0000000000000000000000000000000000000000..6590dded2342f3eebd9b81505327e84a488580e6
--- /dev/null
+++ b/cmake-build-debug/CMakeFiles/feature_tests.c
@@ -0,0 +1,34 @@
+
+  const char features[] = {"\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404
+"1"
+#else
+"0"
+#endif
+"c_function_prototypes\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+"1"
+#else
+"0"
+#endif
+"c_restrict\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L
+"1"
+#else
+"0"
+#endif
+"c_static_assert\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+"1"
+#else
+"0"
+#endif
+"c_variadic_macros\n"
+
+};
+
+int main(int argc, char** argv) { (void)argv; return features[argc]; }
diff --git a/cmake-build-debug/CMakeFiles/feature_tests.cxx b/cmake-build-debug/CMakeFiles/feature_tests.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..b93418c6ed69feaf1b5c2feb9592bbdb5a5f042c
--- /dev/null
+++ b/cmake-build-debug/CMakeFiles/feature_tests.cxx
@@ -0,0 +1,405 @@
+
+  const char features[] = {"\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
+"1"
+#else
+"0"
+#endif
+"cxx_aggregate_default_initializers\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_alias_templates\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_alignas\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_alignof\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_attributes\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_attribute_deprecated\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_auto_type\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_binary_literals\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_constexpr\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_contextual_conversions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_decltype\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_decltype_auto\n"
+"CXX_FEATURE:"
+#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_decltype_incomplete_return_types\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_default_function_template_args\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_defaulted_functions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_defaulted_move_initializers\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_delegating_constructors\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_deleted_functions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_digit_separators\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_enum_forward_declarations\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_explicit_conversions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_extended_friend_declarations\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_extern_templates\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_final\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_func_identifier\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_generalized_initializers\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_generic_lambdas\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_inheriting_constructors\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_inline_namespaces\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_lambdas\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_lambda_init_captures\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_local_type_template_args\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_long_long_type\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_noexcept\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_nonstatic_member_init\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_nullptr\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_override\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_range_for\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_raw_string_literals\n"
+"CXX_FEATURE:"
+#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_reference_qualified_functions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
+"1"
+#else
+"0"
+#endif
+"cxx_relaxed_constexpr\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_return_type_deduction\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_right_angle_brackets\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_rvalue_references\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_sizeof_member\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_static_assert\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_strong_enums\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus
+"1"
+#else
+"0"
+#endif
+"cxx_template_template_parameters\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_thread_local\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_trailing_return_types\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_unicode_literals\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_uniform_initialization\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_unrestricted_unions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_user_literals\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
+"1"
+#else
+"0"
+#endif
+"cxx_variable_templates\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_variadic_macros\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_variadic_templates\n"
+
+};
+
+int main(int argc, char** argv) { (void)argv; return features[argc]; }
diff --git a/cmake-build-debug/CMakeFiles/progress.marks b/cmake-build-debug/CMakeFiles/progress.marks
new file mode 100644
index 0000000000000000000000000000000000000000..3c032078a4a21c5c51d3c93d91717c1dabbb8cd0
--- /dev/null
+++ b/cmake-build-debug/CMakeFiles/progress.marks
@@ -0,0 +1 @@
+18
diff --git a/cmake-build-debug/aparapi_native.cbp b/cmake-build-debug/aparapi_native.cbp
new file mode 100644
index 0000000000000000000000000000000000000000..fe3c00495ffb6ef3ee3a33e1248c31f8af1122c0
--- /dev/null
+++ b/cmake-build-debug/aparapi_native.cbp
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CodeBlocks_project_file>
+	<FileVersion major="1" minor="6"/>
+	<Project>
+		<Option title="aparapi_native"/>
+		<Option makefile_is_custom="1"/>
+		<Option compiler="gcc"/>
+		<Option virtualFolders="CMake Files\;"/>
+		<Build>
+			<Target title="all">
+				<Option working_dir="/home/freemo/source/aparapi-native/cmake-build-debug"/>
+				<Option type="4"/>
+				<MakeCommands>
+					<Build command="/usr/bin/make -j8 -f &quot;/home/freemo/source/aparapi-native/cmake-build-debug/Makefile&quot;  VERBOSE=1 all"/>
+					<CompileFile command="/usr/bin/make -j8 -f &quot;/home/freemo/source/aparapi-native/cmake-build-debug/Makefile&quot;  VERBOSE=1 &quot;$file&quot;"/>
+					<Clean command="/usr/bin/make -j8 -f &quot;/home/freemo/source/aparapi-native/cmake-build-debug/Makefile&quot;  VERBOSE=1 clean"/>
+					<DistClean command="/usr/bin/make -j8 -f &quot;/home/freemo/source/aparapi-native/cmake-build-debug/Makefile&quot;  VERBOSE=1 clean"/>
+				</MakeCommands>
+			</Target>
+			<Target title="edit_cache">
+				<Option working_dir="/home/freemo/source/aparapi-native/cmake-build-debug"/>
+				<Option type="4"/>
+				<MakeCommands>
+					<Build command="/usr/bin/make -j8 -f &quot;/home/freemo/source/aparapi-native/cmake-build-debug/Makefile&quot;  VERBOSE=1 edit_cache"/>
+					<CompileFile command="/usr/bin/make -j8 -f &quot;/home/freemo/source/aparapi-native/cmake-build-debug/Makefile&quot;  VERBOSE=1 &quot;$file&quot;"/>
+					<Clean command="/usr/bin/make -j8 -f &quot;/home/freemo/source/aparapi-native/cmake-build-debug/Makefile&quot;  VERBOSE=1 clean"/>
+					<DistClean command="/usr/bin/make -j8 -f &quot;/home/freemo/source/aparapi-native/cmake-build-debug/Makefile&quot;  VERBOSE=1 clean"/>
+				</MakeCommands>
+			</Target>
+			<Target title="rebuild_cache">
+				<Option working_dir="/home/freemo/source/aparapi-native/cmake-build-debug"/>
+				<Option type="4"/>
+				<MakeCommands>
+					<Build command="/usr/bin/make -j8 -f &quot;/home/freemo/source/aparapi-native/cmake-build-debug/Makefile&quot;  VERBOSE=1 rebuild_cache"/>
+					<CompileFile command="/usr/bin/make -j8 -f &quot;/home/freemo/source/aparapi-native/cmake-build-debug/Makefile&quot;  VERBOSE=1 &quot;$file&quot;"/>
+					<Clean command="/usr/bin/make -j8 -f &quot;/home/freemo/source/aparapi-native/cmake-build-debug/Makefile&quot;  VERBOSE=1 clean"/>
+					<DistClean command="/usr/bin/make -j8 -f &quot;/home/freemo/source/aparapi-native/cmake-build-debug/Makefile&quot;  VERBOSE=1 clean"/>
+				</MakeCommands>
+			</Target>
+			<Target title="aparapi_native">
+				<Option output="/home/freemo/source/aparapi-native/cmake-build-debug/aparapi_native" prefix_auto="0" extension_auto="0"/>
+				<Option working_dir="/home/freemo/source/aparapi-native/cmake-build-debug"/>
+				<Option object_output="./"/>
+				<Option type="1"/>
+				<Option compiler="gcc"/>
+				<Compiler>
+					<Add directory="/home/freemo/source/aparapi-native/include"/>
+					<Add directory="/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include"/>
+					<Add directory="/usr/local/include"/>
+					<Add directory="/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include-fixed"/>
+					<Add directory="/usr/include"/>
+					<Add directory="/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1"/>
+					<Add directory="/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/x86_64-pc-linux-gnu"/>
+					<Add directory="/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/backward"/>
+				</Compiler>
+				<MakeCommands>
+					<Build command="/usr/bin/make -j8 -f &quot;/home/freemo/source/aparapi-native/cmake-build-debug/Makefile&quot;  VERBOSE=1 aparapi_native"/>
+					<CompileFile command="/usr/bin/make -j8 -f &quot;/home/freemo/source/aparapi-native/cmake-build-debug/Makefile&quot;  VERBOSE=1 &quot;$file&quot;"/>
+					<Clean command="/usr/bin/make -j8 -f &quot;/home/freemo/source/aparapi-native/cmake-build-debug/Makefile&quot;  VERBOSE=1 clean"/>
+					<DistClean command="/usr/bin/make -j8 -f &quot;/home/freemo/source/aparapi-native/cmake-build-debug/Makefile&quot;  VERBOSE=1 clean"/>
+				</MakeCommands>
+			</Target>
+			<Target title="aparapi_native/fast">
+				<Option output="/home/freemo/source/aparapi-native/cmake-build-debug/aparapi_native" prefix_auto="0" extension_auto="0"/>
+				<Option working_dir="/home/freemo/source/aparapi-native/cmake-build-debug"/>
+				<Option object_output="./"/>
+				<Option type="1"/>
+				<Option compiler="gcc"/>
+				<Compiler>
+					<Add directory="/home/freemo/source/aparapi-native/include"/>
+					<Add directory="/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include"/>
+					<Add directory="/usr/local/include"/>
+					<Add directory="/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include-fixed"/>
+					<Add directory="/usr/include"/>
+					<Add directory="/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1"/>
+					<Add directory="/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/x86_64-pc-linux-gnu"/>
+					<Add directory="/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/backward"/>
+				</Compiler>
+				<MakeCommands>
+					<Build command="/usr/bin/make -j8 -f &quot;/home/freemo/source/aparapi-native/cmake-build-debug/Makefile&quot;  VERBOSE=1 aparapi_native/fast"/>
+					<CompileFile command="/usr/bin/make -j8 -f &quot;/home/freemo/source/aparapi-native/cmake-build-debug/Makefile&quot;  VERBOSE=1 &quot;$file&quot;"/>
+					<Clean command="/usr/bin/make -j8 -f &quot;/home/freemo/source/aparapi-native/cmake-build-debug/Makefile&quot;  VERBOSE=1 clean"/>
+					<DistClean command="/usr/bin/make -j8 -f &quot;/home/freemo/source/aparapi-native/cmake-build-debug/Makefile&quot;  VERBOSE=1 clean"/>
+				</MakeCommands>
+			</Target>
+		</Build>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/CLException.h">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/CLHelper.cpp">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/CLHelper.h">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/Common.h">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/JNIHelper.cpp">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/JNIHelper.h">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/agent.cpp">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/classtools.cpp">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/classtools.h">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/classtoolstest.cpp">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/cltest.cpp">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/invoke/JavaArgs.h">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/invoke/OpenCLArgDescriptor.cpp">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/invoke/OpenCLArgDescriptor.h">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/invoke/OpenCLJNI.cpp">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/invoke/OpenCLJNI.h">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/invoke/OpenCLKernel.h">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/invoke/OpenCLMem.cpp">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/invoke/OpenCLMem.h">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/invoke/OpenCLProgram.h">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/runKernel/Aparapi.cpp">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/runKernel/Aparapi.h">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/runKernel/AparapiBuffer.cpp">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/runKernel/AparapiBuffer.h">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/runKernel/ArrayBuffer.cpp">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/runKernel/ArrayBuffer.h">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/runKernel/Config.cpp">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/runKernel/Config.h">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/runKernel/JNIContext.cpp">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/runKernel/JNIContext.h">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/runKernel/KernelArg.cpp">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/runKernel/KernelArg.h">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/runKernel/List.h">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/runKernel/ProfileInfo.cpp">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/runKernel/ProfileInfo.h">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/runKernel/Range.cpp">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/src/cpp/runKernel/Range.h">
+			<Option target="aparapi_native"/>
+		</Unit>
+		<Unit filename="/home/freemo/source/aparapi-native/CMakeLists.txt">
+			<Option virtualFolder="CMake Files\"/>
+		</Unit>
+	</Project>
+</CodeBlocks_project_file>
diff --git a/cmake-build-debug/cmake_install.cmake b/cmake-build-debug/cmake_install.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..e49c258c30c585c2f77d5d4850a439665a455b0d
--- /dev/null
+++ b/cmake-build-debug/cmake_install.cmake
@@ -0,0 +1,44 @@
+# Install script for directory: /home/freemo/source/aparapi-native
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "Debug")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "0")
+endif()
+
+if(CMAKE_INSTALL_COMPONENT)
+  set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
+else()
+  set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
+endif()
+
+string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
+       "${CMAKE_INSTALL_MANIFEST_FILES}")
+file(WRITE "/home/freemo/source/aparapi-native/cmake-build-debug/${CMAKE_INSTALL_MANIFEST}"
+     "${CMAKE_INSTALL_MANIFEST_CONTENT}")
diff --git a/dist.fpga/README.md b/dist.fpga/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..5da4963cee6582730bcffb02e2c5a172d0aaa116
--- /dev/null
+++ b/dist.fpga/README.md
@@ -0,0 +1,10 @@
+---------
+README
+---------
+some scripts use the following notation to find libaparapi_x86_64.so => -Djava.library.path=../../com.amd.aparapi.jni/dist.[X]
+Where X stands for platform type name: std, fpga etc.
+build and copy the X version of libaparapi_x86_64.so to this folder so scripts can pick it up:
+goto: com.amd.aparapi.jni
+run: ant -f build_X_.xml
+copy: dist/libaparapi_x86_64.so dist.X
+
diff --git a/dist.std/README.md b/dist.std/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..5da4963cee6582730bcffb02e2c5a172d0aaa116
--- /dev/null
+++ b/dist.std/README.md
@@ -0,0 +1,10 @@
+---------
+README
+---------
+some scripts use the following notation to find libaparapi_x86_64.so => -Djava.library.path=../../com.amd.aparapi.jni/dist.[X]
+Where X stands for platform type name: std, fpga etc.
+build and copy the X version of libaparapi_x86_64.so to this folder so scripts can pick it up:
+goto: com.amd.aparapi.jni
+run: ant -f build_X_.xml
+copy: dist/libaparapi_x86_64.so dist.X
+
diff --git a/dist/libaparapi_x86_64.so b/dist/libaparapi_x86_64.so
new file mode 100755
index 0000000000000000000000000000000000000000..6eeef4011b37bbb315295a495af7bf863c9267e8
Binary files /dev/null and b/dist/libaparapi_x86_64.so differ
diff --git a/docs/APARAPIInstallationNotes.txt b/docs/APARAPIInstallationNotes.txt
new file mode 100644
index 0000000000000000000000000000000000000000..bda639ba9a52389e60c57774394fae0dbd4e3a3a
--- /dev/null
+++ b/docs/APARAPIInstallationNotes.txt
@@ -0,0 +1,41 @@
+---------------------------------------------------------
+APARAPI Installation Notes for CentOS release 6.x (Tested on 6.3/4/5/6)
+---------------------------------------------------------
+
+* Note default CentOs repository versions of Java(1.6) and Ant(1.7) are not compatible with latest APARAPI svn src
+  need to download newr versions (see below)
+
+- install Java JDK
+  sudo yum install java-1.7.0-openjdk-devel
+
+- install ANT
+  Download latest ANT -> currently apache-ant-1.9.1-bin.tar.gz
+  sudo tar xvzf apache-ant-1.9.1-bin.tar.gz -C /opt
+  sudo ln -s /opt/apache-ant-1.9.1 /opt/ant
+  
+- install AMD APP SDK
+
+  - needed for build even if hardware not available
+
+- install git
+
+- install g++
+
+  sudo yum install gcc-c++
+
+- get src from git repository
+
+  git clone ... [project folder]
+
+- set environment vars
+
+  source [project folder]/env/aparapiBuildEnv
+
+- build
+
+  cd [project folder]/src/aparapi
+
+  ant clean build dist
+
+
+
diff --git a/docs/AparapiUcoresBinaryFlow.txt b/docs/AparapiUcoresBinaryFlow.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f40b79c35ca512d177ec3a09feba516faf6269f7
--- /dev/null
+++ b/docs/AparapiUcoresBinaryFlow.txt
@@ -0,0 +1,34 @@
+Aparapi Ucores Binary Flow
+--------------------------
+
+This is currently used only for FPGAs but we plan to expand it for general manual optimization/compilation of OpenCL source code.
+
+A Binary flow is one where the Aparapi framework generates an OpenCL file while running and then tries to read and execute the binary compilation of that source file.
+
+Sequence of events
+------------------
+
+1. Aparapi Application is executed. Aparapi automatically generates an OpencL source file describing the kernel(file name is the full java kernel class name.cl)
+
+2. Aparapi Application automatically tries to load the binary compiled file (full java kernel class name.aocx)
+
+3. If Aparapi Application finds the compiled file it executes the compiled kernel (runs the kernel on the accelerator) else it will revert to JTP mode in which case the application runs as specified without acceleration (JTP mode). A simulation mode if you will.
+
+How this works for FPGAs
+------------------------
+
+1. We first run the Application CPU/GPU/ACC mode. Aparapi-Ucores will generate an OpenCL file (ClassXXXName.cl), but will not find the equivalent binary file (ClassXXXName.aocx). It will revert to another execution mode such as JTP. We can simulate if the kernel works logically correct using JTP.
+
+2. We feed the OpenCL file (ClassXXXName.cl) to an FPGA OpenCL compiler.
+
+Example:
+
+	a. aoc ClassXXXName.cl -O3 --board pcie385n_a7 -v --report
+
+	b. Wait until an optimized FPGA design is created...currently takes several hours
+
+	c. Output of the compiler will be: ClassXXXName.aocx
+
+	3. Copy the binary output file (ClassXXXName.aocx) to folder where the .cl file resides.
+
+4. Run application again in ACC/GPU mode. This time Aparapi will detect the ClassXXXName.aocx and use the FPGA as the acclerator.
\ No newline at end of file
diff --git a/docs/HowToBuildAPARAPI.txt b/docs/HowToBuildAPARAPI.txt
new file mode 100644
index 0000000000000000000000000000000000000000..bb332e064edcf02eee2cd4d91953bb7e7d20e6a6
--- /dev/null
+++ b/docs/HowToBuildAPARAPI.txt
@@ -0,0 +1,63 @@
+
+---------------------------------------------------------
+How to build APARAPI from the cmd line after modifications to code 
+---------------------------------------------------------
+* first read APARAPI Installation Notes (APARAPIInstallationNotes.txt) for general instructions on getting the project setup and initial build steps
+
+- open new terminal window 
+
+- set environment variables
+
+  source [project folder]/env/AlteraV14Env 
+
+- to build the APARAPI src tree
+
+  cd [project folder]/src/aparapi
+
+  ant clean build dist
+
+  * this does not build the jni proxy with FPGA support automatically (see below for jni FPGA build)
+
+- to build the APARAPI jni proxy library (should run after initial build and after any changes to CPP source files)
+
+  - goto jni dir  
+
+   cd [project folder]/src/aparapi/com.amd.aparapi.jni/
+
+  - to use ant to build standard jni version *
+
+   ant 
+
+  - to use ant to build FPGA jni version *
+
+   ant -f build_altera_ocl.xml 
+
+* The output of the com.amd.aparapi.jni build is a dll stored in dist folder:
+
+  [project folder]/src/aparapi/com.amd.aparapi.jni/dist/libaparapi_x86_64.so
+
+If you have a system where you want to have both FPGA and standard versions available (i.e. with multi OpenCL hardware platforms)you can simply copy the dll's to diffrent locations after the build and link to them through the java vm command line parameters:
+
+Example:
+
+Copy the fpga and standard dll's to the following locations respectively:
+/src/aparapi/com.amd.aparapi.jni/dist.fpga/libaparapi_x86_64.so
+/src/aparapi/com.amd.aparapi.jni/dist.std/libaparapi_x86_64.so
+
+To select one JNI version or the other at execution time run use the following paramaters to the java command:
+java -Djava.library.path=../../com.amd.aparapi.jni/dist.std  [rest of cmd line]
+java -Djava.library.path=../../com.amd.aparapi.jni/dist.fpga [rest of cmd line]
+
+
+
+
+
+  
+
+
+
+
+
+
+
+
diff --git a/docs/HowToRunAPARAPI.txt b/docs/HowToRunAPARAPI.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2506b0e2cfd0ffd936a400c7cfdc0880ac6e4f91
--- /dev/null
+++ b/docs/HowToRunAPARAPI.txt
@@ -0,0 +1,62 @@
+
+---------------------------------------------------------
+How to run APARAPI tests from the cmd line
+---------------------------------------------------------
+
+- open new terminal window 
+
+- set environment variables
+
+  source [project folder]/env/AlteraV14Env 
+
+- got to either samples/examples
+
+  - samples dir -> 
+
+    cd [project folder]/src/aparapi/samples
+
+  - examples dir-> 
+ 
+    cd [project folder]/src/aparapi/examples/
+
+- to run any sample or example: 
+
+  - run the shell script file named after the sample/example name and specify type of run
+
+  Format is*:
+ 
+  sh [name].sh [ACC|CPU|JTP|GPU|SEQ]
+
+  Examples:
+
+  - run nbody simulation
+    cd [project folder]/src/aparapi/examples/nbody
+    sh nbody.sh JTP
+    sh nbody.sh CPU
+    sh nbody.sh GPU
+    sh nbody.sh ACC
+
+  - run mandel
+    cd [project folder]/src/aparapi/samples/mandel/
+    sh mandel.sh JTP
+    sh mandel.sh CPU
+    sh mandel.sh GPU
+    sh mandel.sh ACC
+
+
+* For more sophisticated use cases with dual configs(fpga/std) you can use the following format:
+
+  sh [name].std.sh [ACC|CPU|JTP|GPU|SEQ]
+
+  sh [name].fpga.sh [ACC|CPU|JTP|GPU|SEQ]
+
+You can read more about dual config in how to build aparapi.
+  
+
+
+
+
+
+
+
+
diff --git a/docs/WorkingWithMultiplePlatforms.txt b/docs/WorkingWithMultiplePlatforms.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d55a415aeaea67f57a751ad005cd24b3e0e95b42
--- /dev/null
+++ b/docs/WorkingWithMultiplePlatforms.txt
@@ -0,0 +1,46 @@
+Working with multiple platforms
+-------------------------------
+
+The original version of Aparapi does not support platform selection (it just chooses the first available one).
+
+This means that in scenarios where you have multiple OpenCL platforms such as AMD, NVidia, Intel, Altera etc. you do not have control over what accelerator device will be used.
+
+One of the changes we made is to allow selection for platforms that support the OpenCL ICD model.
+(https://www.khronos.org/news/permalink/opencl-installable-client-driver-icd-loader)
+
+In the spirit of other Aparapi configuration options for device selection this can be set using a configuration option.
+
+The platform configuration option is called: com.amd.aparapi.platformHint
+
+When this option is set it causes Aparapi to search for the string platformHint inside the available platform names and if it found it will select that platform over other available ones.
+
+You can use it on the command line in the following way:
+
+java -Dcom.amd.aparapi.platformHint=AMD .... 
+
+or
+
+java -Dcom.amd.aparapi.platformHint=NVIDIA .... 
+
+
+Nbody simulation example with platform selection
+---------------------------------------------------------------------
+
+The script nbody.std.no-opengles-platform-select.sh contains the following java command line:
+
+java \
+  -Djava.library.path=../../com.amd.aparapi.jni/dist.std:../third-party/jogamp \
+  -Dcom.amd.aparapi.executionMode=$1 \
+  -Dbodies=$2 \
+  -Dcom.amd.aparapi.platformHint=$3 \
+  -Dheight=600 \
+  -Dwidth=600 \
+  -Djogl.disable.opengles \
+  -classpath ../third-party/jogamp/jogl-all.jar:../third-party/jogamp/gluegen-rt.jar:../../com.amd.aparapi/dist/aparapi.jar:nbody.jar \
+  com.amd.aparapi.examples.nbody.Main 
+
+To choose an AMD GPU for example we would invoke the script in the following way(the third parameter):
+
+nbody.std.no-opengles-platform-select.sh GPU 1024 AMD
+
+
diff --git a/env/AlteraV14Env b/env/AlteraV14Env
new file mode 100644
index 0000000000000000000000000000000000000000..501d6a4db7ce3a70915e84fa7f29ab27ec293c46
--- /dev/null
+++ b/env/AlteraV14Env
@@ -0,0 +1,8 @@
+export QUARTUS_ROOTDIR=/home/sdev/altera/14.0/quartus
+export PATH=$PATH:$QUARTUS_ROOTDIR/bin
+export ALTERAOCLSDKROOT=/home/sdev/altera/14.0/hld
+export LD_LIBRARY_PATH=$ALTERAOCLSDKROOT/host/linux64/lib:$ALTERAOCLSDKROOT/board/nalla_pcie/linux64/lib
+export PATH=$PATH:$ALTERAOCLSDKROOT/bin
+export AOCL_BOARD_PACKAGE_ROOT=/home/sdev/altera/14.0/hld/board/nalla_pcie
+export LM_LICENSE_FILE=[your license file here]
+
diff --git a/env/aparapiBuildEnv b/env/aparapiBuildEnv
new file mode 100644
index 0000000000000000000000000000000000000000..20ee4815b70bcc95ff781ebd58d1bb2d4d5665f5
--- /dev/null
+++ b/env/aparapiBuildEnv
@@ -0,0 +1,6 @@
+# Ant build environment
+export ANT_HOME=/opt/ant
+export PATH=${PATH}:${ANT_HOME}/bin
+
+
+
diff --git a/env/mahoutEnv b/env/mahoutEnv
new file mode 100644
index 0000000000000000000000000000000000000000..14a7683aada0538e3532d41b957b48b1586f74ee
--- /dev/null
+++ b/env/mahoutEnv
@@ -0,0 +1,10 @@
+# Generated file for hadoop/mahout env
+export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/
+#export HADOOP_HOME=/usr/local/hadoop-1.2.0/
+export HADOOP_DIR=/usr/local/hadoop-1.2.0
+export HADOOP_PREFIX=$HADOOP_DIR/
+export HADOOP_CONF_DIR=HADOOP_DIR/conf
+export MAHOUT_HOME=/usr/local/mahout-0.9/
+export MAHOUT_VERSION=0.9-SNAPSHOT
+#export MAVEN_OPTS=-Xmx1024m
+
diff --git a/include/com_amd_aparapi_Config.h b/include/com_amd_aparapi_Config.h
new file mode 100644
index 0000000000000000000000000000000000000000..18aa84edddc4aaa063dea6604088af67ee87bd43
--- /dev/null
+++ b/include/com_amd_aparapi_Config.h
@@ -0,0 +1,15 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_Config */
+
+#ifndef _Included_com_amd_aparapi_Config
+#define _Included_com_amd_aparapi_Config
+#ifdef __cplusplus
+extern "C" {
+#endif
+#undef com_amd_aparapi_Config_enableGETSTATIC
+#define com_amd_aparapi_Config_enableGETSTATIC 1L
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_Config_InstructionListener.h b/include/com_amd_aparapi_Config_InstructionListener.h
new file mode 100644
index 0000000000000000000000000000000000000000..3e21898ece35b20b860573d39644138213dd1f02
--- /dev/null
+++ b/include/com_amd_aparapi_Config_InstructionListener.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_Config_InstructionListener */
+
+#ifndef _Included_com_amd_aparapi_Config_InstructionListener
+#define _Included_com_amd_aparapi_Config_InstructionListener
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_Kernel.h b/include/com_amd_aparapi_Kernel.h
new file mode 100644
index 0000000000000000000000000000000000000000..fe91fffc8760d3430d219ce5d45e15b337975847
--- /dev/null
+++ b/include/com_amd_aparapi_Kernel.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_Kernel */
+
+#ifndef _Included_com_amd_aparapi_Kernel
+#define _Included_com_amd_aparapi_Kernel
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_Kernel_Constant.h b/include/com_amd_aparapi_Kernel_Constant.h
new file mode 100644
index 0000000000000000000000000000000000000000..3117781d9e64d06fd0673d9ca63fd3e0f0a1bf39
--- /dev/null
+++ b/include/com_amd_aparapi_Kernel_Constant.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_Kernel_Constant */
+
+#ifndef _Included_com_amd_aparapi_Kernel_Constant
+#define _Included_com_amd_aparapi_Kernel_Constant
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_Kernel_EXECUTION_MODE.h b/include/com_amd_aparapi_Kernel_EXECUTION_MODE.h
new file mode 100644
index 0000000000000000000000000000000000000000..050bf5b37b1e57278bd995680eb16cd1ce1420b4
--- /dev/null
+++ b/include/com_amd_aparapi_Kernel_EXECUTION_MODE.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_Kernel_EXECUTION_MODE */
+
+#ifndef _Included_com_amd_aparapi_Kernel_EXECUTION_MODE
+#define _Included_com_amd_aparapi_Kernel_EXECUTION_MODE
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_Kernel_Entry.h b/include/com_amd_aparapi_Kernel_Entry.h
new file mode 100644
index 0000000000000000000000000000000000000000..ebdade3da8db6270880e466d07857599ec82d19c
--- /dev/null
+++ b/include/com_amd_aparapi_Kernel_Entry.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_Kernel_Entry */
+
+#ifndef _Included_com_amd_aparapi_Kernel_Entry
+#define _Included_com_amd_aparapi_Kernel_Entry
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_Kernel_FlowType.h b/include/com_amd_aparapi_Kernel_FlowType.h
new file mode 100644
index 0000000000000000000000000000000000000000..30b2ec599b5bfd797767784db5146dc0ede8033e
--- /dev/null
+++ b/include/com_amd_aparapi_Kernel_FlowType.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_Kernel_FlowType */
+
+#ifndef _Included_com_amd_aparapi_Kernel_FlowType
+#define _Included_com_amd_aparapi_Kernel_FlowType
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_Kernel_KernelState.h b/include/com_amd_aparapi_Kernel_KernelState.h
new file mode 100644
index 0000000000000000000000000000000000000000..8dcb99cb336985a832b1ad89df183577f1ee1bac
--- /dev/null
+++ b/include/com_amd_aparapi_Kernel_KernelState.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_Kernel_KernelState */
+
+#ifndef _Included_com_amd_aparapi_Kernel_KernelState
+#define _Included_com_amd_aparapi_Kernel_KernelState
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_Kernel_Local.h b/include/com_amd_aparapi_Kernel_Local.h
new file mode 100644
index 0000000000000000000000000000000000000000..0d09bfdd7228177cca8b443434d30e281b7ec684
--- /dev/null
+++ b/include/com_amd_aparapi_Kernel_Local.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_Kernel_Local */
+
+#ifndef _Included_com_amd_aparapi_Kernel_Local
+#define _Included_com_amd_aparapi_Kernel_Local
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_Kernel_OpenCLDelegate.h b/include/com_amd_aparapi_Kernel_OpenCLDelegate.h
new file mode 100644
index 0000000000000000000000000000000000000000..0e71b781f22d6cff7bbfaa60b74273f3488e98ed
--- /dev/null
+++ b/include/com_amd_aparapi_Kernel_OpenCLDelegate.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_Kernel_OpenCLDelegate */
+
+#ifndef _Included_com_amd_aparapi_Kernel_OpenCLDelegate
+#define _Included_com_amd_aparapi_Kernel_OpenCLDelegate
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_Kernel_OpenCLMapping.h b/include/com_amd_aparapi_Kernel_OpenCLMapping.h
new file mode 100644
index 0000000000000000000000000000000000000000..6864e49a5ecfdad8b61b358b0ad7d6bf4a6aa695
--- /dev/null
+++ b/include/com_amd_aparapi_Kernel_OpenCLMapping.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_Kernel_OpenCLMapping */
+
+#ifndef _Included_com_amd_aparapi_Kernel_OpenCLMapping
+#define _Included_com_amd_aparapi_Kernel_OpenCLMapping
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_Range.h b/include/com_amd_aparapi_Range.h
new file mode 100644
index 0000000000000000000000000000000000000000..5a4f770f9a1bdac9398c4c2a4c40bb0131a2db64
--- /dev/null
+++ b/include/com_amd_aparapi_Range.h
@@ -0,0 +1,17 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_Range */
+
+#ifndef _Included_com_amd_aparapi_Range
+#define _Included_com_amd_aparapi_Range
+#ifdef __cplusplus
+extern "C" {
+#endif
+#undef com_amd_aparapi_Range_THREADS_PER_CORE
+#define com_amd_aparapi_Range_THREADS_PER_CORE 16L
+#undef com_amd_aparapi_Range_MAX_OPENCL_GROUP_SIZE
+#define com_amd_aparapi_Range_MAX_OPENCL_GROUP_SIZE 1024L
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_device_Device.h b/include/com_amd_aparapi_device_Device.h
new file mode 100644
index 0000000000000000000000000000000000000000..950d817d6b1122385bf6b3ac76e12319ffb5c5e2
--- /dev/null
+++ b/include/com_amd_aparapi_device_Device.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_device_Device */
+
+#ifndef _Included_com_amd_aparapi_device_Device
+#define _Included_com_amd_aparapi_device_Device
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_device_Device_TYPE.h b/include/com_amd_aparapi_device_Device_TYPE.h
new file mode 100644
index 0000000000000000000000000000000000000000..b6ffda5f9250a39108283a2c5e73b948a8766e70
--- /dev/null
+++ b/include/com_amd_aparapi_device_Device_TYPE.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_device_Device_TYPE */
+
+#ifndef _Included_com_amd_aparapi_device_Device_TYPE
+#define _Included_com_amd_aparapi_device_Device_TYPE
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_device_OpenCLDevice.h b/include/com_amd_aparapi_device_OpenCLDevice.h
new file mode 100644
index 0000000000000000000000000000000000000000..6aee994fa9570c5b8b7657bcd9fb2d233a09961d
--- /dev/null
+++ b/include/com_amd_aparapi_device_OpenCLDevice.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_device_OpenCLDevice */
+
+#ifndef _Included_com_amd_aparapi_device_OpenCLDevice
+#define _Included_com_amd_aparapi_device_OpenCLDevice
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_device_OpenCLDevice_DeviceComparitor.h b/include/com_amd_aparapi_device_OpenCLDevice_DeviceComparitor.h
new file mode 100644
index 0000000000000000000000000000000000000000..96cc3a4f238930d44310048b2347530f60aa9387
--- /dev/null
+++ b/include/com_amd_aparapi_device_OpenCLDevice_DeviceComparitor.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_device_OpenCLDevice_DeviceComparitor */
+
+#ifndef _Included_com_amd_aparapi_device_OpenCLDevice_DeviceComparitor
+#define _Included_com_amd_aparapi_device_OpenCLDevice_DeviceComparitor
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_device_OpenCLDevice_DeviceSelector.h b/include/com_amd_aparapi_device_OpenCLDevice_DeviceSelector.h
new file mode 100644
index 0000000000000000000000000000000000000000..eeb9a5889e0ed2302970fbb29ec8acd855da9f01
--- /dev/null
+++ b/include/com_amd_aparapi_device_OpenCLDevice_DeviceSelector.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_device_OpenCLDevice_DeviceSelector */
+
+#ifndef _Included_com_amd_aparapi_device_OpenCLDevice_DeviceSelector
+#define _Included_com_amd_aparapi_device_OpenCLDevice_DeviceSelector
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_device_OpenCLDevice_OpenCLInvocationHandler.h b/include/com_amd_aparapi_device_OpenCLDevice_OpenCLInvocationHandler.h
new file mode 100644
index 0000000000000000000000000000000000000000..1dfb655ffddbe88c25e098c9ff82b6da0e45088e
--- /dev/null
+++ b/include/com_amd_aparapi_device_OpenCLDevice_OpenCLInvocationHandler.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_device_OpenCLDevice_OpenCLInvocationHandler */
+
+#ifndef _Included_com_amd_aparapi_device_OpenCLDevice_OpenCLInvocationHandler
+#define _Included_com_amd_aparapi_device_OpenCLDevice_OpenCLInvocationHandler
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_internal_jni_ConfigJNI.h b/include/com_amd_aparapi_internal_jni_ConfigJNI.h
new file mode 100644
index 0000000000000000000000000000000000000000..7cf6075c63a635c27da3048e5bdf5a8dd016e236
--- /dev/null
+++ b/include/com_amd_aparapi_internal_jni_ConfigJNI.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_internal_jni_ConfigJNI */
+
+#ifndef _Included_com_amd_aparapi_internal_jni_ConfigJNI
+#define _Included_com_amd_aparapi_internal_jni_ConfigJNI
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_internal_jni_KernelArgJNI.h b/include/com_amd_aparapi_internal_jni_KernelArgJNI.h
new file mode 100644
index 0000000000000000000000000000000000000000..4e0af5581e4c5391fbcd7a0ea355bf64f0837448
--- /dev/null
+++ b/include/com_amd_aparapi_internal_jni_KernelArgJNI.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_internal_jni_KernelArgJNI */
+
+#ifndef _Included_com_amd_aparapi_internal_jni_KernelArgJNI
+#define _Included_com_amd_aparapi_internal_jni_KernelArgJNI
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_internal_jni_KernelRunnerJNI.h b/include/com_amd_aparapi_internal_jni_KernelRunnerJNI.h
new file mode 100644
index 0000000000000000000000000000000000000000..6791475b00edd9bff51e1b85aab0114f4146b019
--- /dev/null
+++ b/include/com_amd_aparapi_internal_jni_KernelRunnerJNI.h
@@ -0,0 +1,127 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_internal_jni_KernelRunnerJNI */
+
+#ifndef _Included_com_amd_aparapi_internal_jni_KernelRunnerJNI
+#define _Included_com_amd_aparapi_internal_jni_KernelRunnerJNI
+#ifdef __cplusplus
+extern "C" {
+#endif
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_BOOLEAN
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_BOOLEAN 1L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_BYTE
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_BYTE 2L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_FLOAT
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_FLOAT 4L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_INT
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_INT 8L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_DOUBLE
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_DOUBLE 16L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_LONG
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_LONG 32L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_SHORT
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_SHORT 64L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_ARRAY
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_ARRAY 128L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_PRIMITIVE
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_PRIMITIVE 256L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_READ
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_READ 512L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_WRITE
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_WRITE 1024L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_LOCAL
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_LOCAL 2048L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_GLOBAL
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_GLOBAL 4096L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_CONSTANT
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_CONSTANT 8192L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_ARRAYLENGTH
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_ARRAYLENGTH 16384L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_APARAPI_BUFFER
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_APARAPI_BUFFER 32768L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_EXPLICIT
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_EXPLICIT 65536L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_EXPLICIT_WRITE
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_EXPLICIT_WRITE 131072L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_OBJ_ARRAY_STRUCT
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_OBJ_ARRAY_STRUCT 262144L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_CHAR
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_CHAR 2097152L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_STATIC
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_STATIC 4194304L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_GPU
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_GPU 4L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_SOURCE_FLOW
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_SOURCE_FLOW 1L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_BINARY_FLOW
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_BINARY_FLOW 2L
+#undef com_amd_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_DEFAULT_FLOW
+#define com_amd_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_DEFAULT_FLOW 4L
+/*
+ * Class:     com_amd_aparapi_internal_jni_KernelRunnerJNI
+ * Method:    initJNI
+ * Signature: (Lcom/amd/aparapi/Kernel;Lcom/amd/aparapi/device/OpenCLDevice;I)J
+ */
+JNIEXPORT jlong JNICALL Java_com_amd_aparapi_internal_jni_KernelRunnerJNI_initJNI
+  (JNIEnv *, jobject, jobject, jobject, jint);
+
+/*
+ * Class:     com_amd_aparapi_internal_jni_KernelRunnerJNI
+ * Method:    getJNI
+ * Signature: (JLjava/lang/Object;)I
+ */
+JNIEXPORT jint JNICALL Java_com_amd_aparapi_internal_jni_KernelRunnerJNI_getJNI
+  (JNIEnv *, jobject, jlong, jobject);
+
+/*
+ * Class:     com_amd_aparapi_internal_jni_KernelRunnerJNI
+ * Method:    buildProgramJNI
+ * Signature: (JLjava/lang/String;I)J
+ */
+JNIEXPORT jlong JNICALL Java_com_amd_aparapi_internal_jni_KernelRunnerJNI_buildProgramJNI
+  (JNIEnv *, jobject, jlong, jstring, jint);
+
+/*
+ * Class:     com_amd_aparapi_internal_jni_KernelRunnerJNI
+ * Method:    setArgsJNI
+ * Signature: (J[Lcom/amd/aparapi/internal/jni/KernelArgJNI;I)I
+ */
+JNIEXPORT jint JNICALL Java_com_amd_aparapi_internal_jni_KernelRunnerJNI_setArgsJNI
+  (JNIEnv *, jobject, jlong, jobjectArray, jint);
+
+/*
+ * Class:     com_amd_aparapi_internal_jni_KernelRunnerJNI
+ * Method:    runKernelJNI
+ * Signature: (JLcom/amd/aparapi/Range;ZI)I
+ */
+JNIEXPORT jint JNICALL Java_com_amd_aparapi_internal_jni_KernelRunnerJNI_runKernelJNI
+  (JNIEnv *, jobject, jlong, jobject, jboolean, jint);
+
+/*
+ * Class:     com_amd_aparapi_internal_jni_KernelRunnerJNI
+ * Method:    disposeJNI
+ * Signature: (J)I
+ */
+JNIEXPORT jint JNICALL Java_com_amd_aparapi_internal_jni_KernelRunnerJNI_disposeJNI
+  (JNIEnv *, jobject, jlong);
+
+/*
+ * Class:     com_amd_aparapi_internal_jni_KernelRunnerJNI
+ * Method:    getExtensionsJNI
+ * Signature: (J)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_amd_aparapi_internal_jni_KernelRunnerJNI_getExtensionsJNI
+  (JNIEnv *, jobject, jlong);
+
+/*
+ * Class:     com_amd_aparapi_internal_jni_KernelRunnerJNI
+ * Method:    getProfileInfoJNI
+ * Signature: (J)Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_amd_aparapi_internal_jni_KernelRunnerJNI_getProfileInfoJNI
+  (JNIEnv *, jobject, jlong);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_internal_jni_OpenCLJNI.h b/include/com_amd_aparapi_internal_jni_OpenCLJNI.h
new file mode 100644
index 0000000000000000000000000000000000000000..76a8e859b49d2d04f7565a2985ab027779c0dd39
--- /dev/null
+++ b/include/com_amd_aparapi_internal_jni_OpenCLJNI.h
@@ -0,0 +1,69 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_internal_jni_OpenCLJNI */
+
+#ifndef _Included_com_amd_aparapi_internal_jni_OpenCLJNI
+#define _Included_com_amd_aparapi_internal_jni_OpenCLJNI
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class:     com_amd_aparapi_internal_jni_OpenCLJNI
+ * Method:    getPlatforms
+ * Signature: ()Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_amd_aparapi_internal_jni_OpenCLJNI_getPlatforms
+  (JNIEnv *, jobject);
+
+/*
+ * Class:     com_amd_aparapi_internal_jni_OpenCLJNI
+ * Method:    createProgram
+ * Signature: (Lcom/amd/aparapi/device/OpenCLDevice;Ljava/lang/String;)Lcom/amd/aparapi/internal/opencl/OpenCLProgram;
+ */
+JNIEXPORT jobject JNICALL Java_com_amd_aparapi_internal_jni_OpenCLJNI_createProgram
+  (JNIEnv *, jobject, jobject, jstring);
+
+/*
+ * Class:     com_amd_aparapi_internal_jni_OpenCLJNI
+ * Method:    createKernelJNI
+ * Signature: (Lcom/amd/aparapi/internal/opencl/OpenCLProgram;Ljava/lang/String;[Lcom/amd/aparapi/internal/opencl/OpenCLArgDescriptor;)Lcom/amd/aparapi/internal/opencl/OpenCLKernel;
+ */
+JNIEXPORT jobject JNICALL Java_com_amd_aparapi_internal_jni_OpenCLJNI_createKernelJNI
+  (JNIEnv *, jobject, jobject, jstring, jobjectArray);
+
+/*
+ * Class:     com_amd_aparapi_internal_jni_OpenCLJNI
+ * Method:    invoke
+ * Signature: (Lcom/amd/aparapi/internal/opencl/OpenCLKernel;[Ljava/lang/Object;)V
+ */
+JNIEXPORT void JNICALL Java_com_amd_aparapi_internal_jni_OpenCLJNI_invoke
+  (JNIEnv *, jobject, jobject, jobjectArray);
+
+/*
+ * Class:     com_amd_aparapi_internal_jni_OpenCLJNI
+ * Method:    remap
+ * Signature: (Lcom/amd/aparapi/internal/opencl/OpenCLProgram;Lcom/amd/aparapi/internal/opencl/OpenCLMem;J)V
+ */
+JNIEXPORT void JNICALL Java_com_amd_aparapi_internal_jni_OpenCLJNI_remap
+  (JNIEnv *, jobject, jobject, jobject, jlong);
+
+/*
+ * Class:     com_amd_aparapi_internal_jni_OpenCLJNI
+ * Method:    getBytes
+ * Signature: (Ljava/lang/String;)[B
+ */
+JNIEXPORT jbyteArray JNICALL Java_com_amd_aparapi_internal_jni_OpenCLJNI_getBytes
+  (JNIEnv *, jobject, jstring);
+
+/*
+ * Class:     com_amd_aparapi_internal_jni_OpenCLJNI
+ * Method:    getMem
+ * Signature: (Lcom/amd/aparapi/internal/opencl/OpenCLProgram;Lcom/amd/aparapi/internal/opencl/OpenCLMem;)V
+ */
+JNIEXPORT void JNICALL Java_com_amd_aparapi_internal_jni_OpenCLJNI_getMem
+  (JNIEnv *, jobject, jobject, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_internal_jni_RangeJNI.h b/include/com_amd_aparapi_internal_jni_RangeJNI.h
new file mode 100644
index 0000000000000000000000000000000000000000..5802d944750dc6088881ccd76a94d92528ff33ab
--- /dev/null
+++ b/include/com_amd_aparapi_internal_jni_RangeJNI.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_internal_jni_RangeJNI */
+
+#ifndef _Included_com_amd_aparapi_internal_jni_RangeJNI
+#define _Included_com_amd_aparapi_internal_jni_RangeJNI
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_internal_kernel_KernelRunner.h b/include/com_amd_aparapi_internal_kernel_KernelRunner.h
new file mode 100644
index 0000000000000000000000000000000000000000..2819cc7d35fcfd374c54f71d439e6d1627547b11
--- /dev/null
+++ b/include/com_amd_aparapi_internal_kernel_KernelRunner.h
@@ -0,0 +1,63 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_internal_kernel_KernelRunner */
+
+#ifndef _Included_com_amd_aparapi_internal_kernel_KernelRunner
+#define _Included_com_amd_aparapi_internal_kernel_KernelRunner
+#ifdef __cplusplus
+extern "C" {
+#endif
+#undef com_amd_aparapi_internal_kernel_KernelRunner_ARG_BOOLEAN
+#define com_amd_aparapi_internal_kernel_KernelRunner_ARG_BOOLEAN 1L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_ARG_BYTE
+#define com_amd_aparapi_internal_kernel_KernelRunner_ARG_BYTE 2L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_ARG_FLOAT
+#define com_amd_aparapi_internal_kernel_KernelRunner_ARG_FLOAT 4L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_ARG_INT
+#define com_amd_aparapi_internal_kernel_KernelRunner_ARG_INT 8L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_ARG_DOUBLE
+#define com_amd_aparapi_internal_kernel_KernelRunner_ARG_DOUBLE 16L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_ARG_LONG
+#define com_amd_aparapi_internal_kernel_KernelRunner_ARG_LONG 32L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_ARG_SHORT
+#define com_amd_aparapi_internal_kernel_KernelRunner_ARG_SHORT 64L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_ARG_ARRAY
+#define com_amd_aparapi_internal_kernel_KernelRunner_ARG_ARRAY 128L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_ARG_PRIMITIVE
+#define com_amd_aparapi_internal_kernel_KernelRunner_ARG_PRIMITIVE 256L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_ARG_READ
+#define com_amd_aparapi_internal_kernel_KernelRunner_ARG_READ 512L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_ARG_WRITE
+#define com_amd_aparapi_internal_kernel_KernelRunner_ARG_WRITE 1024L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_ARG_LOCAL
+#define com_amd_aparapi_internal_kernel_KernelRunner_ARG_LOCAL 2048L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_ARG_GLOBAL
+#define com_amd_aparapi_internal_kernel_KernelRunner_ARG_GLOBAL 4096L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_ARG_CONSTANT
+#define com_amd_aparapi_internal_kernel_KernelRunner_ARG_CONSTANT 8192L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_ARG_ARRAYLENGTH
+#define com_amd_aparapi_internal_kernel_KernelRunner_ARG_ARRAYLENGTH 16384L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_ARG_APARAPI_BUFFER
+#define com_amd_aparapi_internal_kernel_KernelRunner_ARG_APARAPI_BUFFER 32768L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_ARG_EXPLICIT
+#define com_amd_aparapi_internal_kernel_KernelRunner_ARG_EXPLICIT 65536L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_ARG_EXPLICIT_WRITE
+#define com_amd_aparapi_internal_kernel_KernelRunner_ARG_EXPLICIT_WRITE 131072L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_ARG_OBJ_ARRAY_STRUCT
+#define com_amd_aparapi_internal_kernel_KernelRunner_ARG_OBJ_ARRAY_STRUCT 262144L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_ARG_CHAR
+#define com_amd_aparapi_internal_kernel_KernelRunner_ARG_CHAR 2097152L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_ARG_STATIC
+#define com_amd_aparapi_internal_kernel_KernelRunner_ARG_STATIC 4194304L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_JNI_FLAG_USE_GPU
+#define com_amd_aparapi_internal_kernel_KernelRunner_JNI_FLAG_USE_GPU 4L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_JNI_FLAG_SOURCE_FLOW
+#define com_amd_aparapi_internal_kernel_KernelRunner_JNI_FLAG_SOURCE_FLOW 1L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_JNI_FLAG_BINARY_FLOW
+#define com_amd_aparapi_internal_kernel_KernelRunner_JNI_FLAG_BINARY_FLOW 2L
+#undef com_amd_aparapi_internal_kernel_KernelRunner_JNI_FLAG_DEFAULT_FLOW
+#define com_amd_aparapi_internal_kernel_KernelRunner_JNI_FLAG_DEFAULT_FLOW 4L
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_internal_opencl_OpenCLArgDescriptor.h b/include/com_amd_aparapi_internal_opencl_OpenCLArgDescriptor.h
new file mode 100644
index 0000000000000000000000000000000000000000..1e608d6bcd6171dac32c6cb291949dcc063a9a6b
--- /dev/null
+++ b/include/com_amd_aparapi_internal_opencl_OpenCLArgDescriptor.h
@@ -0,0 +1,43 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_internal_opencl_OpenCLArgDescriptor */
+
+#ifndef _Included_com_amd_aparapi_internal_opencl_OpenCLArgDescriptor
+#define _Included_com_amd_aparapi_internal_opencl_OpenCLArgDescriptor
+#ifdef __cplusplus
+extern "C" {
+#endif
+#undef com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_BYTE_BIT
+#define com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_BYTE_BIT 1L
+#undef com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_SHORT_BIT
+#define com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_SHORT_BIT 2L
+#undef com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_INT_BIT
+#define com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_INT_BIT 4L
+#undef com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_FLOAT_BIT
+#define com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_FLOAT_BIT 8L
+#undef com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_LONG_BIT
+#define com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_LONG_BIT 16L
+#undef com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_DOUBLE_BIT
+#define com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_DOUBLE_BIT 32L
+#undef com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_ARRAY_BIT
+#define com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_ARRAY_BIT 64L
+#undef com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_PRIMITIVE_BIT
+#define com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_PRIMITIVE_BIT 128L
+#undef com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_GLOBAL_BIT
+#define com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_GLOBAL_BIT 256L
+#undef com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_LOCAL_BIT
+#define com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_LOCAL_BIT 512L
+#undef com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_CONST_BIT
+#define com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_CONST_BIT 1024L
+#undef com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_READONLY_BIT
+#define com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_READONLY_BIT 2048L
+#undef com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_WRITEONLY_BIT
+#define com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_WRITEONLY_BIT 4096L
+#undef com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_READWRITE_BIT
+#define com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_READWRITE_BIT 8192L
+#undef com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_ISARG_BIT
+#define com_amd_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_ISARG_BIT 16384L
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/com_amd_aparapi_internal_opencl_OpenCLMem.h b/include/com_amd_aparapi_internal_opencl_OpenCLMem.h
new file mode 100644
index 0000000000000000000000000000000000000000..2a6783659a889a07585ee85f3b0fc95389c319cd
--- /dev/null
+++ b/include/com_amd_aparapi_internal_opencl_OpenCLMem.h
@@ -0,0 +1,19 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_amd_aparapi_internal_opencl_OpenCLMem */
+
+#ifndef _Included_com_amd_aparapi_internal_opencl_OpenCLMem
+#define _Included_com_amd_aparapi_internal_opencl_OpenCLMem
+#ifdef __cplusplus
+extern "C" {
+#endif
+#undef com_amd_aparapi_internal_opencl_OpenCLMem_MEM_DIRTY_BIT
+#define com_amd_aparapi_internal_opencl_OpenCLMem_MEM_DIRTY_BIT 32768L
+#undef com_amd_aparapi_internal_opencl_OpenCLMem_MEM_COPY_BIT
+#define com_amd_aparapi_internal_opencl_OpenCLMem_MEM_COPY_BIT 65536L
+#undef com_amd_aparapi_internal_opencl_OpenCLMem_MEM_ENQUEUED_BIT
+#define com_amd_aparapi_internal_opencl_OpenCLMem_MEM_ENQUEUED_BIT 131072L
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/java b/java
index 7e6dba9bd88655aa2b024e47c98de93e1ee29338..b742d6deedbf7434af61eb5155cdfc021a5570ff 160000
--- a/java
+++ b/java
@@ -1 +1 @@
-Subproject commit 7e6dba9bd88655aa2b024e47c98de93e1ee29338
+Subproject commit b742d6deedbf7434af61eb5155cdfc021a5570ff
diff --git a/src/cpp/CLHelper.cpp b/src/cpp/CLHelper.cpp
index d7afc8feb64d2cde3c8a4ae6471beb785103667d..0864c245642ed8ffd406b695691274a5a419ada9 100644
--- a/src/cpp/CLHelper.cpp
+++ b/src/cpp/CLHelper.cpp
@@ -33,9 +33,13 @@
    direct product is subject to national security controls as identified on the Commerce Control List (currently 
    found in Supplement 1 to Part 774 of EAR).  For the most current Country Group listings, or for additional 
    information about the EAR or your obligations under those regulations, please refer to the U.S. Bureau of Industry
-   and Security’s website at http://www.bis.doc.gov/. 
+   and Security�s website at http://www.bis.doc.gov/. 
    */
 
+
+// !!! Oren change 6.21.13 -> define altera's OpenCL modifications
+//#define ALTERA_OPENCL
+
 #define CLHELPER_SOURCE
 #include "CLHelper.h"
 #include "List.h"
@@ -132,63 +136,57 @@ void CLHelper::getBuildErr(JNIEnv *jenv, cl_device_id deviceId,  cl_program prog
    delete []buildLog;
 }
 
-cl_program CLHelper::compile(JNIEnv *jenv, cl_context context, cl_device_id* deviceId, jstring* source, jstring* binaryKey, jstring* log, cl_int* status){
-   using std::map;
-   using std::vector;
-   using std::string;
-
-   static map<string, vector<unsigned char *> > src2bin;
-   static map<string, vector<size_t> > src2len;
-
-   const char* sourceChars = jenv->GetStringUTFChars(*source, NULL);
-   const char* keyChars = jenv->GetStringUTFChars(*binaryKey, NULL);
-   string sourceStr(sourceChars);
-   string keyStr(keyChars);
+inline cl_program CLHelper::buildProgram(cl_program program, size_t deviceCount, cl_int* status, cl_device_id* deviceIds, JNIEnv* jenv, jstring* log)
+{
+	*status = clBuildProgram(program, deviceCount, deviceIds, NULL, NULL, NULL);
+	if (*status == CL_BUILD_PROGRAM_FAILURE) {
+		getBuildErr(jenv, *deviceIds, program, log);
+	}
+	return program;
+}
 
-   size_t sourceLength[] = {sourceStr.length()};
+cl_program CLHelper::compile(JNIEnv *jenv, cl_context context, size_t deviceCount, cl_device_id* deviceIds, jstring source, jstring* log, cl_int* status)
+{
+   const char *sourceChars = jenv->GetStringUTFChars(source, NULL);
+   size_t sourceSize[] = { strlen(sourceChars) };
+   cl_program program = clCreateProgramWithSource(context, 1, &sourceChars, sourceSize, status);
+   jenv->ReleaseStringUTFChars(source, sourceChars);
 
-   bool cacheDisabled = jenv->GetStringLength(*binaryKey) == 0;
+   program = buildProgram(program, deviceCount, status, deviceIds, jenv, log);
+   return(program);
+}
 
-   cl_program program;
-   bool is_built_from_source = false;
-   bool keyNotFound = src2bin.find(keyStr) == src2bin.end();
+cl_program CLHelper::createProgramWithSource(JNIEnv *jenv, cl_context context, size_t deviceCount, cl_device_id* deviceIds, const char *sourceChars, jstring* log, cl_int* status)
+{
+   size_t sourceSize[] = { strlen(sourceChars) };
+   cl_program program = clCreateProgramWithSource(context, 1, &sourceChars, sourceSize, status);
 
-   if (cacheDisabled || keyNotFound) {
-      is_built_from_source = true;
-      program = clCreateProgramWithSource(context, 1, &sourceChars, sourceLength, status);
-   }
-   else{
-      cl_int *binary_status = new cl_int[1];
-      program = clCreateProgramWithBinary(context, 1, deviceId, &src2len[keyStr][0], (const unsigned char**)&src2bin[keyStr][0], binary_status, NULL);
-      cl_int theStatus = binary_status[0];
-      if (theStatus != CL_SUCCESS) {
-         getBuildErr(jenv, *deviceId, program, log);
-      }
-      delete[] binary_status;
-   }
-
-   jenv->ReleaseStringUTFChars(*source, sourceChars);
-   jenv->ReleaseStringUTFChars(*binaryKey, keyChars);
+   program = buildProgram(program, deviceCount, status, deviceIds, jenv, log);
+   return(program);
+}
 
-   *status = clBuildProgram(program, 1, deviceId, NULL, NULL, NULL);
-   if(*status == CL_BUILD_PROGRAM_FAILURE) {
-      getBuildErr(jenv, *deviceId, program, log);
+// !!! oren change 2015 -> for FPGA binary kernels and allow to manually modify the generated code for other platforms
+cl_program CLHelper::createProgramWithBinary(JNIEnv *jenv, cl_context context, size_t deviceCount, cl_device_id* deviceIds, const char *fileName, jstring* log, cl_int* status)
+{
+   size_t lengths[1];
+   unsigned char* binaries[1] ={NULL};
+   cl_int error;
+   FILE *fp = fopen(fileName,"rb");
+   if(fp!=NULL)
+   {
+	  fseek(fp,0,SEEK_END);
+	  lengths[0] =ftell(fp);
+	  binaries[0]= (unsigned char*)malloc(sizeof(unsigned char)*lengths[0]);
+	  rewind(fp);
+	  fread(binaries[0],lengths[0],1,fp);
+	  fclose(fp);
    }
+   else
+     fprintf(stderr, "!!! Load binary file failed: %s\n",fileName);
 
-   if(is_built_from_source && !cacheDisabled) {
-      vector<unsigned char *> &bins = src2bin[keyStr];
-      vector<size_t> &lens = src2len[keyStr];
+   cl_program program = clCreateProgramWithBinary(context,deviceCount, deviceIds,lengths,(const unsigned char **)binaries,status,&error);
 
-      bins.resize(1);
-      lens.resize(1);
-
-      clGetProgramInfo(program, CL_PROGRAM_BINARY_SIZES, sizeof(size_t), &lens[0], NULL);
-      for(size_t i = 0; i < 1; ++i){
-         bins[i] = new unsigned char[lens[i]];
-      }
-
-      clGetProgramInfo(program, CL_PROGRAM_BINARIES, sizeof(unsigned char*), &bins[0], NULL);
-   }
+   program = buildProgram(program, deviceCount, status, deviceIds, jenv, log);
    return(program);
 }
 
diff --git a/src/cpp/CLHelper.h b/src/cpp/CLHelper.h
index 71f761efe26dfc38163c71c1e07ef69afb923680..493a74f04df832f2644a97affd64abcce93828d0 100644
--- a/src/cpp/CLHelper.h
+++ b/src/cpp/CLHelper.h
@@ -45,8 +45,13 @@ class CLHelper{
    public:
    static const char *errString(cl_int status);
    static void getBuildErr(JNIEnv *jenv, cl_device_id deviceId, cl_program program, jstring *log);
-   static cl_program compile(JNIEnv *jenv, cl_context context, cl_device_id* deviceId, jstring* source, jstring* binaryKey, jstring* log, cl_int *status);
+   inline static cl_program buildProgram(cl_program program, size_t deviceCount, cl_int* status, cl_device_id* deviceIds, JNIEnv* jenv, jstring* log);
    static jstring getExtensions(JNIEnv *jenv, cl_device_id deviceId, cl_int *status);
+   static cl_program compile(JNIEnv *jenv, cl_context context, size_t deviceCount, cl_device_id* deviceId, jstring source, jstring* log, cl_int *status);
+   // !!! oren change 2015 -> for FPGA binary kernels and allow to manually modify the generated code for other platforms
+   static cl_program createProgramWithSource(JNIEnv *jenv, cl_context context, size_t deviceCount, cl_device_id* deviceId, const char *sourceChars, jstring* log, cl_int *status);
+   static cl_program createProgramWithBinary(JNIEnv *jenv, cl_context context, size_t deviceCount, cl_device_id* deviceIds, const char *fileName, jstring* log, cl_int* status);
+   //static void outputOCLFile(JNIEnv* jenv, JNIContext* jniContext, const char *sourceStr);
 };
 
 #endif // CLHELPER_H
diff --git a/src/cpp/invoke/OpenCLJNI.cpp b/src/cpp/invoke/OpenCLJNI.cpp
index f94c152a09090e923fda456c2dc9036124983442..eae1c62b4e47655ad935c712248d0ccd4d647d36 100644
--- a/src/cpp/invoke/OpenCLJNI.cpp
+++ b/src/cpp/invoke/OpenCLJNI.cpp
@@ -38,6 +38,7 @@
 
 /** @opencljni.cpp */
 
+
 #define OPENCLJNI_SOURCE
 #include "OpenCLJNI.h"
 #include "OpenCLArgDescriptor.h"
@@ -423,13 +424,14 @@ JNI_JAVA(void, OpenCLJNI, invoke)
    }
 
 JNI_JAVA(jobject, OpenCLJNI, getPlatforms)
-   (JNIEnv *jenv, jobject jobj) {
+   (JNIEnv *jenv, jobject jobj)
+   {
       jobject platformListInstance = JNIHelper::createInstance(jenv, ArrayListClass, VoidReturn);
       cl_int status = CL_SUCCESS;
       cl_uint platformc;
 
       status = clGetPlatformIDs(0, NULL, &platformc);
-      //fprintf(stderr, "There are %d platforms\n", platformc);
+      fprintf(stderr, "There are %d platforms\n", platformc);
       cl_platform_id* platformIds = new cl_platform_id[platformc];
       status = clGetPlatformIDs(platformc, platformIds, NULL);
 
@@ -458,12 +460,13 @@ JNI_JAVA(jobject, OpenCLJNI, getPlatforms)
                      jenv->NewStringUTF(platformVendorName),
                      jenv->NewStringUTF(platformName)
                      );
-               JNIHelper::callVoid(jenv, platformListInstance, "add", ArgsBooleanReturn(ObjectClassArg), platformInstance);
+            JNIHelper::callVoid(jenv, platformListInstance, "add", ArgsBooleanReturn(ObjectClassArg), platformInstance);
 
                cl_uint deviceIdc;
-               cl_device_type requestedDeviceType =CL_DEVICE_TYPE_CPU |CL_DEVICE_TYPE_GPU | CL_DEVICE_TYPE_ACCELERATOR;
+               cl_device_type requestedDeviceType = CL_DEVICE_TYPE_ALL;
                status = clGetDeviceIDs(platformIds[platformIdx], requestedDeviceType, 0, NULL, &deviceIdc);
                if (status == CL_SUCCESS && deviceIdc > 0 ){
+                  fprintf(stderr, "found %d devices\n", deviceIdc);
                   cl_device_id* deviceIds = new cl_device_id[deviceIdc];
                   status = clGetDeviceIDs(platformIds[platformIdx], requestedDeviceType, deviceIdc, deviceIds, NULL);
                   if (status == CL_SUCCESS){
@@ -472,19 +475,19 @@ JNI_JAVA(jobject, OpenCLJNI, getPlatforms)
                         cl_device_type deviceType;
                         status = clGetDeviceInfo(deviceIds[deviceIdx], CL_DEVICE_TYPE,  sizeof(deviceType), &deviceType, NULL);
                         jobject deviceTypeEnumInstance = JNIHelper::getStaticFieldObject(jenv, DeviceTypeClass, "UNKNOWN", DeviceTypeClassArg);
-                        //fprintf(stderr, "device[%d] CL_DEVICE_TYPE = ", deviceIdx);
+                        fprintf(stderr, "device[%d] CL_DEVICE_TYPE = ", deviceIdx);
                         if (deviceType & CL_DEVICE_TYPE_DEFAULT) {
                            deviceType &= ~CL_DEVICE_TYPE_DEFAULT;
-                           //fprintf(stderr, "Default ");
+                           fprintf(stderr, "Default ");
                         }
                         if (deviceType & CL_DEVICE_TYPE_CPU) {
                            deviceType &= ~CL_DEVICE_TYPE_CPU;
-                           //fprintf(stderr, "CPU ");
+                           fprintf(stderr, "CPU ");
                            deviceTypeEnumInstance = JNIHelper::getStaticFieldObject(jenv, DeviceTypeClass, "CPU", DeviceTypeClassArg);
                         }
                         if (deviceType & CL_DEVICE_TYPE_GPU) {
                            deviceType &= ~CL_DEVICE_TYPE_GPU;
-                           //fprintf(stderr, "GPU ");
+                           fprintf(stderr, "GPU ");
                            deviceTypeEnumInstance = JNIHelper::getStaticFieldObject(jenv, DeviceTypeClass, "GPU", DeviceTypeClassArg);
                         }
                         if (deviceType & CL_DEVICE_TYPE_ACCELERATOR) {
@@ -492,11 +495,11 @@ JNI_JAVA(jobject, OpenCLJNI, getPlatforms)
                            //fprintf(stderr, "Accelerator ");
                            deviceTypeEnumInstance = JNIHelper::getStaticFieldObject(jenv, DeviceTypeClass, "ACC", DeviceTypeClassArg);
                         }
-                        //fprintf(stderr, "(0x%llx) ", deviceType);
-                        //fprintf(stderr, "\n");
+                        fprintf(stderr, "(0x%llx) ", deviceType);
+                        fprintf(stderr, "\n");
 
 
-                        //fprintf(stderr, "device type pointer %p", deviceTypeEnumInstance);
+                        fprintf(stderr, "device type pointer %p", deviceTypeEnumInstance);
                         jobject deviceInstance = JNIHelper::createInstance(jenv, OpenCLDeviceClass, ArgsVoidReturn( OpenCLPlatformClassArg LongArg DeviceTypeClassArg  ),
                               platformInstance,
                               (jlong)deviceIds[deviceIdx],
@@ -506,42 +509,42 @@ JNI_JAVA(jobject, OpenCLJNI, getPlatforms)
 
                         cl_uint maxComputeUnits;
                         status = clGetDeviceInfo(deviceIds[deviceIdx], CL_DEVICE_MAX_COMPUTE_UNITS,  sizeof(maxComputeUnits), &maxComputeUnits, NULL);
-                        //fprintf(stderr, "device[%d] CL_DEVICE_MAX_COMPUTE_UNITS = %u\n", deviceIdx, maxComputeUnits);
+                        fprintf(stderr, "device[%d] CL_DEVICE_MAX_COMPUTE_UNITS = %u\n", deviceIdx, maxComputeUnits);
                         JNIHelper::callVoid(jenv, deviceInstance, "setMaxComputeUnits", ArgsVoidReturn(IntArg),  maxComputeUnits);
 
 
 
                         cl_uint maxWorkItemDimensions;
                         status = clGetDeviceInfo(deviceIds[deviceIdx], CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS,  sizeof(maxWorkItemDimensions), &maxWorkItemDimensions, NULL);
-                        //fprintf(stderr, "device[%d] CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS = %u\n", deviceIdx, maxWorkItemDimensions);
+                        fprintf(stderr, "device[%d] CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS = %u\n", deviceIdx, maxWorkItemDimensions);
                         JNIHelper::callVoid(jenv, deviceInstance, "setMaxWorkItemDimensions",  ArgsVoidReturn(IntArg),  maxWorkItemDimensions);
 
                         size_t *maxWorkItemSizes = new size_t[maxWorkItemDimensions];
                         status = clGetDeviceInfo(deviceIds[deviceIdx], CL_DEVICE_MAX_WORK_ITEM_SIZES,  sizeof(size_t)*maxWorkItemDimensions, maxWorkItemSizes, NULL);
 
                         for (unsigned dimIdx = 0; dimIdx < maxWorkItemDimensions; dimIdx++){
-                           //fprintf(stderr, "device[%d] dim[%d] = %d\n", deviceIdx, dimIdx, maxWorkItemSizes[dimIdx]);
+                           fprintf(stderr, "device[%d] dim[%d] = %d\n", deviceIdx, dimIdx, maxWorkItemSizes[dimIdx]);
                            JNIHelper::callVoid(jenv, deviceInstance, "setMaxWorkItemSize", ArgsVoidReturn(IntArg IntArg), dimIdx,maxWorkItemSizes[dimIdx]);
                         }
 
                         size_t maxWorkGroupSize;
                         status = clGetDeviceInfo(deviceIds[deviceIdx], CL_DEVICE_MAX_WORK_GROUP_SIZE,  sizeof(maxWorkGroupSize), &maxWorkGroupSize, NULL);
-                        //fprintf(stderr, "device[%d] CL_DEVICE_MAX_GROUP_SIZE = %u\n", deviceIdx, maxWorkGroupSize);
+                        fprintf(stderr, "device[%d] CL_DEVICE_MAX_GROUP_SIZE = %u\n", deviceIdx, maxWorkGroupSize);
                         JNIHelper::callVoid(jenv, deviceInstance, "setMaxWorkGroupSize",  ArgsVoidReturn(IntArg),  maxWorkGroupSize);
 
                         cl_ulong maxMemAllocSize;
                         status = clGetDeviceInfo(deviceIds[deviceIdx], CL_DEVICE_MAX_MEM_ALLOC_SIZE,  sizeof(maxMemAllocSize), &maxMemAllocSize, NULL);
-                        //fprintf(stderr, "device[%d] CL_DEVICE_MAX_MEM_ALLOC_SIZE = %lu\n", deviceIdx, maxMemAllocSize);
+                        fprintf(stderr, "device[%d] CL_DEVICE_MAX_MEM_ALLOC_SIZE = %lu\n", deviceIdx, maxMemAllocSize);
                         JNIHelper::callVoid(jenv, deviceInstance, "setMaxMemAllocSize",  ArgsVoidReturn(LongArg),  maxMemAllocSize);
 
                         cl_ulong globalMemSize;
                         status = clGetDeviceInfo(deviceIds[deviceIdx], CL_DEVICE_GLOBAL_MEM_SIZE,  sizeof(globalMemSize), &globalMemSize, NULL);
-                        //fprintf(stderr, "device[%d] CL_DEVICE_GLOBAL_MEM_SIZE = %lu\n", deviceIdx, globalMemSize);
+                        fprintf(stderr, "device[%d] CL_DEVICE_GLOBAL_MEM_SIZE = %lu\n", deviceIdx, globalMemSize);
                         JNIHelper::callVoid(jenv, deviceInstance, "setGlobalMemSize", ArgsVoidReturn(LongArg),  globalMemSize);
 
                         cl_ulong localMemSize;
                         status = clGetDeviceInfo(deviceIds[deviceIdx], CL_DEVICE_LOCAL_MEM_SIZE,  sizeof(localMemSize), &localMemSize, NULL);
-                        //fprintf(stderr, "device[%d] CL_DEVICE_LOCAL_MEM_SIZE = %lu\n", deviceIdx, localMemSize);
+                        fprintf(stderr, "device[%d] CL_DEVICE_LOCAL_MEM_SIZE = %lu\n", deviceIdx, localMemSize);
                         JNIHelper::callVoid(jenv, deviceInstance, "setLocalMemSize", ArgsVoidReturn(LongArg),  localMemSize);
 
                         char* value;
@@ -556,7 +559,7 @@ JNI_JAVA(jobject, OpenCLJNI, getPlatforms)
                }
             }
          }
-      }
+      //}
 
       return (platformListInstance);
    }
diff --git a/src/cpp/runKernel/Aparapi.cpp b/src/cpp/runKernel/Aparapi.cpp
index 956a67ba442d4984a66d2638d34127eb41ffa511..ea7a33fc5420b794e3843a4212e746f49f03d647 100644
--- a/src/cpp/runKernel/Aparapi.cpp
+++ b/src/cpp/runKernel/Aparapi.cpp
@@ -36,6 +36,7 @@
    and Security?s website at http://www.bis.doc.gov/. 
    */
 
+
 #define APARAPI_SOURCE
 
 //this is a workaround for windows machines since <windows.h> defines min/max that break code.
@@ -49,12 +50,15 @@
 #include "CLHelper.h"
 #include "List.h"
 #include <algorithm>
+//#include <string>
 
 static const int PASS_ID_PREPARING_EXECUTION = -2;
 static const int PASS_ID_COMPLETED_EXECUTION = -1;
 static const int CANCEL_STATUS_FALSE = 0;
 static const int CANCEL_STATUS_TRUE = 1;
 
+#include "ConfigSettings.h"
+
 //compiler dependant code
 /**
  * calls either clEnqueueMarker or clEnqueueMarkerWithWaitList 
@@ -875,7 +879,12 @@ void enqueueKernel(JNIContext* jniContext, Range& range, int passes, int argPos,
             jniContext->commandQueue,
             jniContext->kernel,
             range.dims,
+    	    // !!! oren change -> Altera OpenCL complains about offset being set -> failed invalid global offset
+#ifndef ALTERA_OPENCL
             range.offsets,
+#else   // need null for Altera
+            NULL,
+#endif
             range.globalDims,
             range.localDims,
             writeCount,
@@ -885,8 +894,14 @@ void enqueueKernel(JNIContext* jniContext, Range& range, int passes, int argPos,
       if (status != CL_SUCCESS) {
 
          for(int i = 0; i<range.dims;i++) {
-            fprintf(stderr, "after clEnqueueNDRangeKernel, globalSize[%d] = %d, localSize[%d] = %d\n",
-                  i, (int)range.globalDims[i], i, (int)range.localDims[i]);
+    	  // !!! oren change -> print more info 
+         //for(int i = 0; i<range.dims;i++) {
+         //   fprintf(stderr, "after clEnqueueNDRangeKernel, globalSize[%d] = %d, localSize[%d] = %d\n",
+         //         i, (int)range.globalDims[i], i, (int)range.localDims[i]);
+        	fprintf(stderr, "clEnqueueNDRangeKernel Error = %d\n",status);
+            fprintf(stderr, "after clEnqueueNDRangeKernel, globalSize[%d] = %d, localSize[%d] = %d, offsets[%d] = %d\n",
+                  i, (int)range.globalDims[i], i, (int)range.localDims[i],i, (int)range.localDims[i], i, (int)range.offsets[i]);
+
          }
          throw CLException(status, "clEnqueueNDRangeKernel()");
       }
@@ -1159,6 +1174,66 @@ JNI_JAVA(jlong, KernelRunnerJNI, initJNI)
       }
    }
 
+// !!! oren change -> add ability to save kernel class name for multi kernel option
+inline char* getClassName(JNIEnv* jenv, JNIContext* jniContext, const char *optExStr=NULL)
+{
+   jclass classMethodAccess = jenv->FindClass("java/lang/Class");
+   jmethodID getNameID = jenv->GetMethodID(classMethodAccess,"getName","()Ljava/lang/String;");
+   jstring className = (jstring)jenv->CallObjectMethod(jniContext->kernelClass, getNameID);
+   const char *classNameChars = jenv->GetStringUTFChars(className, NULL);
+
+   // calc str requierd size
+   int strLen = strlen(classNameChars);
+   if(optExStr!=NULL)
+	   strLen += strlen(optExStr);
+
+   char* classNameStr = new char[strLen+1];
+      strcpy(classNameStr,classNameChars);
+
+   // !!! Java adds '$' chars to inner class names so replace them with '.'
+   char *charPtr = classNameStr;
+   while(charPtr = strchr(charPtr,'$'))
+   {
+	   *charPtr = jniContext->platformConfigPtr->getFileSeperator();//BINARY_FILE_SEP;
+	   charPtr++;
+   }
+
+   // add optional extension if any
+   if(optExStr)
+	   strcat(classNameStr,optExStr);
+
+   //sprintf(fnameStr, "%s.%s.%d.%llx\n", classNameChars, timeStr, pid, jniContext);
+   //sprintf(nameStr, "aparapiprof.%s.%d.%016lx", timeStr, pid, (unsigned long)jniContext);
+   jenv->ReleaseStringUTFChars(className, classNameChars);
+
+   return classNameStr;
+}
+
+const char *OSPathSeparator =
+#ifdef _WIN32
+                            "\\";
+#else
+                            "/";
+#endif
+
+char *buildFilePath(const char *basePart,const char *filePart)
+{
+    int fullPathLength = strlen(filePart);
+    if(basePart!=NULL)
+    	fullPathLength += strlen(basePart);
+    char *fullPath = new char[fullPathLength + 1];
+    //!!! poz bug fix - init to null !!!
+    fullPath[0]='\0';
+    if(basePart!=NULL)
+    {
+      strcpy(fullPath,basePart);
+      // !!! Handle os dependent separator !!!
+      if(fullPath[strlen(fullPath)-1]!=OSPathSeparator[0])
+        strcat(fullPath,OSPathSeparator);
+    }
+    strcat(fullPath,filePart);
+    return fullPath;
+}
 
 void writeProfile(JNIEnv* jenv, JNIContext* jniContext) {
    // compute profile filename
@@ -1166,10 +1241,18 @@ void writeProfile(JNIEnv* jenv, JNIContext* jniContext) {
    // timestamp
    // kernel name
 
-   jclass classMethodAccess = jenv->FindClass("java/lang/Class"); 
-   jmethodID getNameID = jenv->GetMethodID(classMethodAccess,"getName","()Ljava/lang/String;");
-   jstring className = (jstring)jenv->CallObjectMethod(jniContext->kernelClass, getNameID);
-   const char *classNameChars = jenv->GetStringUTFChars(className, NULL);
+   //jclass classMethodAccess = jenv->FindClass("java/lang/Class");
+   //jmethodID getNameID = jenv->GetMethodID(classMethodAccess,"getName","()Ljava/lang/String;");
+   //jstring className = (jstring)jenv->CallObjectMethod(jniContext->kernelClass, getNameID);
+   //const char *classNameChars = jenv->GetStringUTFChars(className, NULL);
+
+   //
+   // !!! oren change -> change the csv profiling info file naming convention to make it easier to track them (use classname + user fileNameFormatStr)
+   //
+   const char *fileNameFormatStr =config->getProfilingFileNameFormatStr();
+
+   const char *fileNameBaseStr = getClassName(jenv,jniContext,NULL);
+
 
    const size_t TIME_STR_LEN = 200;
 
@@ -1181,14 +1264,31 @@ void writeProfile(JNIEnv* jenv, JNIContext* jniContext) {
       perror("localtime");
    }
    //strftime(timeStr, TIME_STR_LEN, "%F.%H%M%S", tmp);  %F seemed to cause a core dump
-   strftime(timeStr, TIME_STR_LEN, "%H%M%S", tmp);
+   //strftime(timeStr, TIME_STR_LEN, "%H%M%S", tmp);
+   // !!! oren change -> changed to an ISO like format
+   strftime(timeStr, TIME_STR_LEN, "%Y-%m-%dT%H%M%S", tmp);
+
+   int strLen = strlen(fileNameBaseStr) + strlen(timeStr);
+   if(fileNameFormatStr!=NULL)
+	   strLen+= strlen(fileNameFormatStr);
+
+   // !!! Note -> add lots of padding space for pid -> 60 digits * 2 (16bit per char)
+   // !!! would be better to change to log10 of max int * 2 ? 64bit => ~20 digits
+   char* fnameStr = new char[strLen + 128];
 
-   char* fnameStr = new char[strlen(classNameChars) + strlen(timeStr) + 128];
    jint pid = getProcess();
 
    //sprintf(fnameStr, "%s.%s.%d.%llx\n", classNameChars, timeStr, pid, jniContext);
-   sprintf(fnameStr, "aparapiprof.%s.%d.%p", timeStr, pid, jniContext);
-   jenv->ReleaseStringUTFChars(className, classNameChars);
+
+   //if(fileNameFormatStr!=NULL)
+   //sprintf(fnameStr, "%s.%s.%d", fileNameBaseStr, fileNameFormatStr, timeStr, pid);
+   sprintf(fnameStr, "%s.%s.%s.%d.apf", fileNameBaseStr, fileNameFormatStr, timeStr, pid);
+   //else
+   //  sprintf(fnameStr, "aparapiprof.%s.%d.%016lx", timeStr, pid, (unsigned long)jniContext);
+   delete []fileNameBaseStr;
+
+   //jenv->ReleaseStringUTFChars(className, classNameChars);
+   fprintf(stderr, "Profiling data file => %s\n",fnameStr);
 
    FILE* profileFile = fopen(fnameStr, "w");
    if (profileFile != NULL) {
@@ -1200,17 +1300,84 @@ void writeProfile(JNIEnv* jenv, JNIContext* jniContext) {
    delete []fnameStr;
 }
 
+#define AUTO_GEN_KERNEL_STR_STAMP "/* Auto Generated APARAPI-UCores OpenCL Kernel */\n"
+
+inline void outputOCLFile(JNIEnv* jenv, JNIContext* jniContext, const char *sourceStr)
+{
+    char *clFileName = getClassName(jenv,jniContext,".cl");
+ 	fprintf(stderr, "Output kernel file => %s\n",clFileName);
+    //const char *sourceChars = jenv->GetStringUTFChars(source, NULL);
+
+    FILE *fp = fopen(clFileName,"wt");
+    if(fp!=NULL)
+    {
+  	  //strftime(timeStr, TIME_STR_LEN, "%H%M%S", tmp);
+      fprintf(fp,"%s%s",AUTO_GEN_KERNEL_STR_STAMP,sourceStr);
+      //fprintf(fp,"%s",sourceStr);
+ 	  fclose(fp);
+    }
+    else
+      fprintf(stderr, "!!! Output kernel file failed\n");
+
+
+    //jenv->ReleaseStringUTFChars(source, sourceChars);
+ 	delete []clFileName;
+
+}
+
+inline void verifyFlow(JNIContext* jniContext, jint &buildFlags)
+{
+	PlatformConfig::Ptr platformConfigPtr = jniContext->platformConfigPtr;
+    // verify flow support is available
+    if(!(platformConfigPtr->getFlowSupport() & buildFlags))
+    {
+        fprintf(stderr, "!!! Error requested flow(%0xd) not available !!!\n",buildFlags);
+        throw CLException(CL_INVALID_VALUE,"buildProgramJNI() -> bad request flow");
+    }
+
+    // check/set if default flow is requested
+    if(buildFlags==DEFAULT_FLOW)
+    	buildFlags = platformConfigPtr->getDefaultFlowSupport();
+}
+
 JNI_JAVA(jlong, KernelRunnerJNI, buildProgramJNI)
-   (JNIEnv *jenv, jobject jobj, jlong jniContextHandle, jstring source, jstring binaryKey) {
+   (JNIEnv *jenv, jobject jobj, jlong jniContextHandle, jstring source, jstring binaryKey, jint buildFlags) {
       JNIContext* jniContext = JNIContext::getJNIContext(jniContextHandle);
       if (jniContext == NULL){
          return 0;
       }
 
       try {
-         cl_int status = CL_SUCCESS;
+        cl_int status = CL_SUCCESS;
+
+        const char *sourceChars = jenv->GetStringUTFChars(source, NULL);
+
+#ifdef OUTPUT_OCL_FILE
+        outputOCLFile(jenv,jniContext,sourceChars);
+#endif
+
+        // !!! oren change ->
+        // verify the flow and modify if need be
+        verifyFlow(jniContext,buildFlags);
+
+//#ifdef USE_BINARY_FILE
+        if(buildFlags & com_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_BINARY_FLOW)
+        {
+          char *binFileFolder = getenv(BINARY_FOLDER_ENV_VAR);
+          fprintf(stderr, "Bin Folder is %s\n",binFileFolder);
+          char *binFileName = getClassName(jenv,jniContext,jniContext->platformConfigPtr->getBinFileExtension());//BINARY_FILE_EXT
+          char *fullBinFilePath = buildFilePath(binFileFolder,binFileName);
+          fprintf(stderr, "FullBinFilePath is %s\n",fullBinFilePath);
+     	  jniContext->program = CLHelper::createProgramWithBinary(jenv, jniContext->context,  1, &jniContext->deviceId, fullBinFilePath, NULL, &status);
+     	  delete []binFileName;
+     	  delete []fullBinFilePath;
+        }
+//#else
+        else
+          jniContext->program = CLHelper::createProgramWithSource(jenv, jniContext->context,  1, &jniContext->deviceId, sourceChars, NULL, &status);
+//#endif
 
-         jniContext->program = CLHelper::compile(jenv, jniContext->context, &jniContext->deviceId, &source, &binaryKey, NULL, &status);
+        jenv->ReleaseStringUTFChars(source, sourceChars);
 
          if(status == CL_BUILD_PROGRAM_FAILURE) throw CLException(status, "");
 
diff --git a/src/cpp/runKernel/ArrayBuffer.cpp b/src/cpp/runKernel/ArrayBuffer.cpp
index b3947681371e6d756a35dadd94d09b223d215b03..f8fac0b1268ef711f78c9a14b2c0b3afe206db35 100644
--- a/src/cpp/runKernel/ArrayBuffer.cpp
+++ b/src/cpp/runKernel/ArrayBuffer.cpp
@@ -49,6 +49,8 @@ ArrayBuffer::ArrayBuffer():
    isPinned(false){
    }
 
+#ifndef TEST_ALIGNED_MEM
+
 void ArrayBuffer::unpinAbort(JNIEnv *jenv){
    jenv->ReleasePrimitiveArrayCritical((jarray)javaArray, addr,JNI_ABORT);
    isPinned = JNI_FALSE;
@@ -62,3 +64,76 @@ void ArrayBuffer::pin(JNIEnv *jenv){
    addr = jenv->GetPrimitiveArrayCritical((jarray)javaArray,&isCopy);
    isPinned = JNI_TRUE;
 }
+
+#else // defined TEST_ALIGNED_MEM
+ArrayBuffer::~ArrayBuffer()
+{
+   // !!! oren fix mem leak
+   if(addr!=NULL)
+   {
+     acl_aligned_free(addr);//aclPtr
+ 	 fprintf(stderr, "Deallocated %d bytes at address %x\n",lengthInBytes,(long)addr);
+     //addr = NULL;
+   }
+}
+
+void ArrayBuffer::unpinAbort(JNIEnv *jenv){
+   // !!! oren mem test
+   //jenv->ReleasePrimitiveArrayCritical((jarray)javaArray, addr,JNI_ABORT);
+	// if its a read only argument we don't need to copy data back
+	//if (!isMutableByKernel())
+   //memcpy(addrJVM,addr,lengthInBytes);
+   //jenv->MonitorEnter(javaArray);
+   if(addr!=NULL)
+   {
+     acl_aligned_free(addr);//aclPtr
+ 	 fprintf(stderr, "Deallocated %d bytes at address %x\n",lengthInBytes,(long)addr);
+     addr = NULL;
+   }
+   //jenv->MonitorExit(javaArray);
+
+   jenv->ReleasePrimitiveArrayCritical((jarray)javaArray, addrJVM,JNI_ABORT);
+   //////////////////////////////////
+   isPinned = JNI_FALSE;
+}
+void ArrayBuffer::unpinCommit(JNIEnv *jenv){
+   // !!! oren mem test
+   //jenv->ReleasePrimitiveArrayCritical((jarray)javaArray, addr, 0);
+	// if it was write or read write we need to update
+	//if (isMutableByKernel())
+   //jenv->MonitorEnter(javaArray);
+   if(addr!=NULL)
+   {
+     memcpy(addrJVM,addr,lengthInBytes);
+     ///acl_aligned_free(addr);//aclPtr
+     ///addr = NULL;
+     isMemModifiedFlag = false;
+   }
+   //jenv->MonitorExit(javaArray);
+
+   jenv->ReleasePrimitiveArrayCritical((jarray)javaArray, addrJVM, 0);
+   //////////////////////////////////
+   isPinned = JNI_FALSE;
+}
+void ArrayBuffer::pin(JNIEnv *jenv){
+   void *ptr = addr;
+   // !!! oren mem test
+   //addr = jenv->GetPrimitiveArrayCritical((jarray)javaArray,&isCopy);
+   addrJVM = jenv->GetPrimitiveArrayCritical((jarray)javaArray,&isCopy);
+   //void* aclPtr
+   //jenv->MonitorEnter(javaArray);
+   if(addr==NULL)
+   {
+     addr = acl_aligned_malloc ((size_t)lengthInBytes);
+ 	 fprintf(stderr, "Allocated %d bytes at address %x\n",lengthInBytes,(long)addr);
+   }
+   isMemModifiedFlag = true;
+   memcpy(addr,addrJVM,lengthInBytes);
+   //jenv->MonitorExit(javaArray);
+   //addrJVM = addr;
+   //jenv->ReleasePrimitiveArrayCritical((jarray)javaArray, addr, 0);
+   //addr = aclPtr;
+   ////////////////////
+   isPinned = JNI_TRUE;
+}
+#endif // TEST_ALIGNED_MEM
diff --git a/src/cpp/runKernel/ArrayBuffer.h b/src/cpp/runKernel/ArrayBuffer.h
index 26f702c80f6819e0d544d8a6d831685f917490ba..fab4709e44ca3e43fc127fa9f0788b35d616694c 100644
--- a/src/cpp/runKernel/ArrayBuffer.h
+++ b/src/cpp/runKernel/ArrayBuffer.h
@@ -41,6 +41,72 @@
 #include "Common.h"
 #include "ProfileInfo.h"
 
+/////////////////////////////////
+// if not in memory alignment test mode
+#ifndef TEST_ALIGNED_MEM
+/////////////////////////////////
+class ArrayBuffer{
+   public:
+      jobject javaArray;        // The java array that this arg is mapped to
+      cl_uint length;           // the number of elements for arrays (used only when ARRAYLENGTH bit is set for this arg)
+      jint lengthInBytes;       // bytes in the array or directBuf
+      cl_mem mem;               // the opencl buffer
+      void *addr;               // the last address where we saw this java array object
+      cl_uint memMask;          // the mask used for createBuffer
+      jboolean isCopy;
+      jboolean isPinned;
+      char memSpec[128];        // The string form of the mask we used for create buffer. for debugging
+      ProfileInfo read;
+      ProfileInfo write;
+
+      ArrayBuffer();
+      void unpinAbort(JNIEnv *jenv);
+      void unpinCommit(JNIEnv *jenv);
+      void pin(JNIEnv *jenv);
+};
+
+#else // defined TEST_ALIGNED_MEM
+// !!! oren mem tests
+////////////////
+// Need to align host data to 32 bytes to be able to use DMA
+// LINUX/WINDOWS macros are defined in Makefiles.
+#define ACL_ALIGNMENT 128 //64
+
+#define LINUX
+
+#ifdef LINUX
+
+#include <stdlib.h>
+
+inline void* acl_aligned_malloc (size_t size) {
+  void *result = NULL;
+  posix_memalign (&result, ACL_ALIGNMENT, size);
+  return result;
+}
+inline void acl_aligned_free (void *ptr) {
+  free (ptr);
+}
+#else // WINDOWS
+inline void* acl_aligned_malloc (size_t size) {
+  return _aligned_malloc (size, ACL_ALIGNMENT);
+}
+inline void acl_aligned_free (void *ptr) {
+  _aligned_free (ptr);
+}
+#endif // LINUX
+
+//class ACLMemMgr
+//{
+//public:
+//	void *allocatePrimitiveArray(jobject javaArray, jint lengthInBytes)
+//	{
+//		javaArray.
+//
+//	}
+//};
+////////////////
+
+
 class ArrayBuffer{
    public:
       jobject javaArray;        // The java array that this arg is mapped to 
@@ -48,6 +114,11 @@ class ArrayBuffer{
       jint lengthInBytes;       // bytes in the array or directBuf
       cl_mem mem;               // the opencl buffer 
       void *addr;               // the last address where we saw this java array object
+      // !!! oren mem test
+      //void* aclPtr;             // acl memory pointer
+      void* addrJVM;             // old jvm memory pointer
+      bool isMemModifiedFlag;    // try to save redundant memory copies
+      /////////////
       cl_uint memMask;          // the mask used for createBuffer
       jboolean isCopy;
       jboolean isPinned;
@@ -56,9 +127,11 @@ class ArrayBuffer{
       ProfileInfo write;
 
       ArrayBuffer();
+      ~ArrayBuffer();
       void unpinAbort(JNIEnv *jenv);
       void unpinCommit(JNIEnv *jenv);
       void pin(JNIEnv *jenv);
 };
+#endif // eof TEST_ALIGNED_MEM
 
 #endif // ARRAYBUFFER_H
diff --git a/src/cpp/runKernel/Config.cpp b/src/cpp/runKernel/Config.cpp
index f3b72b6d5ed698b3890bb138ec6be1cc9e7afbf2..e1e115ad06036b2f5c3513419a0a2aaf40b7b896 100644
--- a/src/cpp/runKernel/Config.cpp
+++ b/src/cpp/runKernel/Config.cpp
@@ -43,6 +43,18 @@ jboolean Config::getBoolean(JNIEnv *jenv, const char *fieldName){
    return(jenv->GetStaticBooleanField(configClass, fieldID));
 }
 
+jstring Config::getString(JNIEnv *jenv, const char *fieldName)
+{
+   jfieldID fieldID =  jenv->GetStaticFieldID(configClass, fieldName, "Ljava/lang/String;");
+   return (jstring)jenv->GetStaticObjectField(configClass, fieldID);
+}
+
+jstring Config::callGetStringMethod(JNIEnv *jenv, const char *methodName)
+{
+	jmethodID method = jenv->GetStaticMethodID( configClass, methodName, "()Ljava/lang/String;" );
+	return (jstring)jenv->CallStaticObjectMethod( configClass, method );
+}
+
 Config::Config(JNIEnv *jenv){
    enableVerboseJNI = false;
    configClass = jenv->FindClass("com/aparapi/internal/jni/ConfigJNI");
@@ -55,6 +67,20 @@ Config::Config(JNIEnv *jenv){
       enableVerboseJNIOpenCLResourceTracking = getBoolean(jenv, "enableVerboseJNIOpenCLResourceTracking");
       enableProfiling = getBoolean(jenv, "enableProfiling");
       enableProfilingCSV = getBoolean(jenv, "enableProfilingCSV");
+      // !!! oren note -> unlike simple types like jboolean, we need to take the jstring and convert to char pointer. 
+      // we can not simply use the jstring later on from another thread. There might be another way to do that, we can revisit later if we care for some reason.
+      jstring fileNameFormatJString = getString(jenv, "profilingFileNameFormatStr");//callGetStringMethod(jenv, "getProfilingFileNameFormatStr");
+      if(fileNameFormatJString!=NULL)
+      {
+        const char *tempFileNameFormatStr =jenv->GetStringUTFChars(fileNameFormatJString, NULL);
+        if(tempFileNameFormatStr!=NULL)
+        {
+          printf("Config using profilingFileNameFormatStr: %s\n",tempFileNameFormatStr);
+          profilingFileNameFormatStr = new char[strlen(tempFileNameFormatStr) + 1];
+          strcpy(profilingFileNameFormatStr,tempFileNameFormatStr);
+        }
+        jenv->ReleaseStringUTFChars(fileNameFormatJString, tempFileNameFormatStr);
+      }
    }
 
    //fprintf(stderr, "Config::enableVerboseJNI=%s\n",enableVerboseJNI?"true":"false");
@@ -76,3 +102,8 @@ jboolean Config::isTrackingOpenCLResources(){
 jboolean Config::isProfilingEnabled(){
    return enableProfiling;
 }
+
+const char *Config::getProfilingFileNameFormatStr()
+{
+	return profilingFileNameFormatStr;
+}
diff --git a/src/cpp/runKernel/Config.h b/src/cpp/runKernel/Config.h
index 8ac19f951c3ecddebc15c880884fc0658ba90834..8269fae6f4eb8b9f7be5f01aeda66da1bd20a800 100644
--- a/src/cpp/runKernel/Config.h
+++ b/src/cpp/runKernel/Config.h
@@ -47,13 +47,23 @@ class Config{
       jboolean enableVerboseJNIOpenCLResourceTracking;
       jboolean enableProfiling;
       jboolean enableProfilingCSV;
+      // !!! oren change -> add profile name info
+      char *profilingFileNameFormatStr;
+
 
       jboolean getBoolean(JNIEnv *jenv, const char *fieldName);
+      // !!! oren change -> add profile name info
+      jstring getString(JNIEnv *jenv, const char *fieldName);
+      jstring callGetStringMethod(JNIEnv *jenv, const char *methodName);
+
       Config(JNIEnv *jenv);
+      ~Config();
       jboolean isVerbose();
       jboolean isProfilingCSVEnabled();
       jboolean isTrackingOpenCLResources();
       jboolean isProfilingEnabled();
+      // !!! oren change -> add profile name info
+      const char*getProfilingFileNameFormatStr();
 };
 
 #ifdef CONFIG_SOURCE
diff --git a/src/cpp/runKernel/ConfigSettings.cpp b/src/cpp/runKernel/ConfigSettings.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..0cd91ad6f5cb04c3075925cdcf9e637da83219c2
--- /dev/null
+++ b/src/cpp/runKernel/ConfigSettings.cpp
@@ -0,0 +1,29 @@
+#include "ConfigSettings.h"
+
+///
+// Specify the different platform configuration in this file
+//
+// Platform parameters can be set in the following format:
+// A. REGISTER_PLATFORM_CONFIG -> calls PlatformConfig(const char *name, int flowSupport, int defaultFlowSupport, const char *binFileExt, char fileSep)
+// B. REGISTER_PLATFORM_CONFIG_WITH_SEARCH_STR -> calls PlatformConfig(const char *name, const char *searchStr, int flowSupport, int defaultFlowSupport, const char *binFileExt, char fileSep)
+
+// ****************************************************************
+// Below is the default settings for any platform (unless specified otherwise in another specific configuration line)
+// Note that by default we have source and binary flows, source is the default flow, '.bcl' is the binary extension and '_' is the file separator
+// ****************************************************************
+REGISTER_PLATFORM_CONFIG(DEFAULT_PLATFORM_CONFIG_NAME, SOURCE_FLOW | BINARY_FLOW | DEFAULT_FLOW, SOURCE_FLOW, ".bcl", '_');
+// ****************************************************************
+// Altera OpenCL specific configuration
+// ****************************************************************
+REGISTER_PLATFORM_CONFIG(Altera, BINARY_FLOW | DEFAULT_FLOW, BINARY_FLOW, ".aocx",'.');
+// if you need a search string different then name use this form instead, it includes a search string
+//REGISTER_PLATFORM_CONFIG_WITH_SEARCH_STR(Altera, "Altera SDK for OpenCL", BINARY_FLOW | DEFAULT_FLOW, BINARY_FLOW, ".aocx",'.');
+// ****************************************************************
+// example for AMD ...
+// ****************************************************************
+REGISTER_PLATFORM_CONFIG(AMD,SOURCE_FLOW | BINARY_FLOW | DEFAULT_FLOW, SOURCE_FLOW, ".bcl", '.');
+// ****************************************************************
+// example for Intel ...
+// ****************************************************************
+REGISTER_PLATFORM_CONFIG(Intel,SOURCE_FLOW | BINARY_FLOW | DEFAULT_FLOW, SOURCE_FLOW, ".bcl", '.');
+
diff --git a/src/cpp/runKernel/ConfigSettings.h b/src/cpp/runKernel/ConfigSettings.h
new file mode 100644
index 0000000000000000000000000000000000000000..2c87a67e63391a0f53ac3b5cd7887e8dca4761a1
--- /dev/null
+++ b/src/cpp/runKernel/ConfigSettings.h
@@ -0,0 +1,232 @@
+#ifndef CONFIG_SETTINGS_H
+#define CONFIG_SETTINGS_H
+
+// !!! oren changes ->
+// configuration settings for building platform specific code
+// TODO: consider moving parts of this to a configuration file lateron and load settings dynamically
+
+#include <string>
+#include <cstring>
+#include <map>
+#include <tuple>
+#include <memory>
+
+// use values from JNI config
+#include "com_amd_aparapi_internal_jni_KernelRunnerJNI.h"
+
+// auto output kernel.cl file
+#define OUTPUT_OCL_FILE
+// allows defining an alternative folder where bin files should be loaded from
+// Useful when running in Aparapi embedded mode
+#define BINARY_FOLDER_ENV_VAR "APARAPI_CL_BIN_FOLDER"
+
+///////////////////////////
+// help determine if platform supports source/binary flows
+///////////////////////////
+#define SOURCE_FLOW   com_amd_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_SOURCE_FLOW
+#define BINARY_FLOW   com_amd_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_BINARY_FLOW
+#define DEFAULT_FLOW  com_amd_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_DEFAULT_FLOW
+///////////////////////////
+
+//#define FILE_EXT_LENGTH 8
+
+class PlatformConfig
+{
+public:
+
+    typedef std::shared_ptr<PlatformConfig> Ptr;
+
+	PlatformConfig(const char *name, int flowSupport, int defaultFlowSupport, const char *binFileExt, char fileSep)
+    {
+		setName(name);
+		setSearchStr(name); // default search string is name!
+		setFlowSupport(flowSupport);
+		setDefaultFlowSupport(defaultFlowSupport);
+        setBinFileExtension(binFileExt);
+		setFileSeperator(fileSep);
+    }
+
+	PlatformConfig(const char *name, const char *searchStr, int flowSupport, int defaultFlowSupport, const char *binFileExt, char fileSep)
+    {
+		setName(name);
+		setSearchStr(searchStr);
+		setFlowSupport(flowSupport);
+		setDefaultFlowSupport(defaultFlowSupport);
+        setBinFileExtension(binFileExt);
+		setFileSeperator(fileSep);
+    }
+
+	void setName(const char *name)
+	{
+		m_name = name;
+	}
+	const char *getName()
+	{
+		return m_name.c_str();
+	}
+
+	void setSearchStr(const char *searchStr)
+	{
+		m_searchStr = searchStr;
+	}
+
+	const char *getsearchStr()
+	{
+		return m_searchStr.c_str();
+	}
+
+	void setFlowSupport(int flowSupport)
+	{
+		m_flowSupport = flowSupport;
+	}
+
+	int getFlowSupport()
+	{
+		return m_flowSupport;
+	}
+
+	void setDefaultFlowSupport(int defaultFlowSupport)
+	{
+		m_defaultFlowSupport = defaultFlowSupport;
+	}
+
+	int getDefaultFlowSupport()
+	{
+		return m_defaultFlowSupport;
+	}
+
+	void setBinFileExtension(const char *binFileExt)
+	{
+		m_binFileExt = binFileExt;
+	}
+
+	const char *getBinFileExtension()
+	{
+		return m_binFileExt.c_str();
+	}
+
+	void setFileSeperator(char fileSep)
+	{
+		m_fileSep = fileSep;
+	}
+
+	char getFileSeperator()
+	{
+		return m_fileSep;
+	}
+
+protected:
+	// data
+	int m_flowSupport;
+	int m_defaultFlowSupport;
+	//char m_fileExt[FILE_EXT_LENGTH];
+	std::string m_binFileExt;
+	char m_fileSep;
+	std::string m_name;
+	std::string m_searchStr; // platform name search string
+};
+
+class PlatformConfigFactory
+{
+public:
+	  //typedef std::shared_ptr<PlatformConfig> PlatformConfigPtr;
+	  //typedef std::pair<std::string,PlatformConfigPtr> PlatformConfigTuple;
+	  //typedef std::map<std::string,PlatformConfigTuple> PlatformConfigMap;
+	  typedef std::map<std::string,PlatformConfig::Ptr> PlatformConfigMap;
+
+	  static PlatformConfigFactory &getPlatformConfigFactory()//openclManager *oclMgr)
+	  {
+		  static PlatformConfigFactory *pcf;
+		  if(pcf==NULL)
+			  pcf = new PlatformConfigFactory();
+		  return *pcf;
+	  }
+
+	  bool registerPlatformConfig(const char *name, PlatformConfig::Ptr platformConfigPtr)
+	  {
+		  //m_platformConfigMap[name]=PlatformConfigTuple(name,platformConfigPtr);
+		  m_platformConfigMap[name]=platformConfigPtr;
+		  return true;
+	  }
+
+#define REGISTER_PLATFORM_CONFIG_BASE(name,platformConfigPtr) bool name##PlatformConfig=PlatformConfigFactory::getPlatformConfigFactory().registerPlatformConfig(#name,PlatformConfig::Ptr(platformConfigPtr));
+#define REGISTER_PLATFORM_CONFIG(name,flowSupport,defaultFlowSupport,binFileExt,fileSep) REGISTER_PLATFORM_CONFIG_BASE(name, new PlatformConfig(#name,flowSupport,defaultFlowSupport,binFileExt,fileSep))
+#define REGISTER_PLATFORM_CONFIG_WITH_SEARCH_STR(name,searchStr,flowSupport,defaultFlowSupport,binFileExt,fileSep) REGISTER_PLATFORM_CONFIG_BASE(name, new PlatformConfig(#name,searchStr,flowSupport,defaultFlowSupport,binFileExt,fileSep))
+
+#define DEFAULT_PLATFORM_CONFIG_NAME DEFAULT_PCN
+#define NAME_TO_STR(s) #s
+#define DEFINE_NAME_TO_STR(s) NAME_TO_STR(s)
+
+	  PlatformConfig::Ptr findPlatformConfigByName(const char *name)
+	  {
+		  printf("findPlatformConfigByName: %s\n",name);
+		  PlatformConfigMap::iterator itr = m_platformConfigMap.find(name);
+		          if (itr != m_platformConfigMap.end())
+		          {
+		              //return itr->second.second;
+		              return itr->second;
+		          }
+		          else
+		        	  return PlatformConfig::Ptr();
+	  }
+
+	  PlatformConfig::Ptr findPlatformConfigFromFullName(const char *fullPlatformName)
+	  {
+		  printf("findPlatformConfigFromFullName: %s\n",fullPlatformName);
+		  // Requires C++11 -> leave minimum compiler support at C++0x for now ...
+		  //for ( const auto &itr : m_platformConfigMap )
+		  for (PlatformConfigMap::iterator itr = m_platformConfigMap.begin(); itr != m_platformConfigMap.end(); itr++ )
+		  {
+		     if(std::strstr(fullPlatformName,itr->second->getsearchStr()))
+		    	 return itr->second;
+		  }
+
+		  // if not found search for default cplatform config
+    	  return  findPlatformConfigByName(DEFINE_NAME_TO_STR(DEFAULT_PLATFORM_CONFIG_NAME));
+	  }
+
+	  PlatformConfigMap &getConfigMap()
+	  {
+         return m_platformConfigMap;
+	  }
+
+	  // data
+	  PlatformConfigMap m_platformConfigMap;
+
+
+
+};
+
+///////////////////////////
+// define platform settings
+//////////////////////////
+// BINARY_FILE_EXT => define binary file extension
+// BINARY_FILE_SEP => define binary file separator, replaces java's $ signs in file names -> examples: .,_ etc.
+///////////////////////////
+// Altera platform specific
+///////////////////////////
+/*
+#ifdef ALTERA_OPENCL
+  #define PLATFORM_FLOW_SUPPORT (SOURCE_FLOW | BINARY_FLOW | DEFAULT_FLOW)
+  #define PLATFORM_DEFAULT_FLOW BINARY_FLOW
+  #define BINARY_FILE_EXT ".aocx"
+  #define BINARY_FILE_SEP '.'
+#elif AMD_OPENCL
+// AMD specific
+#elif INTEL_OPENCL
+// Intel specific
+#elif NVIDIA_OPENCL
+// NVidia specific
+#else // default settings
+///////////////////////////
+// All other platforms - set the default for other platforms
+///////////////////////////
+  #define PLATFORM_FLOW_SUPPORT (SOURCE_FLOW | BINARY_FLOW | DEFAULT_FLOW)
+  #define PLATFORM_DEFAULT_FLOW SOURCE_FLOW
+  #define BINARY_FILE_EXT ".bcl"
+  #define BINARY_FILE_SEP '.'
+#endif // ALTERA_OPENCL
+*/
+#endif // CONFIG_SETTINGS_H
+
+
diff --git a/src/cpp/runKernel/JNIContext.cpp b/src/cpp/runKernel/JNIContext.cpp
index e1083717ca1480d6e2e11b0c89e728dd67b4b2f9..52052349ae9c41e9270e2bf395789d2142effb10 100644
--- a/src/cpp/runKernel/JNIContext.cpp
+++ b/src/cpp/runKernel/JNIContext.cpp
@@ -30,6 +30,12 @@ JNIContext::JNIContext(JNIEnv *jenv, jobject _kernelObject, jobject _openCLDevic
    if (status == CL_SUCCESS){
       valid = JNI_TRUE;
    }
+
+   // !!! oren change -> setup platform configuration
+   char platformName[512]={""};
+   status = clGetPlatformInfo(platformId, CL_PLATFORM_NAME, sizeof(platformName), platformName, NULL);
+   platformConfigPtr = PlatformConfigFactory::getPlatformConfigFactory().findPlatformConfigFromFullName(platformName);
+
 }
 
 void JNIContext::dispose(JNIEnv *jenv, Config* config) {
diff --git a/src/cpp/runKernel/JNIContext.h b/src/cpp/runKernel/JNIContext.h
index 9771741e8133901c28240a8707a1f2dacb192f4d..5bb429b735dd24e89727d592a72a0fb04f84efb5 100644
--- a/src/cpp/runKernel/JNIContext.h
+++ b/src/cpp/runKernel/JNIContext.h
@@ -7,6 +7,8 @@
 #include "ProfileInfo.h"
 #include "com_aparapi_internal_jni_KernelRunnerJNI.h"
 #include "Config.h"
+#include "ConfigSettings.h"
+
 
 class JNIContext {
 private: 
@@ -37,6 +39,8 @@ public:
 
    ProfileInfo *exec;
    FILE* profileFile;
+   // !!! oren change
+   PlatformConfig::Ptr platformConfigPtr;
 
    JNIContext(JNIEnv *jenv, jobject _kernelObject, jobject _openCLDeviceObject, jint _flags);