commit: 58b733cf90a98c542be4b42dda16c0cd2bb37311 Author: Maxim <kolmax94 <AT> gmail <DOT> com> AuthorDate: Fri Mar 13 16:58:47 2015 +0000 Commit: Maxim Koltsov <maksbotan <AT> gentoo <DOT> org> CommitDate: Fri Mar 13 17:16:27 2015 +0000 URL: https://gitweb.gentoo.org/dev/maksbotan.git/commit/?id=58b733cf
Add dev-libs/caffe-9999 ebuild Package-Manager: portage-2.2.17 dev-libs/caffe/Manifest | 2 + dev-libs/caffe/caffe-9999.ebuild | 133 +++++++++++++++++++++++++++++++++++++++ dev-libs/caffe/metadata.xml | 11 ++++ 3 files changed, 146 insertions(+) diff --git a/dev-libs/caffe/Manifest b/dev-libs/caffe/Manifest new file mode 100644 index 0000000..fd218ac --- /dev/null +++ b/dev-libs/caffe/Manifest @@ -0,0 +1,2 @@ +EBUILD caffe-9999.ebuild 2849 SHA256 158e1ed5ebe1c861dcff44d474cfd3a785f2af25226c66ac1e96bc68a07e03d0 SHA512 f8bd7462bb8c8af0537a87cb33c5ddcc55d499556f1554f92326cac689a9542eca90619c15950855a87316b6f9888e6d4fcff2f8dbe93b030492a170a4a6e992 WHIRLPOOL 9205c209bd6c7675d09dc4d44ad998eb82d50fc80a89a10daf52ef15ab5a87718104f971ff7b4f02d2abec25ead60a434688c8d39c28d70177232ec9d55c66ef +MISC metadata.xml 305 SHA256 bf868a44e6d34e3495a705d30149d16294c294141ae4b87eb0c7a2949df0d83c SHA512 a124af1bf9b9d853cd09e411b3a0558ba0b7b04b3e65c7c0625cacf5e4cbbf5e4bab747b0dab9318c2da042668ac9be79d47bb66049bf32f934221808101a2cc WHIRLPOOL 5be2ce659ffc4a20111c3ef3d827709b0ba150f7bc60aa17f1c17986aa7ac7670f775ded2850977f5f84054343a4efe52e828bfd4775003dc725ec4f43d772a1 diff --git a/dev-libs/caffe/caffe-9999.ebuild b/dev-libs/caffe/caffe-9999.ebuild new file mode 100644 index 0000000..5472075 --- /dev/null +++ b/dev-libs/caffe/caffe-9999.ebuild @@ -0,0 +1,133 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=5 + +EGIT_REPO_URI="git://github.com/BVLC/caffe.git" +PYTHON_COMPAT=( python2_7 ) + +inherit toolchain-funcs multilib git-r3 python-single-r1 +# Can't use cuda.eclass as nvcc does not like --compiler-bindir set there for some reason + +DESCRIPTION="Deep learning framework by the BVLC" +HOMEPAGE="http://caffe.berkeleyvision.org/" +SRC_URI="" + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="" +IUSE="cuda python" + +CDEPEND=" + dev-libs/boost:=[python?] + media-libs/opencv:= + dev-libs/protobuf:=[python?] + dev-cpp/glog:= + dev-cpp/gflags:= + sci-libs/hdf5:= + dev-libs/leveldb:= + app-arch/snappy:= + dev-db/lmdb:= + cuda? ( + dev-util/nvidia-cuda-toolkit + ) + python? ( + ${PYTHON_DEPS} + ) +" +DEPEND=" + ${CDEPEND} + sys-devel/bc +" +RDEPEND=" + ${CDEPEND} + python? ( + dev-python/pandas[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + media-gfx/pydot[${PYTHON_USEDEP}] + sci-libs/scikits_image[${PYTHON_USEDEP}] + ) +" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +src_configure() { + # Respect CFLAGS + sed -e '/COMMON_FLAGS/s/-O2//' -i Makefile + + cat > Makefile.config << EOF +BLAS := atlas +BUILD_DIR := build +DISTRIBUTE_DIR := distribute +EOF + + if use cuda; then + cat >> Makefile.config << EOF +CUDA_DIR := "${EPREFIX}/opt/cuda" + +CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \ + -gencode arch=compute_20,code=sm_21 \ + -gencode arch=compute_30,code=sm_30 \ + -gencode arch=compute_35,code=sm_35 \ + -gencode arch=compute_50,code=sm_50 \ + -gencode arch=compute_50,code=compute_50 +EOF + + # This should be handled by Makefile itself, but somehow is broken + sed -e "/CUDA_LIB_DIR/s/lib/$(get_libdir)/" -i Makefile || die "sed failed" + else + echo "CPU_ONLY := 1" >> Makefile.config + fi + + if use python; then + python_export PYTHON_INCLUDEDIR PYTHON_SITEDIR PYTHON_LIBPATH + cat >> Makefile.config << EOF +PYTHON_INCLUDE := "${PYTHON_INCLUDEDIR}" "${PYTHON_SITEDIR}/numpy/core/include" +PYTHON_LIB := "$(dirname ${PYTHON_LIBPATH})" +WITH_PYTHON_LAYER := 1 + +INCLUDE_DIRS += \$(PYTHON_INCLUDE) +LIBRARY_DIRS += \$(PYTHON_LIB) +EOF + + local py_version=${EPYTHON#python} + sed -e "/PYTHON_LIBRARIES/s/python\s/python-${py_version} /g" \ + -e '/blas/s/atlas//' \ + -i Makefile || die "sed failed" + fi + + tc-export CC CXX +} + +src_compile() { + emake + + use python && emake pycaffe +} + +src_test() { + emake runtest + + use python && emake pytest +} + +src_install() { + emake distribute + + for bin in distribute/bin/*; do + dobin ${bin} + done + + insinto /usr + doins -r distribute/include/ + + dolib.a distribute/lib/libcaffe.a + dolib.so distribute/lib/libcaffe.so + + rm distribute/python/caffe/_caffe.cpp || die "rm failed" + python_domodule distribute/python/caffe + for script in distribute/python/*.py; do + python_doscript ${script} + done +} diff --git a/dev-libs/caffe/metadata.xml b/dev-libs/caffe/metadata.xml new file mode 100644 index 0000000..f6c645a --- /dev/null +++ b/dev-libs/caffe/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer> + <email>maksbo...@gentoo.org</email> + <name>Maxim Koltsov</name> +</maintainer> +<use> + <flag name="cuda">Enable NVIDIA CUDA toolkit support</flag> +</use> +</pkgmetadata>