# Maintainer: Sven-Hendrik Haase # Contributor: Adria Arrufat (archdria) # Contributor: Thibault Lorrain (fredszaq) pkgbase=tensorflow pkgname=(tensorflow tensorflow-cuda python-tensorflow python-tensorflow-cuda) pkgver=1.2.1 pkgrel=2 pkgdesc="Library for computation using data flow graphs for scalable machine learning" url="https://www.tensorflow.org/" license=('Apache2') arch=('x86_64') makedepends=('git' 'bazel' 'python-numpy' 'gcc5' 'cuda' 'cudnn' 'python-pip' 'python-wheel' 'python-setuptools') source=("https://github.com/tensorflow/tensorflow/archive/v${pkgver}.tar.gz" 10868.patch 11174.patch https://raw.githubusercontent.com/tensorflow/tensorflow/847484e39485dc727dd72a0970d5bfb5c2d5e538/tensorflow/c/generate-pc.sh) sha512sums=('bed3d2173db41d5d6882dbe2bafac3b6cd541acc2e6bb73c838fbf34160a3fe4cff83e0ee0cf79a8081928701cc9752dc5bea7bf733ffadb7745a974e0467b0f' '90940827ea6cbc6694b14ea276a37c5f8af027317873d67a8b40802d8d75a81984c283335bf62cc5b5fa63023c9cc9b414a145d3019124127c5f15472bfdfcec' 'a6c13050a1e5398546e3879a5ce805211b79a5947becb486974e67cedfd1dae87773a21a4614343eca6f956ceda9e5b46e0ac7f259b685a83f412f41d051a6b7' '9a1d82df83881c662d088ccd5b21abcb8b46726f2090f64d968d270d99e3b7bbd6b3c9dae6e83479ff724a47238384df95ed67d0d096d97231c793e7f63a1034') prepare() { patch -Np1 -d tensorflow-${pkgver} < ${srcdir}/10868.patch patch -Np1 -d tensorflow-${pkgver} < ${srcdir}/11174.patch # We'll not need this in >1.2 cp ${srcdir}/generate-pc.sh tensorflow-${pkgver}/tensorflow/c/generate-pc.sh cp -r tensorflow-${pkgver} tensorflow-${pkgver}-cuda # These environment variables influence the behavior of the configure call below. export TF_NEED_MKL=0 export PYTHON_BIN_PATH=/usr/bin/python export USE_DEFAULT_PYTHON_LIB_PATH=1 export CC_OPT_FLAGS="-march=x86-64" export TF_NEED_JEMALLOC=1 export TF_NEED_GCP=0 export TF_NEED_HDFS=0 export TF_ENABLE_XLA=1 export TF_NEED_VERBS=0 export TF_NEED_OPENCL=0 } build() { cd ${srcdir}/tensorflow-${pkgver} export TF_NEED_CUDA=0 ./configure bazel build --config=opt //tensorflow:libtensorflow.so //tensorflow/tools/pip_package:build_pip_package bazel-bin/tensorflow/tools/pip_package/build_pip_package ${srcdir}/tmp cd ${srcdir}/tensorflow-${pkgver}-cuda export TF_NEED_CUDA=1 export GCC_HOST_COMPILER_PATH=/usr/bin/gcc-5 # For next version instead of the gcc-5 stuff: export TF_CUDA_CLANG=0 # export CLANG_CUDA_COMPILER_PATH=/usr/bin/clang export CUDA_TOOLKIT_PATH=/opt/cuda export TF_CUDA_VERSION=$($CUDA_TOOLKIT_PATH/bin/nvcc --version | sed -n 's/^.*release \(.*\),.*/\1/p') export CUDNN_INSTALL_PATH=/opt/cuda export TF_CUDNN_VERSION=$(sed -n 's/^#define CUDNN_MAJOR\s*\(.*\).*/\1/p' $CUDNN_INSTALL_PATH/include/cudnn.h) export TF_CUDA_COMPUTE_CAPABILITIES=3.0,3.5,5.2,6.1 ./configure bazel build --config=opt --config=cuda //tensorflow:libtensorflow.so //tensorflow/tools/pip_package:build_pip_package bazel-bin/tensorflow/tools/pip_package/build_pip_package ${srcdir}/tmpcuda } package_tensorflow() { cd ${srcdir}/tensorflow-${pkgver} tensorflow/c/generate-pc.sh --prefix=/usr --version=${pkgver} install -Dm644 tensorflow.pc ${pkgdir}/usr/lib/pkgconfig/tensorflow.pc install -Dm755 bazel-bin/tensorflow/libtensorflow.so ${pkgdir}/usr/lib/libtensorflow.so install -Dm644 tensorflow/c/c_api.h ${pkgdir}/usr/include/tensorflow/c/c_api.h install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/tensorflow/LICENSE } package_tensorflow-cuda() { depends=(cuda cudnn) conflicts=(tensorflow) provides=(tensorflow) cd ${srcdir}/tensorflow-${pkgver}-cuda tensorflow/c/generate-pc.sh --prefix=/usr --version=${pkgver} install -Dm644 tensorflow.pc ${pkgdir}/usr/lib/pkgconfig/tensorflow.pc install -Dm755 bazel-bin/tensorflow/libtensorflow.so ${pkgdir}/usr/lib/libtensorflow.so install -Dm644 tensorflow/c/c_api.h ${pkgdir}/usr/include/tensorflow/c/c_api.h install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/tensorflow/LICENSE } package_python-tensorflow() { depends=(python python-protobuf) optdepends=('python-werkzeug: for using tensorboard' 'python-bleach: for using tensorboard' 'python-markdown: for using tensorboard') cd ${srcdir}/tensorflow-${pkgver} WHEEL_PACKAGE=$(find ${srcdir}/tmp -name "tensor*.whl") pip install --ignore-installed --upgrade --root $pkgdir/ $WHEEL_PACKAGE --no-dependencies find ${pkgdir} -name __pycache__ -exec rm -r {} + install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/python-tensorflow/LICENSE } package_python-tensorflow-cuda() { depends=(python cuda cudnn python-pycuda python-protobuf) conflicts=(python-tensorflow) provides=(python-tensorflow) optdepends=('python-werkzeug: for using tensorboard' 'python-bleach: for using tensorboard' 'python-markdown: for using tensorboard') cd ${srcdir}/tensorflow-${pkgver}-cuda WHEEL_PACKAGE=$(find ${srcdir}/tmpcuda -name "tensor*.whl") pip install --ignore-installed --upgrade --root $pkgdir/ $WHEEL_PACKAGE --no-dependencies find ${pkgdir} -name __pycache__ -exec rm -r {} + install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/python-tensorflow/LICENSE } # vim:set ts=2 sw=2 et: