From 1642ceef7cb622e530b30232536b31bb43ac7ed9 Mon Sep 17 00:00:00 2001
From: Willem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>
Date: Mon, 30 Oct 2017 16:29:04 +0100
Subject: Add libastra/linux-64 conda package variants for cudatoolkit

Also upgrade the Docker-based linux release scripts to match.
---
 python/conda/libastra/build.sh                | 31 +++++++++++++++++++++++----
 python/conda/libastra/linux_build_config.yaml |  6 ++++++
 python/conda/libastra/meta.yaml               | 11 ++++------
 3 files changed, 37 insertions(+), 11 deletions(-)
 create mode 100644 python/conda/libastra/linux_build_config.yaml

(limited to 'python/conda/libastra')

diff --git a/python/conda/libastra/build.sh b/python/conda/libastra/build.sh
index 304c053..aa9a4ce 100644
--- a/python/conda/libastra/build.sh
+++ b/python/conda/libastra/build.sh
@@ -1,5 +1,19 @@
 #!/bin/sh
 
+case `uname` in
+  Darwin*)
+    CUDA_ROOT=/usr/local/cuda
+    CC=gcc
+    CXX=g++
+    ;;
+  Linux*)
+    [ -n "$cudatoolkit" ] || exit 1
+    CUDA_ROOT=/usr/local/cuda-$cudatoolkit
+    ;;
+esac
+
+[ -x "$CUDA_ROOT" ] || exit 1
+
 cd $SRC_DIR/build/linux
 
 $SRC_DIR/build/linux/autogen.sh
@@ -12,7 +26,11 @@ rm -f $CONDA_PREFIX/test.out
 
 $SRC_DIR/build/linux/configure --with-install-type=prefix --with-cuda=$CUDA_ROOT --prefix=$CONDA_PREFIX NVCCFLAGS="-ccbin $CC -I$CONDA_PREFIX/include $EXTRA_NVCCFLAGS" CC=$CC CXX=$CXX CPPFLAGS="-I$CONDA_PREFIX/include"
 
-make install-libraries
+# Clean, because we may be re-using this source tree when building
+# multiple variants of this conda package.
+make clean
+
+make -j $CPU_COUNT install-libraries
 
 
 test -d $CUDA_ROOT/lib64 && LIBPATH="$CUDA_ROOT/lib64" || LIBPATH="$CUDA_ROOT/lib"
@@ -22,8 +40,13 @@ case `uname` in
     cp -P $LIBPATH/libcudart.*.dylib $CONDA_PREFIX/lib
     cp -P $LIBPATH/libcufft.*.dylib $CONDA_PREFIX/lib
     ;;
-  *)
-    cp -P $LIBPATH/libcudart.so.* $CONDA_PREFIX/lib
-    cp -P $LIBPATH/libcufft.so.* $CONDA_PREFIX/lib
+  Linux*)
+    if [ "$cudatoolkit" = "7.0" ]; then
+      # For some reason conda-build adds these symlinks automatically for
+      # cudatoolkit-5.5 and 6.0, but not 7.0. For 7.5 these symlinks are not
+      # necessary, and for 8.0 the cudatoolkit packages includes them.
+      ln -T -s libcudart.so.7.0.28 $CONDA_PREFIX/lib/libcudart.so.7.0
+      ln -T -s libcufft.so.7.0.35 $CONDA_PREFIX/lib/libcufft.so.7.0
+    fi
     ;;
 esac
diff --git a/python/conda/libastra/linux_build_config.yaml b/python/conda/libastra/linux_build_config.yaml
new file mode 100644
index 0000000..c5d2319
--- /dev/null
+++ b/python/conda/libastra/linux_build_config.yaml
@@ -0,0 +1,6 @@
+cudatoolkit:
+  - 5.5
+  - 6.0
+  - 7.0
+  - 7.5
+  - 8.0
diff --git a/python/conda/libastra/meta.yaml b/python/conda/libastra/meta.yaml
index 68cf47a..6176f30 100644
--- a/python/conda/libastra/meta.yaml
+++ b/python/conda/libastra/meta.yaml
@@ -9,9 +9,8 @@ source:
 build:
   number: 0
   script_env:
-    - CC # [not win]
-    - CXX # [not win]
-    - CUDA_ROOT # [not win]
+    - CC # [linux]
+    - CXX # [linux]
 
 requirements:
   build:
@@ -20,15 +19,13 @@ requirements:
     - automake # [osx]
     - autoconf # [osx]
     - libtool # [osx]
+    - cudatoolkit {{ cudatoolkit }} # [linux]
 
   run:
     - vs2015_runtime # [win]
+    - cudatoolkit {{ cudatoolkit }} # [linux]
 
 about:
   home: http://www.astra-toolbox.com
   license: GPLv3
   summary: 'The ASTRA Toolbox is a Python toolbox of high-performance GPU primitives for 2D and 3D tomography.'
-
-# See
-# http://docs.continuum.io/conda/build.html for
-# more information about meta.yaml
-- 
cgit v1.2.3