mirror of
https://github.com/psa/libtensorflow1-freebsd-port.git
synced 2025-12-10 16:59:48 +01:00
174 lines
5.2 KiB
Makefile
174 lines
5.2 KiB
Makefile
PORTNAME= libtensorflow1
|
|
DISTVERSIONPREFIX= v
|
|
DISTVERSION= 1.15.5
|
|
DISTVERSIONSUFFIX=
|
|
PORTREVISION= 2
|
|
CATEGORIES= science
|
|
|
|
MAINTAINER= freebsd-ports@otoh.org
|
|
COMMENT= C API for TensorFlow, an open source platform for machine learning
|
|
|
|
LICENSE= APACHE20 THIRD_PARTY_TF_C_LICENSES
|
|
LICENSE_COMB= multi
|
|
LICENSE_NAME_THIRD_PARTY_TF_C_LICENSES= Third-Party TensorFlow C Licenses
|
|
LICENSE_FILE_APACHE20= ${WRKSRC}/LICENSE
|
|
LICENSE_FILE_THIRD_PARTY_TF_C_LICENSES= ${WRKDIR}/THIRD_PARTY_TF_C_LICENSES
|
|
LICENSE_PERMS_THIRD_PARTY_TF_C_LICENSES= dist-mirror dist-sell \
|
|
pkg-mirror pkg-sell auto-accept
|
|
|
|
ONLY_FOR_ARCHS= amd64
|
|
|
|
BUILD_DEPENDS= bash:shells/bash \
|
|
bazel029<1:devel/bazel029 \
|
|
git:devel/git
|
|
|
|
FLAVORS= default noavx
|
|
FLAVOR?= ${FLAVORS:[1]}
|
|
noavx_PKGNAMESUFFIX= -noavx
|
|
noavx_CONFLICTS_INSTALL= libtensorflow1
|
|
default_CONFLICTS_INSTALL= libtensorflow1-noavx
|
|
CONFLICTS_INSTALL= science/libtensorflow2
|
|
|
|
USES= gmake python:3.7-3.9,build
|
|
|
|
USE_GITHUB= yes
|
|
GH_ACCOUNT= tensorflow
|
|
GH_PROJECT= tensorflow
|
|
.include "Makefile.gh_tuple"
|
|
|
|
USE_LDCONFIG= yes
|
|
|
|
CC?= clang
|
|
|
|
BINARY_ALIAS= python3=${PYTHON_CMD} python=${PYTHON_CMD}
|
|
|
|
SOVERSION= ${DISTVERSION}
|
|
PLIST_SUB= SOVERSION=${SOVERSION}
|
|
|
|
OPTIONS_DEFINE= CUDA OPENCL_SYCL ROCM XLA SSE3 SSE41 SSE42
|
|
OPTIONS_DEFAULT= AVX
|
|
|
|
OPTIONS_SINGLE= CPUFEATURE
|
|
OPTIONS_SINGLE_CPUFEATURE= AVX AVX2 NOAVX
|
|
.if ${FLAVOR:U} == noavx
|
|
OPTIONS_EXCLUDE:= ${OPTIONS_SINGLE_CPUFEATURE}
|
|
.endif
|
|
|
|
CPUFEATURE_DESC= Vector Processing Extensions
|
|
|
|
NOAVX_DESC= Disable Advanced Vector Extensions
|
|
AVX_DESC= Enable Advanced Vector Extensions (AVX)
|
|
AVX2_DESC= Enable Advanced Vector Extensions v2 (AVX2)
|
|
|
|
NOAVX_VARS= BAZEL_ARGS=
|
|
AVX_VARS= BAZEL_ARGS="--copt=-march=core-avx-i --host_copt=-march=core-avx-i"
|
|
AVX2_VARS= BAZEL_ARGS="--copt=-march=core-avx2 --host_copt=-march=core-avx2"
|
|
|
|
CUDA_DESC= Enable Compute Unified Device Architecture (CUDA) for Nvidia GPUs
|
|
CUDA_VARS= TF_ENABLE_CUDA=1
|
|
CUDA_VARS_OFF= TF_ENABLE_CUDA=0
|
|
|
|
OPENCL_SYCL_DESC= Enable OpenCL Sycl
|
|
OPENCL_SYCL_VARS= TF_NEED_OPENCL_SYCL=1
|
|
OPENCL_SYCL_VARS_OFF= TF_NEED_OPENCL_SYCL=0
|
|
|
|
ROCM_DESC= Enable Radeon Open Computer (ROCm) for AMD GPUs
|
|
ROCM_VARS= TF_ENABLE_ROCM=1
|
|
ROCM_VARS_OFF= TF_ENABLE_ROCM=0
|
|
|
|
XLA_DESC= Enable Accelerated Linear Algebra (XLA)
|
|
XLA_VARS= TF_ENABLE_XLA=1
|
|
XLA_VARS_OFF= TF_ENABLE_XLA=0
|
|
|
|
SSE3_DESC= Enable Streaming SIMD Extensions 3 (Prescott)
|
|
SSE3_VARS= BAZEL_ARGS+="--copt=-msse3"
|
|
|
|
SSE41_DESC= Enable Streaming SIMD Extensions 4.1 (Penryn)
|
|
SSE41_VARS= BAZEL_ARGS+="--copt=-msse4.1"
|
|
|
|
SSE42_DESC= Enable Streaming SIMD Extensions 4.2 (Nehalem)
|
|
SSE41_VARS= BAZEL_ARGS+="--copt=-msse4.2"
|
|
|
|
BAZEL_ARGS+= --action_env=PATH=${PATH} \
|
|
--color=no \
|
|
--discard_analysis_cache \
|
|
--distdir=${DISTDIR} \
|
|
--local_cpu_resources=${MAKE_JOBS_NUMBER} \
|
|
--nokeep_state_after_build \
|
|
--noshow_loading_progress \
|
|
--noshow_progress \
|
|
--notrack_incremental_state \
|
|
--subcommands \
|
|
--verbose_failures \
|
|
--worker_max_instances=${MAKE_JOBS_NUMBER}
|
|
|
|
BAZEL_OPTS= --output_user_root=${WRKDIR}/bazel_out
|
|
|
|
.include <bsd.port.options.mk>
|
|
|
|
post-extract:
|
|
# THIRD_PARTY_TF_C_LICENSES is generated as a Bazel build target (see
|
|
# //tensorflow/tools/lib_package:clicenses) and the empty file written
|
|
# here will be overwritten. Creation of this file is to satisfy checks.
|
|
@${TOUCH} ${WRKDIR}/THIRD_PARTY_TF_C_LICENSES
|
|
|
|
post-patch:
|
|
${REINPLACE_CMD} -e 's,%%PYTHON_CMD%%,${PYTHON_CMD},' \
|
|
-e 's,%%LOCALBASE%%,${LOCALBASE},' \
|
|
${WRKSRC}/.bazelrc
|
|
|
|
do-configure:
|
|
@cd ${WRKSRC} && ${SETENV} \
|
|
CC_OPT_FLAGS="-I${LOCALBASE}/include" \
|
|
PREFIX="${LOCALBASE}" \
|
|
PYTHON_BIN_PATH=${PYTHON_CMD} \
|
|
PYTHON_LIB_PATH="${PYTHON_SITELIBDIR}" \
|
|
TF_CONFIGURE_IOS=0 \
|
|
TF_DOWNLOAD_CLANG=0 \
|
|
TF_NEED_OPENCL_SYCL=${TF_NEED_OPENCL_SYCL} \
|
|
TF_ENABLE_XLA=${TF_ENABLE_XLA} \
|
|
TF_IGNORE_MAX_BAZEL_VERSION=0 \
|
|
TF_NEED_CUDA=${TF_ENABLE_CUDA} \
|
|
TF_NEED_MPI=0 \
|
|
TF_NEED_ROCM=${TF_ENABLE_ROCM} \
|
|
TF_NEED_TENSORRT=0 \
|
|
TF_SET_ANDROID_WORKSPACE=0 \
|
|
${LOCALBASE}/bin/bash ./configure
|
|
|
|
do-build:
|
|
@cd ${WRKSRC} && ${LOCALBASE}/bin/bazel ${BAZEL_OPTS} build \
|
|
${BAZEL_ARGS} \
|
|
//tensorflow/tools/lib_package:clicenses_generate \
|
|
//tensorflow/tools/lib_package:libtensorflow.tar.gz
|
|
|
|
do-test:
|
|
@cd ${WRKSRC} && ${LOCALBASE}/bin/bazel ${BAZEL_OPTS} test \
|
|
${BAZEL_ARGS} \
|
|
--test_env=CC=${CC} \
|
|
//tensorflow/tools/lib_package:libtensorflow_test
|
|
|
|
pre-install:
|
|
${CP} ${WRKSRC}/bazel-bin/tensorflow/tools/lib_package/THIRD_PARTY_TF_C_LICENSES \
|
|
${WRKDIR}/THIRD_PARTY_TF_C_LICENSES
|
|
${MKDIR} ${WRKDIR}/lib_package
|
|
(cd ${WRKDIR}/lib_package && ${TAR} xvf \
|
|
${WRKSRC}/bazel-bin/tensorflow/tools/lib_package/libtensorflow.tar.gz)
|
|
${MKDIR} ${STAGEDIR}${PREFIX}/include/tensorflow/c/eager
|
|
|
|
do-install:
|
|
.for f in c_api_experimental.h c_api.h eager/c_api.h \
|
|
tf_attrtype.h tf_datatype.h tf_status.h tf_tensor.h
|
|
${INSTALL_DATA} ${WRKDIR}/lib_package/include/tensorflow/c/${f} \
|
|
${STAGEDIR}${PREFIX}/include/tensorflow/c/${f}
|
|
.endfor
|
|
.for l in libtensorflow libtensorflow_framework
|
|
${INSTALL_PROGRAM} ${WRKDIR}/lib_package/lib/${l}.so.${SOVERSION} \
|
|
${STAGEDIR}${PREFIX}/lib/
|
|
${RLN} ${STAGEDIR}${PREFIX}/lib/${l}.so.${SOVERSION} \
|
|
${STAGEDIR}${PREFIX}/lib/${l}.so.1
|
|
${RLN} ${STAGEDIR}${PREFIX}/lib/${l}.so.1 \
|
|
${STAGEDIR}${PREFIX}/lib/${l}.so
|
|
.endfor
|
|
|
|
.include <bsd.port.mk>
|