aboutsummaryrefslogtreecommitdiff
path: root/science/py-tensorflow/Makefile
diff options
context:
space:
mode:
authorYuri Victorovich <yuri@FreeBSD.org>2019-08-06 15:28:01 +0000
committerYuri Victorovich <yuri@FreeBSD.org>2019-08-06 15:28:01 +0000
commit069ecdaf120f4924be812e6fef29d7dfe605ecee (patch)
tree926d5e1fe25bb955421476bee97c7064e22026fa /science/py-tensorflow/Makefile
parent2ff81ff30f666dafaba33b07be450806302f49f4 (diff)
downloadports-069ecdaf120f4924be812e6fef29d7dfe605ecee.tar.gz
ports-069ecdaf120f4924be812e6fef29d7dfe605ecee.zip
Re-add science/py-tensorflow: Computation using data flow graphs for scalable machine learning
Many thanks to Anthony who was highly persistent and skillful in getting the Tensorflow build on FreeBSD! PR: 226400 Submitted by: Anthony <amzo1337@gmail.com>
Notes
Notes: svn path=/head/; revision=508257
Diffstat (limited to 'science/py-tensorflow/Makefile')
-rw-r--r--science/py-tensorflow/Makefile162
1 files changed, 162 insertions, 0 deletions
diff --git a/science/py-tensorflow/Makefile b/science/py-tensorflow/Makefile
new file mode 100644
index 000000000000..b1701240fe4c
--- /dev/null
+++ b/science/py-tensorflow/Makefile
@@ -0,0 +1,162 @@
+# $FreeBSD$
+
+PORTNAME= tensorflow
+DISTVERSIONPREFIX= v
+DISTVERSION= 1.14.0
+CATEGORIES= science python
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DIST_SUBDIR= ${PORTNAME}
+EXTRACT_ONLY= tensorflow-tensorflow-v1.14.0_GH0.tar.gz
+
+MAINTAINER= amzo1337@gmail.com
+COMMENT= Computation using data flow graphs for scalable machine learning
+
+LICENSE= APACHE20
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+ONLY_FOR_ARCHS= amd64
+
+BUILD_DEPENDS= ${RUN_DEPENDS} \
+ ${PYTHON_PKGNAMEPREFIX}grpcio-tools>=1.22.0:devel/py-grpcio-tools@${PY_FLAVOR} \
+ bash:shells/bash \
+ cython:lang/cython \
+ swig3.0:devel/swig30 \
+ bazel:devel/bazel
+LIB_DEPENDS= libsnappy.so:archivers/snappy \
+ liblmdb.so:databases/lmdb \
+ libsqlite3.so:databases/sqlite3 \
+ libicuio.so:devel/icu \
+ libjsoncpp.so:devel/jsoncpp \
+ libpcre.so:devel/pcre \
+ libnsync.so:devel/nsync \
+ libprotobuf.so:devel/protobuf \
+ libprotobuf-c.so:devel/protobuf-c \
+ libre2.so:devel/re2 \
+ libgif.so:graphics/giflib \
+ libpng.so:graphics/png \
+ libgpr.so:devel/grpc \
+ libcurl.so:ftp/curl \
+ libgoogle_cloud_cpp_common.so:devel/google-cloud-cpp \
+ libflatbuffers.so:devel/flatbuffers \
+ libdouble-conversion.so:devel/double-conversion
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}absl>=0.7.1:devel/py-absl@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}astor>=0.5:devel/py-astor@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}gast>=0.2.2:devel/py-gast@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}numpy>=1.11.2:math/py-numpy@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}google-pasta>=0.1.7:devel/py-google-pasta@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}protobuf>=3.7.1:devel/py-protobuf@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}six>=1.10.0:devel/py-six@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}termcolor>=1.1.0:devel/py-termcolor@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}grpcio>=1.22.0:devel/py-grpcio@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}keras>=2.2.4:math/py-keras@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wrapt>=1.11.2:devel/py-wrapt@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0.30.0:devel/py-wheel@${PY_FLAVOR}
+
+USES= python:3.6 shebangfix jpeg ssl
+SHEBANG_GLOB= *.py
+USE_GITHUB= yes
+USE_PYTHON= distutils
+
+OPTIONS_DEFINE= CPU_OPTS
+CPU_OPTS_DESC= Enable CPU optimisations
+
+BAZEL_BOOT= --output_user_root=${WRKDIR}/bazel_out
+
+PLIST_SUB= TF_PORT_VERSION=${PORTVERSION}
+
+.include "Makefile.MASTER_SITES"
+.include <bsd.port.pre.mk>
+
+.if !${PORT_OPTIONS:MCPU_OPTS}
+CPU_TARGET=x86-64
+.else
+CPU_TARGET=native
+.endif
+
+post-patch:
+ # Set up a local repository with our pre-downloaded packages
+ # This prevents bazel downloading the files without modifying
+ # the bzl files.
+ @${MKDIR} ${WRKDIR}/bazel-cache
+ @${MKDIR} ${WRKDIR}/bazel-distdir
+
+.for file in ${DISTFILES:C/\:(.*)//}
+ @${ECHO} "Moving ${file} to ${WRKDIR}/bazel-cache"
+ @${CP} ${DISTDIR}/${DIST_SUBDIR}/${file} ${WRKDIR}/bazel-distdir
+.endfor
+
+ @cd ${WRKSRC} && \
+ ${REINPLACE_CMD} "s#--batch#${BAZEL_BOOT}\', \'--batch#" \
+ configure.py
+
+ @${CP} ${PATCHDIR}/bazelrc ${WRKDIR}/bazelrc
+ @${REINPLACE_CMD} "s#%%BAZEL_DIR%%#${WRKDIR}#" ${WRKDIR}/bazelrc
+ @${REINPLACE_CMD} "s#%%BAZEL_DIST%%#${WRKDIR}#" ${WRKDIR}/bazelrc
+ @${REINPLACE_CMD} "s#%%LOCALBASE%%#${LOCALBASE}#" ${WRKDIR}/bazelrc \
+ ${WRKSRC}/tensorflow/tensorflow.bzl ${WRKSRC}/.bazelrc \
+ ${WRKSRC}/tensorflow/core/BUILD \
+ ${WRKSRC}/third_party/systemlibs/protobuf.bzl
+
+do-configure:
+ @cd ${WRKSRC} && ${SETENV} \
+ PYTHON_BIN_PATH=${PYTHON_CMD} \
+ PYTHON_LIB_PATH="${PYTHON_SITELIBDIR}" \
+ TF_NEED_JEMALLOC=0 \
+ TF_NEED_KAFKA=0 \
+ TF_NEED_OPENCL_SYCL=0 \
+ TF_NEED_AWS=0 \
+ TF_NEED_GCP=0 \
+ TF_NEED_HDFS=0 \
+ TF_NEED_S3=0 \
+ TF_ENABLE_XLA=0 \
+ TF_NEED_GDR=0 \
+ TF_NEED_VERBS=0 \
+ TF_NEED_OPENCL=0 \
+ TF_NEED_MPI=0 \
+ TF_NEED_TENSORRT=0 \
+ TF_NEED_NGRAPH=0 \
+ TF_NEED_IGNITE=0 \
+ TF_NEED_ROCM=0 \
+ TF_NEED_CUDA=0 \
+ TF_SET_ANDROID_WORKSPACE=0 \
+ TF_DOWNLOAD_CLANG=0 \
+ TF_NEED_NCCL=0 \
+ TF_NEED_OPENCL=0 \
+ TF_IGNORE_MAX_BAZEL_VERSION=1 \
+ CC_OPT_FLAGS="-march=${CPU_TARGET} -I${LOCALBASE}/include" \
+ PREFIX="${LOCALBASE}" \
+ TF_SYSTEM_LIBS="absl_py astor_archive boringssl com_github_googleapis_googleapis com_github_googlecloudplatform_google_cloud_cpp com_google_protobuf \
+ com_google_protobuf_cc com_googlesource_code_re2 curl cython double_conversion enum34_archive flatbuffers gast_archive gif_archive \
+ grpc hwloc icu jpeg jsoncpp_git keras_applications_archive lmdb nasm nsync org_sqlite pasta pcre png_archive protobuf_archive \
+ six_archive snappy swig termcolor_archive wrapt zlib_archive" \
+ ./configure
+
+do-build:
+ @cd ${WRKSRC} && \
+ bazel --bazelrc="${WRKDIR}/bazelrc" ${BAZEL_BOOT} build ${BAZEL_COPT} --host_copt="-I${LOCALBASE}/include" \
+ --host_linkopt="-L${LOCALBASE}/lib" --linkopt="-L${LOCALBASE}/lib" --config=opt \
+ --incompatible_no_support_tools_in_action_inputs=false \
+ --verbose_failures -s \
+ //tensorflow:libtensorflow.so \
+ //tensorflow:libtensorflow_cc.so \
+ //tensorflow:install_headers \
+ //tensorflow/tools/pip_package:build_pip_package
+ @cd ${WRKSRC} && ${SETENV} TMPDIR=${WRKDIR} \
+ bazel-bin/tensorflow/tools/pip_package/build_pip_package \
+ ${WRKDIR}/whl
+
+do-install:
+ @${MKDIR} ${STAGEDIR}/${PYTHON_SITELIBDIR}
+ @${MKDIR} ${WRKDIR}/tmp
+ @${UNZIP_NATIVE_CMD} -d ${WRKDIR}/tmp ${WRKDIR}/whl/${PORTNAME}-${PORTVERSION}-*.whl
+ @${FIND} ${WRKDIR}/tmp -name "*.so*" | ${XARGS} ${STRIP_CMD}
+ cd ${WRKDIR}/tmp && ${COPYTREE_SHARE} ${PORTNAME}-${PORTVERSION}.dist-info \
+ ${STAGEDIR}${PYTHON_SITELIBDIR}
+ cd ${WRKDIR}/tmp/${PORTNAME}-${PORTVERSION}.data/purelib && \
+ ${COPYTREE_SHARE} . ${STAGEDIR}${PYTHON_SITELIBDIR}
+
+post-install: # autoplist: thousands of files, all under ${PYTHON_SITELIBDIR}
+ @cd ${STAGEDIR}${PREFIX} && \
+ ${FIND} ${PYTHON_SITELIBDIR:C|^${LOCALBASE}/||} -type f -or -type l | grep -v "egg-info/" >> ${TMPPLIST}
+
+.include <bsd.port.post.mk>