summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <emulatorman@parabola.nu>2015-11-17 00:24:04 -0300
committerAndré Fabian Silva Delgado <emulatorman@parabola.nu>2015-11-17 00:24:04 -0300
commit67e5f7c165a5ad9dedda5361baf85c5a939a2fa9 (patch)
tree10b168cc83b45c18a8f7489273c92107b638613f
parent1736d8dd9f1377897c0bd3a8881c3d4acf4c0710 (diff)
downloadabslibre-67e5f7c165a5ad9dedda5361baf85c5a939a2fa9.tar.gz
abslibre-67e5f7c165a5ad9dedda5361baf85c5a939a2fa9.tar.bz2
abslibre-67e5f7c165a5ad9dedda5361baf85c5a939a2fa9.zip
arrayfire-3.2.0-1.parabola1: updating version
-rw-r--r--libre/arrayfire/PKGBUILD14
-rw-r--r--libre/arrayfire/remove-nonfree-references.patch217
2 files changed, 124 insertions, 107 deletions
diff --git a/libre/arrayfire/PKGBUILD b/libre/arrayfire/PKGBUILD
index 33cd54b2d..a0bc98db1 100644
--- a/libre/arrayfire/PKGBUILD
+++ b/libre/arrayfire/PKGBUILD
@@ -3,21 +3,19 @@
pkgname=arrayfire
pkgdesc="High performance software library for parallel computing with an easy-to-use API, without nonfree cuda and nvidia-utils support and nonfree SIFT algorithm"
url='http://arrayfire.com'
-pkgver=3.1.3
+pkgver=3.2.0
arch=('i686' 'x86_64')
pkgrel=1.parabola1
license=('BSD')
makedepends=('cmake' 'graphviz' 'doxygen' 'opencl-headers' 'glfw' 'glew' 'boost' 'git')
-depends=('cblas' 'fftw' 'boost-libs' 'lapack' 'forge' 'freeimage')
-optdepends=('libclc: Required for using OpenCL backend'
- 'glfw: Required for running the examples'
- 'glew: Required for running the examples')
+depends=('cblas' 'fftw' 'boost-libs' 'lapack' 'forge' 'freeimage' 'glfw' 'glew')
+optdepends=('libclc: Required for using OpenCL backend')
mksource=(http://arrayfire.com/arrayfire_source/arrayfire-full-${pkgver}.tar.bz2)
source=(https://repo.parabola.nu/other/${pkgname}-libre/${pkgname}-libre-full-${pkgver}.tar.bz2
remove-nonfree-references.patch)
-mkmd5sums=('0bc133fc8667120ad7799b3550780381')
-md5sums=('7a970e4a9bba9ae4cdb97cda9008783c'
- 'bb0ef2b34ee09af4c85c9cb13c0ee485')
+mkmd5sums=('0dc2dd8188b0cd60baeeef214cbe68c4')
+md5sums=('05455aee63c46dfa33fd2badb0cd3c17'
+ '679f5b3b1dec733fd6c1e8c32168c560')
check() {
cd "${srcdir}/arrayfire-full-${pkgver}/build"
diff --git a/libre/arrayfire/remove-nonfree-references.patch b/libre/arrayfire/remove-nonfree-references.patch
index 743118c7b..1f6750e0c 100644
--- a/libre/arrayfire/remove-nonfree-references.patch
+++ b/libre/arrayfire/remove-nonfree-references.patch
@@ -1,15 +1,15 @@
-diff -Nur arrayfire-full-3.1.2.orig/docs/layout.xml arrayfire-full-3.1.2/docs/layout.xml
---- arrayfire-full-3.1.2.orig/docs/layout.xml 2015-09-25 19:16:18.000000000 -0300
-+++ arrayfire-full-3.1.2/docs/layout.xml 2015-11-02 17:01:08.145683665 -0300
-@@ -4,8 +4,6 @@
- <tab type="mainpage" visible="yes" title="" />
+diff -Nur arrayfire-full-3.2.0.orig/docs/layout.xml arrayfire-full-3.2.0/docs/layout.xml
+--- arrayfire-full-3.2.0.orig/docs/layout.xml 2015-11-13 14:02:44.000000000 -0300
++++ arrayfire-full-3.2.0/docs/layout.xml 2015-11-16 22:17:23.086321178 -0300
+@@ -5,8 +5,6 @@
<tab type="usergroup" visible="yes" title="Tutorials">
+ <tab type="user" url="\ref installing" visible="yes" title="Installation"/>
<tab type="user" url="\ref using_on_linux" visible="yes" title="Using on Linux"/>
- <tab type="user" url="\ref using_on_windows" visible="yes" title="Using on Windows"/>
- <tab type="user" url="\ref using_on_osx" visible="yes" title="Using on OSX"/>
<tab type="user" url="\ref gettingstarted" visible="yes" title="Getting Started"/>
+ <tab type="user" url="\ref unifiedbackend" visible="yes" title="Unified Backend"/>
<tab type="user" url="\ref matrixmanipulation" visible="yes" title="Matrix Manipulation"/>
- <tab type="user" url="\ref indexing" visible="yes" title="Indexing"/>
diff -Nur arrayfire-full-3.1.2.orig/docs/pages/README.md arrayfire-full-3.1.2/docs/pages/README.md
--- arrayfire-full-3.1.2.orig/docs/pages/README.md 2015-09-25 19:16:18.000000000 -0300
+++ arrayfire-full-3.1.2/docs/pages/README.md 2015-11-02 15:56:01.952662051 -0300
@@ -106,10 +106,10 @@ diff -Nur arrayfire-full-3.1.2.orig/docs/pages/configuring_arrayfire_environment
AF_OPENCL_DEFAULT_DEVICE {#af_opencl_default_device}
-------------------------------------------------------------------------------
-diff -Nur arrayfire-full-3.1.2.orig/docs/pages/getting_started.md arrayfire-full-3.1.2/docs/pages/getting_started.md
---- arrayfire-full-3.1.2.orig/docs/pages/getting_started.md 2015-09-25 19:16:18.000000000 -0300
-+++ arrayfire-full-3.1.2/docs/pages/getting_started.md 2015-11-02 17:00:05.388864755 -0300
-@@ -39,7 +39,6 @@
+diff -Nur arrayfire-full-3.2.0.orig/docs/pages/getting_started.md arrayfire-full-3.2.0/docs/pages/getting_started.md
+--- arrayfire-full-3.2.0.orig/docs/pages/getting_started.md 2015-11-13 14:02:44.000000000 -0300
++++ arrayfire-full-3.2.0/docs/pages/getting_started.md 2015-11-16 22:17:23.086321178 -0300
+@@ -41,7 +41,6 @@
\snippet test/getting_started.cpp ex_getting_started_init
ArrayFire also supports array initialization from a device pointer.
@@ -117,7 +117,7 @@ diff -Nur arrayfire-full-3.1.2.orig/docs/pages/getting_started.md arrayfire-full
\snippet test/getting_started.cpp ex_getting_started_dev_ptr
-@@ -67,7 +66,7 @@
+@@ -69,7 +68,7 @@
This means that function like `c[i] = a[i] + b[i]` could simply be written
as `c = a + b`.
ArrayFire has an intelligent runtime JIT compliation engine which converts
@@ -126,7 +126,7 @@ diff -Nur arrayfire-full-3.1.2.orig/docs/pages/getting_started.md arrayfire-full
This "kernel fusion" technology not only decreases the number of kernel calls,
but, more importantly, avoids extraneous global memory operations.
Our JIT functionality extends across C/C++ function boundaries and only ends
-@@ -98,7 +97,7 @@
+@@ -100,7 +99,7 @@
# Indexing {#getting_started_indexing}
Like all functions in ArrayFire, indexing is also executed in parallel on
@@ -135,7 +135,7 @@ diff -Nur arrayfire-full-3.1.2.orig/docs/pages/getting_started.md arrayfire-full
Because of this, indexing becomes part of a JIT operation and is accomplished
using parentheses instead of square brackets (i.e. as `A(0)` instead of `A[0]`).
To index `af::array`s you may use one or a combination of the following functions:
-@@ -121,8 +120,8 @@
+@@ -123,8 +122,8 @@
The `host` function *copies* the data from the device and makes it available
in a C-style array on the host.
The `device` function returns a pointer to device memory for interoperability
@@ -146,7 +146,7 @@ diff -Nur arrayfire-full-3.1.2.orig/docs/pages/getting_started.md arrayfire-full
\snippet test/getting_started.cpp ex_getting_started_ptr
-@@ -192,8 +191,7 @@
+@@ -194,8 +193,7 @@
Now that you have a general introduction to ArrayFire, where do you go from
here? In particular you might find these documents useful
@@ -156,10 +156,10 @@ diff -Nur arrayfire-full-3.1.2.orig/docs/pages/getting_started.md arrayfire-full
* [Timing ArrayFire code](\ref timing)
-diff -Nur arrayfire-full-3.1.2.orig/docs/pages/release_notes.md arrayfire-full-3.1.2/docs/pages/release_notes.md
---- arrayfire-full-3.1.2.orig/docs/pages/release_notes.md 2015-09-25 19:16:18.000000000 -0300
-+++ arrayfire-full-3.1.2/docs/pages/release_notes.md 2015-11-02 13:01:04.186402090 -0300
-@@ -31,7 +31,6 @@
+diff -Nur arrayfire-full-3.2.0.orig/docs/pages/release_notes.md arrayfire-full-3.2.0/docs/pages/release_notes.md
+--- arrayfire-full-3.2.0.orig/docs/pages/release_notes.md 2015-11-13 14:02:44.000000000 -0300
++++ arrayfire-full-3.2.0/docs/pages/release_notes.md 2015-11-16 22:17:23.086321178 -0300
+@@ -158,7 +158,6 @@
Installers
-----------
@@ -167,7 +167,7 @@ diff -Nur arrayfire-full-3.1.2.orig/docs/pages/release_notes.md arrayfire-full-3
* OpenCL backend now require OpenCL 1.2 or greater
Bug Fixes
-@@ -111,10 +110,6 @@
+@@ -238,10 +237,6 @@
* \ref saveArray() and \ref readArray() - Stream arrays to binary files
* \ref toString() - toString function returns the array and data as a string
@@ -178,7 +178,7 @@ diff -Nur arrayfire-full-3.1.2.orig/docs/pages/release_notes.md arrayfire-full-3
Improvements
------------
* dot
-@@ -138,11 +133,6 @@
+@@ -265,11 +260,6 @@
* CPU Backend
* Device properties for CPU
* Improved performance when all buffers are indexed linearly
@@ -190,7 +190,7 @@ diff -Nur arrayfire-full-3.1.2.orig/docs/pages/release_notes.md arrayfire-full-3
* OpenCL Backend
* Improve compilation times for OpenCL backend
* Performance improvements for non-linear JIT kernels on OpenCL
-@@ -176,7 +166,7 @@
+@@ -303,7 +293,7 @@
Installer
----------
* Fixed bug in automatic detection of ArrayFire when using with CMake in Windows
@@ -199,32 +199,45 @@ diff -Nur arrayfire-full-3.1.2.orig/docs/pages/release_notes.md arrayfire-full-3
Known Issues
------------
-diff -Nur arrayfire-full-3.1.2.orig/docs/pages/using_on_linux.md arrayfire-full-3.1.2/docs/pages/using_on_linux.md
---- arrayfire-full-3.1.2.orig/docs/pages/using_on_linux.md 2015-09-25 19:16:18.000000000 -0300
-+++ arrayfire-full-3.1.2/docs/pages/using_on_linux.md 2015-11-02 16:42:20.209742489 -0300
-@@ -1,32 +1,21 @@
+diff -Nur arrayfire-full-3.2.0.orig/docs/pages/using_on_linux.md arrayfire-full-3.2.0/docs/pages/using_on_linux.md
+--- arrayfire-full-3.2.0.orig/docs/pages/using_on_linux.md 2015-11-13 14:02:44.000000000 -0300
++++ arrayfire-full-3.2.0/docs/pages/using_on_linux.md 2015-11-16 22:54:37.520143633 -0300
+@@ -1,42 +1,35 @@
-Using ArrayFire on Linux {#using_on_linux}
+Using ArrayFire on GNU/Linux {#using_on_linux}
=====
-
+ Once you have [installed](\ref installing) ArrayFire on your system, the next thing to do is
+-set up your build system. On Linux, you can create ArrayFire projects using
++set up your build system. On GNU/Linux, you can create ArrayFire projects using
+ almost any editor, compiler, or build system. The only requirements are
+ that you include the ArrayFire header directories and link with the ArrayFire
+ library you intend to use.
+
+ ## The big picture
+
+-On Linux, we suggest you install ArrayFire to the `/usr/local` directory
++On GNU/Linux, we suggest you install ArrayFire to the `/usr/local` directory
+ so that all of the include files and libraries are part of your standard path.
+ The installer will populate files in the following sub-directories:
+
+ include/arrayfire.h - Primary ArrayFire include file
+ include/af/*.h - Additional include files
+- lib/libaf* - CPU, CUDA, and OpenCL libraries (.a, .so)
++ lib/libaf* - CPU and OpenCL libraries (.a, .so)
+ lib/libforge* - Visualization library
+ share/ArrayFire/cmake/* - CMake config (find) scripts
+ share/ArrayFire/examples/* - All ArrayFire examples
+
+ Because ArrayFire follows standard installation practices, you can use basically
+ any build system to create and compile projects that use ArrayFire.
-Among the many possible build systems on Linux we suggest using ArrayFire with
+Among the many possible build systems on GNU/Linux we suggest using ArrayFire with
- either CMake or Makefiles with CMake being the preferred build system.
-
- ## Pre-requisites
+ either CMake or Makefiles with CMake being our preferred build system.
- Before you get started, make sure you have the necessary pre-requisites.
+ ## Prerequisite software
--- If you are using CUDA, please make sure you have [CUDA 7](https://developer.nvidia.com/cuda-downloads) installed on your system.
-- - [Contact us](support@arrayfire.com) for custom builds (eg. different toolkits)
--
- - If you are using OpenCL, please make sure you have one of the following SDKs.
- - [AMD OpenCL SDK](http://developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel-processing-app-sdk/)
- - [Intel OpenCL SDK](https://software.intel.com/en-us/articles/download-the-latest-intel-amt-software-development-kit-sdk)
-- - [NVIDIA CUDA](https://developer.nvidia.com/cuda-downloads)
-
- You will also need the following dependencies to use ArrayFire.
+ To build ArrayFire projects you will need a compiler
-#### Fedora, Centos and Redhat
-
@@ -236,75 +249,81 @@ diff -Nur arrayfire-full-3.1.2.orig/docs/pages/using_on_linux.md arrayfire-full-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#### BLAG Linux and GNU
- Install the common dependencies
-
-@@ -37,15 +26,11 @@
+ Install build dependencies
- Install glfw (not required for no-gl installers)
+@@ -44,7 +37,7 @@
+ yum install gcc gcc-c++ cmake make
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--Fedora:
--
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- yum install glfw
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
--For Centos and Redhat, please follow [these instructions](https://github.com/arrayfire/arrayfire/wiki/GLFW-for-ArrayFire)
--
-#### Debian and Ubuntu
+#### GnewSense and Trisquel
Install common dependencies
-@@ -60,8 +45,6 @@
- apt-get install libglfw3
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+@@ -64,7 +57,7 @@
+ As [discussed above](#big-picture), ArrayFire ships with a series of CMake
+ scripts to make finding and using our library easy.
+ The scripts will automatically find all versions of the ArrayFire library
+-and pick the most powerful of the installed backends (typically CUDA).
++and pick the most powerful of the installed backends.
+
+ First create a file called `CMakeLists.txt` in your project directory:
+
+@@ -82,22 +75,13 @@
+ FIND_PACKAGE(OpenCL)
+ SET(EXTRA_LIBS ${CMAKE_THREAD_LIBS_INIT} ${OpenCL_LIBRARIES})
--For Debian 7 and Ubuntu 14.04, please follow [these instructions](https://github.com/arrayfire/arrayfire/wiki/GLFW-for-ArrayFire)
+- # Or if you intend to use CUDA, you need it as well as NVVM:
+- FIND_PACKAGE(CUDA)
+- FIND_PACKAGE(NVVM) # this FIND script can be found in the ArrayFire CMake example repository
+- SET(EXTRA_LIBS ${CMAKE_THREAD_LIBS_INIT} ${CUDA_LIBRARIES} ${NVVM_LIB})
-
- **Special instructions for Tegra-K1**
-
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-@@ -70,13 +53,12 @@
-
- ## CMake
-
--This is the suggested method of using ArrayFire on Linux.
-+This is the suggested method of using ArrayFire on GNU/Linux.
- ArrayFire ships with support for CMake by default, including a series of
- `Find` scripts installed in the `/usr/local/share/ArrayFire/cmake` (or similar)
- directory.
--These scripts will automatically find the CUDA, OpenCL, and CPU versions
--of ArrayFire and automatically choose the most powerful installed backend
--(typically CUDA).
-+These scripts will automatically find the OpenCL, and CPU versions
-+of ArrayFire and automatically choose the most powerful installed backend.
-
- To use ArrayFire, simply insert the `FIND_PACKAGE` command inside of your
- `CMakeLists.txt` file as follows:
-@@ -99,14 +81,12 @@
-
- ArrayFire_CPU_FOUND - True of the ArrayFire CPU library has been found.
- ArrayFire_CPU_LIBRARIES - Location of ArrayFire's CPU library, if found
-- ArrayFire_CUDA_FOUND - True of the ArrayFire CUDA library has been found.
-- ArrayFire_CUDA_LIBRARIES - Location of ArrayFire's CUDA library, if found
- ArrayFire_OpenCL_FOUND - True of the ArrayFire OpenCL library has been found.
- ArrayFire_OpenCL_LIBRARIES - Location of ArrayFire's OpenCL library, if found
-
- Therefore, if you wish to target a specific specific backend, switch
- `${ArrayFire_LIBRARIES}` to `${ArrayFire_CPU}` `${ArrayFire_OPENCL}` or
--`${ArrayFire_CUDA}` in the `TARGET_LINK_LIBRARIES` command above.
-+in the `TARGET_LINK_LIBRARIES` command above.
-
- Finally, if you have installed ArrayFire to a non-standard location, CMake can still help
- you out. When you execute CMake specify the path to the `ArrayFireConfig*` files that
-@@ -127,8 +107,8 @@
- instructions.
- Then, in your linker line specify the path to ArrayFire using the `-L` option
- (typically `-L/usr/lib` or `-L/usr/local/lib` and the specific ArrayFire backend
--you wish to use with the `-l` option (i.e. `-lafcpu`, `-lafopencl` or `-lafcuda`
--for the CPU, OpenCL and CUDA backends repsectively).
-+you wish to use with the `-l` option (i.e. `-lafcpu` or `-lafopencl` for the CPU
-+and OpenCL backends repsectively).
+ ADD_EXECUTABLE(my_executable [list your source files here])
+ TARGET_LINK_LIBRARIES(my_executable ${ArrayFire_LIBRARIES} ${EXTRA_LIBS})
+
+ where `my_executable` is the name of the executable you wish to create.
+ See the [CMake documentation](https://cmake.org/documentation/) for more
+ information on how to use CMake.
+-Clearly the above code snippet precludes the use of both CUDA and OpenCL, see
+-the
+-[ArrayFire CMake Example](https://github.com/arrayfire/arrayfire-project-templates/tree/master/CMake);
+-for an example of how to build executables for both backends from the same
+-CMake script.
++Clearly the above code snippet precludes the use of OpenCL.
+
+ In the above code listing, the `FIND_PACKAGE` will find the ArrayFire include
+ files, libraries, and define several variables including:
+@@ -112,8 +96,6 @@
+
+ ArrayFire_CPU_FOUND - True of the ArrayFire CPU library has been found.
+ ArrayFire_CPU_LIBRARIES - Location of ArrayFire's CPU library, if found
+- ArrayFire_CUDA_FOUND - True of the ArrayFire CUDA library has been found.
+- ArrayFire_CUDA_LIBRARIES - Location of ArrayFire's CUDA library, if found
+ ArrayFire_OpenCL_FOUND - True of the ArrayFire OpenCL library has been found.
+ ArrayFire_OpenCL_LIBRARIES - Location of ArrayFire's OpenCL library, if found
+ ArrayFire_Unified_FOUND - True of the ArrayFire Unified library has been found.
+@@ -121,13 +103,8 @@
+
+ Therefore, if you wish to target a specific specific backend, simply replace
+ `${ArrayFire_LIBRARIES}` with `${ArrayFire_CPU}`, `${ArrayFire_OPENCL}`,
+-`${ArrayFire_CUDA}`, or `${ArrayFire_Unified}` in the `TARGET_LINK_LIBRARIES`
++or `${ArrayFire_Unified}` in the `TARGET_LINK_LIBRARIES`
+ command above.
+-If you intend on building your software to link with all of these backends,
+-please see the
+-[CMake Project Example](https://github.com/arrayfire/arrayfire-project-templates)
+-which makes use of some fairly fun CMake tricks to avoid re-compiling code
+-whenever possible.
+
+ Next we need to instruct CMake to create build instructions and then compile.
+ We suggest using CMake's out-of-source build functionality to keep your build
+@@ -161,8 +138,7 @@
+ Similarly, you will need to specify the path to the ArrayFire library using
+ the `-L` option (e.g. `-L/usr/local/lib`) followed by the specific ArrayFire
+ library you wish to use using the `-l` option (for example `-lafcpu`,
+-`-lafopencl`, `-lafcuda`, or `-laf` for the CPU, OpenCL, CUDA, and unified
+-backends respectively.
++`-lafopencl`, or `-laf` for the CPU, OpenCL, and unified backends respectively.
Here is a minimial example MakeFile which uses ArrayFire's CPU backend: