From eeffd2d9748b8912b384a5764b808f5bfc850ade Mon Sep 17 00:00:00 2001 From: Holger Kohr Date: Wed, 23 Nov 2016 10:21:55 +0100 Subject: Separate C++ and python builds & make conda work nicely - make builder (= advanced user or us ourselves) choose compilers and CUDA - add a check for the C++11 flag for nvcc to work around the infamous boost bug if necessary - use conda boost to build the C++ library - simplify python bindings conda recipe to only build the bindings; the C++ library is now a build and runtime dependency - add runtime dependencies to python bindings recipe - some small adjustments to builder.py --- python/conda/libastra/build.sh | 28 ++++++++++++++++++---------- python/conda/libastra/meta.yaml | 10 ++++++++-- 2 files changed, 26 insertions(+), 12 deletions(-) (limited to 'python/conda/libastra') diff --git a/python/conda/libastra/build.sh b/python/conda/libastra/build.sh index e1d9700..5807697 100644 --- a/python/conda/libastra/build.sh +++ b/python/conda/libastra/build.sh @@ -1,15 +1,23 @@ -cd build/linux -./autogen.sh -./configure --with-cuda=$CUDA_ROOT --prefix=$PREFIX -if [ $MAKEOPTS == '' ] - then - MAKEOPTS="" -fi -make $MAKEOPTS install-libraries +#!/bin/sh + +cd $SRC_DIR/build/linux + +$SRC_DIR/build/linux/autogen.sh + +# Add C++11 to compiler flags if nvcc supports it, mostly to work around a boost bug +NVCC=$CUDA_ROOT/bin/nvcc +echo "int main(){return 0;}" > $CONDA_PREFIX/test.cu +$NVCC $CONDA_PREFIX/test.cu -ccbin $CC --std=c++11 -o $CONDA_PREFIX/test.out > /dev/null && EXTRA_NVCCFLAGS="--std=c++11" || /bin/true +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 $EXTRA_NVCCFLAGS" CC=$CC CXX=$CXX CFLAGS="-I$CONDA_PREFIX/include/boost" CXXFLAGS="-I$CONDA_PREFIX/include/boost" + +make install-libraries + LIBPATH=lib if [ $ARCH == 64 ] then LIBPATH+=64 fi -cp -P $CUDA_ROOT/$LIBPATH/libcudart.so.* $PREFIX/lib -cp -P $CUDA_ROOT/$LIBPATH/libcufft.so.* $PREFIX/lib +cp -P $CUDA_ROOT/$LIBPATH/libcudart.so.* $CONDA_PREFIX/lib +cp -P $CUDA_ROOT/$LIBPATH/libcufft.so.* $CONDA_PREFIX/lib diff --git a/python/conda/libastra/meta.yaml b/python/conda/libastra/meta.yaml index 73fa0d7..7c92e04 100644 --- a/python/conda/libastra/meta.yaml +++ b/python/conda/libastra/meta.yaml @@ -4,13 +4,19 @@ package: source: git_url: https://github.com/astra-toolbox/astra-toolbox.git - #git_tag: v1.7.1 # Change to 1.8 after release + git_rev: master # for testing + # git_tag: 1.8 # TODO: change to this for next release build: number: 0 script_env: + - CC + - CXX - CUDA_ROOT - - MAKEOPTS + +requirements: + build: + - boost about: home: http://www.astra-toolbox.com -- cgit v1.2.3 From 93d14a3424d4bdc980eeab3f02e250c07e6c37b6 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Mon, 28 Nov 2016 16:37:53 +0100 Subject: Add conda build scripts for win-64/py35 --- python/conda/libastra/bld.bat | 33 +++++++++++++++++++++++++++++++++ python/conda/libastra/meta.yaml | 12 ++++++++---- 2 files changed, 41 insertions(+), 4 deletions(-) create mode 100644 python/conda/libastra/bld.bat (limited to 'python/conda/libastra') diff --git a/python/conda/libastra/bld.bat b/python/conda/libastra/bld.bat new file mode 100644 index 0000000..bb7329a --- /dev/null +++ b/python/conda/libastra/bld.bat @@ -0,0 +1,33 @@ +@echo off + +set B_VC=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64 + +call "%B_VC%\vcvars64.bat" + +set R=%SRC_DIR% +set B_BV=1_61 + +mkdir "%R%\lib\x64" +mkdir "%R%\bin\x64\Release_CUDA" + +cd /D %CONDA_PREFIX%\Library\lib + + +copy boost_unit_test_framework-vc140-mt-%B_BV%.lib %R%\lib\x64 +copy libboost_chrono-vc140-mt-%B_BV%.lib %R%\lib\x64 +copy libboost_date_time-vc140-mt-%B_BV%.lib %R%\lib\x64 +copy libboost_system-vc140-mt-%B_BV%.lib %R%\lib\x64 +copy libboost_thread-vc140-mt-%B_BV%.lib %R%\lib\x64 + +cd /D %CONDA_PREFIX%\Library\include + +xcopy /i /e /q boost "%R%\lib\include\boost" + +cd /D %R% + +msbuild astra_vc14.sln /p:Configuration=Release_CUDA /p:Platform=x64 /t:astra_vc14 + +copy bin\x64\Release_CUDA\AstraCuda64.dll "%CONDA_PREFIX%\Library\bin" +copy bin\x64\Release_CUDA\AstraCuda64.lib "%CONDA_PREFIX%\Library\lib" +copy "%CUDA_PATH%\bin\cudart64_80.dll" "%CONDA_PREFIX%\Library\bin" +copy "%CUDA_PATH%\bin\cufft64_80.dll" "%CONDA_PREFIX%\Library\bin" diff --git a/python/conda/libastra/meta.yaml b/python/conda/libastra/meta.yaml index 7c92e04..c9135ab 100644 --- a/python/conda/libastra/meta.yaml +++ b/python/conda/libastra/meta.yaml @@ -10,13 +10,17 @@ source: build: number: 0 script_env: - - CC - - CXX - - CUDA_ROOT + - CC # [not win] + - CXX # [not win] + - CUDA_ROOT # [not win] requirements: build: - - boost + - boost ==1.61 # [win] + - vs2015_runtime # [win] + + run: + - vs2015_runtime # [win] about: home: http://www.astra-toolbox.com -- cgit v1.2.3 From 7017618690b66e99773355b82afe26ac869d6aa8 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Mon, 28 Nov 2016 15:34:50 +0100 Subject: Add astra.__version__ (PEP396) --- python/conda/libastra/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'python/conda/libastra') diff --git a/python/conda/libastra/meta.yaml b/python/conda/libastra/meta.yaml index c9135ab..25da269 100644 --- a/python/conda/libastra/meta.yaml +++ b/python/conda/libastra/meta.yaml @@ -1,6 +1,6 @@ package: name: libastra - version: '1.8b' + version: '1.8rc1' source: git_url: https://github.com/astra-toolbox/astra-toolbox.git -- cgit v1.2.3 From 77f2cedaac088da5107dcfb37ae62d8f3a56f335 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Mon, 5 Dec 2016 14:44:09 +0100 Subject: Update version to 1.8 --- python/conda/libastra/meta.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'python/conda/libastra') diff --git a/python/conda/libastra/meta.yaml b/python/conda/libastra/meta.yaml index 25da269..007cba9 100644 --- a/python/conda/libastra/meta.yaml +++ b/python/conda/libastra/meta.yaml @@ -1,11 +1,10 @@ package: name: libastra - version: '1.8rc1' + version: '1.8' source: git_url: https://github.com/astra-toolbox/astra-toolbox.git - git_rev: master # for testing - # git_tag: 1.8 # TODO: change to this for next release + git_tag: v1.8 build: number: 0 -- cgit v1.2.3 From 3d080e9bd80714c65818feb31cdba131b36b6a3b Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Fri, 9 Dec 2016 15:39:57 +0100 Subject: Use external boost for conda/win-64 This enables py27 conda packages for win-64. --- python/conda/libastra/bld.bat | 14 +++++++------- python/conda/libastra/meta.yaml | 1 - 2 files changed, 7 insertions(+), 8 deletions(-) (limited to 'python/conda/libastra') diff --git a/python/conda/libastra/bld.bat b/python/conda/libastra/bld.bat index bb7329a..29b894a 100644 --- a/python/conda/libastra/bld.bat +++ b/python/conda/libastra/bld.bat @@ -1,25 +1,25 @@ @echo off -set B_VC=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64 +set R=%SRC_DIR% +set B_VC=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64 call "%B_VC%\vcvars64.bat" -set R=%SRC_DIR% -set B_BV=1_61 +set B_BV=1_62 +set B_BOOST=D:\wjp\boost_%B_BV%_0 + +cd /D "%B_BOOST%\lib64-msvc-14.0" mkdir "%R%\lib\x64" mkdir "%R%\bin\x64\Release_CUDA" -cd /D %CONDA_PREFIX%\Library\lib - - copy boost_unit_test_framework-vc140-mt-%B_BV%.lib %R%\lib\x64 copy libboost_chrono-vc140-mt-%B_BV%.lib %R%\lib\x64 copy libboost_date_time-vc140-mt-%B_BV%.lib %R%\lib\x64 copy libboost_system-vc140-mt-%B_BV%.lib %R%\lib\x64 copy libboost_thread-vc140-mt-%B_BV%.lib %R%\lib\x64 -cd /D %CONDA_PREFIX%\Library\include +cd %B_BOOST% xcopy /i /e /q boost "%R%\lib\include\boost" diff --git a/python/conda/libastra/meta.yaml b/python/conda/libastra/meta.yaml index 007cba9..c05a466 100644 --- a/python/conda/libastra/meta.yaml +++ b/python/conda/libastra/meta.yaml @@ -15,7 +15,6 @@ build: requirements: build: - - boost ==1.61 # [win] - vs2015_runtime # [win] run: -- cgit v1.2.3 From f0888d0cb90e3eef2cb31a4e1b183876a0bc3f42 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Mon, 23 Jan 2017 12:01:24 +0100 Subject: Use true instead of /bin/true It's in /usr/bin/ on macOS. --- python/conda/libastra/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'python/conda/libastra') diff --git a/python/conda/libastra/build.sh b/python/conda/libastra/build.sh index 5807697..46736c4 100644 --- a/python/conda/libastra/build.sh +++ b/python/conda/libastra/build.sh @@ -7,7 +7,7 @@ $SRC_DIR/build/linux/autogen.sh # Add C++11 to compiler flags if nvcc supports it, mostly to work around a boost bug NVCC=$CUDA_ROOT/bin/nvcc echo "int main(){return 0;}" > $CONDA_PREFIX/test.cu -$NVCC $CONDA_PREFIX/test.cu -ccbin $CC --std=c++11 -o $CONDA_PREFIX/test.out > /dev/null && EXTRA_NVCCFLAGS="--std=c++11" || /bin/true +$NVCC $CONDA_PREFIX/test.cu -ccbin $CC --std=c++11 -o $CONDA_PREFIX/test.out > /dev/null && EXTRA_NVCCFLAGS="--std=c++11" || true 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 $EXTRA_NVCCFLAGS" CC=$CC CXX=$CXX CFLAGS="-I$CONDA_PREFIX/include/boost" CXXFLAGS="-I$CONDA_PREFIX/include/boost" -- cgit v1.2.3 From 4203c3132484cc669bd6f92d180c0623f85f569e Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Mon, 23 Jan 2017 12:10:38 +0100 Subject: Fix conda boost include flags --- python/conda/libastra/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'python/conda/libastra') diff --git a/python/conda/libastra/build.sh b/python/conda/libastra/build.sh index 46736c4..36c3eba 100644 --- a/python/conda/libastra/build.sh +++ b/python/conda/libastra/build.sh @@ -10,7 +10,7 @@ echo "int main(){return 0;}" > $CONDA_PREFIX/test.cu $NVCC $CONDA_PREFIX/test.cu -ccbin $CC --std=c++11 -o $CONDA_PREFIX/test.out > /dev/null && EXTRA_NVCCFLAGS="--std=c++11" || true 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 $EXTRA_NVCCFLAGS" CC=$CC CXX=$CXX CFLAGS="-I$CONDA_PREFIX/include/boost" CXXFLAGS="-I$CONDA_PREFIX/include/boost" +$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 -- cgit v1.2.3 From 0f6c2fdc899b19000c3fcfa3f4e2129dd16a44ce Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Mon, 23 Jan 2017 12:32:10 +0100 Subject: Change lib/lib64 logic macOS CUDA uses lib even on 64 bit --- python/conda/libastra/build.sh | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'python/conda/libastra') diff --git a/python/conda/libastra/build.sh b/python/conda/libastra/build.sh index 36c3eba..50d2ae5 100644 --- a/python/conda/libastra/build.sh +++ b/python/conda/libastra/build.sh @@ -14,10 +14,15 @@ $SRC_DIR/build/linux/configure --with-install-type=prefix --with-cuda=$CUDA_ROOT make install-libraries -LIBPATH=lib -if [ $ARCH == 64 ] - then - LIBPATH+=64 -fi -cp -P $CUDA_ROOT/$LIBPATH/libcudart.so.* $CONDA_PREFIX/lib -cp -P $CUDA_ROOT/$LIBPATH/libcufft.so.* $CONDA_PREFIX/lib + +test -d $CUDA_ROOT/lib64 && LIBPATH="$CUDA_ROOT/lib64" || LIBPATH="$CUDA_ROOT/lib" + +case `uname` in + Darwin*) + 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 + ;; +esac -- cgit v1.2.3 From 76bd01e47e4fc76b16d65d9cfc0216347951c518 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Mon, 23 Jan 2017 14:13:22 +0100 Subject: Silence errors from nvcc test run --- python/conda/libastra/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'python/conda/libastra') diff --git a/python/conda/libastra/build.sh b/python/conda/libastra/build.sh index 50d2ae5..98220f5 100644 --- a/python/conda/libastra/build.sh +++ b/python/conda/libastra/build.sh @@ -7,7 +7,7 @@ $SRC_DIR/build/linux/autogen.sh # Add C++11 to compiler flags if nvcc supports it, mostly to work around a boost bug NVCC=$CUDA_ROOT/bin/nvcc echo "int main(){return 0;}" > $CONDA_PREFIX/test.cu -$NVCC $CONDA_PREFIX/test.cu -ccbin $CC --std=c++11 -o $CONDA_PREFIX/test.out > /dev/null && EXTRA_NVCCFLAGS="--std=c++11" || true +$NVCC $CONDA_PREFIX/test.cu -ccbin $CC --std=c++11 -o $CONDA_PREFIX/test.out > /dev/null 2>&1 && EXTRA_NVCCFLAGS="--std=c++11" || true 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" -- cgit v1.2.3 From d70274581443afd30d8347dae737c419142c88da Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Mon, 23 Jan 2017 14:13:53 +0100 Subject: Add autotools and boost to macOS conda libastra dependencies --- python/conda/libastra/meta.yaml | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'python/conda/libastra') diff --git a/python/conda/libastra/meta.yaml b/python/conda/libastra/meta.yaml index c05a466..68cf47a 100644 --- a/python/conda/libastra/meta.yaml +++ b/python/conda/libastra/meta.yaml @@ -16,6 +16,10 @@ build: requirements: build: - vs2015_runtime # [win] + - boost # [osx] + - automake # [osx] + - autoconf # [osx] + - libtool # [osx] run: - vs2015_runtime # [win] -- cgit v1.2.3 From c9f11161191729046eb91cc038d815ee8bd1e225 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Wed, 29 Mar 2017 21:37:02 +0200 Subject: Fix conda build --- python/conda/libastra/build.sh | 1 + 1 file changed, 1 insertion(+) (limited to 'python/conda/libastra') diff --git a/python/conda/libastra/build.sh b/python/conda/libastra/build.sh index 98220f5..304c053 100644 --- a/python/conda/libastra/build.sh +++ b/python/conda/libastra/build.sh @@ -21,6 +21,7 @@ case `uname` in Darwin*) 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 -- cgit v1.2.3