diff options
Diffstat (limited to 'math/py-keras/Makefile')
| -rw-r--r-- | math/py-keras/Makefile | 117 |
1 files changed, 23 insertions, 94 deletions
diff --git a/math/py-keras/Makefile b/math/py-keras/Makefile index 55791760d60f..bdbf443eb9ad 100644 --- a/math/py-keras/Makefile +++ b/math/py-keras/Makefile @@ -1,107 +1,36 @@ PORTNAME= keras -DISTVERSION= 2.9.0 -PORTREVISION= 1 -CATEGORIES= math # machine-learning +DISTVERSION= 3.12.0 +CATEGORIES= math python # machine-learning +MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org -COMMENT= Deep learning library for Python +COMMENT= Multi-backend deep learning library for Python WWW= https://keras.io/ -LICENSE= MIT -LICENSE_FILE= ${WRKSRC}/LICENSE +LICENSE= APACHE20 +BUILD_DEPENDS= ${PY_SETUPTOOLS} \ + ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} RUN_DEPENDS= ${PYNUMPY} \ - ${PYTHON_PKGNAMEPREFIX}absl-py>=1.0.0:devel/py-absl-py \ - ${PYTHON_PKGNAMEPREFIX}h5py>=0:science/py-h5py@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}pandas>=1.3.5:math/py-pandas@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}pillow>=9.2.0:graphics/py-pillow@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}keras-preprocessing>=1.1.0:math/py-keras-preprocessing@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}scipy>=0.14:science/py-scipy@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}six>=1.9.0:devel/py-six@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}protobuf>=3.13.0:devel/py-protobuf@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}keras-applications>=1.0.8:math/py-keras-applications@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}keras-preprocessing>=1.1.1:math/py-keras-preprocessing@${PY_FLAVOR} - -BUILD_DEPENDS= ${RUN_DEPENDS} \ - ${PYTHON_PKGNAMEPREFIX}tensorflow>=2.9.0:science/py-tensorflow@${PY_FLAVOR} \ - bazel:devel/bazel5 \ - bash:shells/bash + ${PYTHON_PKGNAMEPREFIX}absl-py>0:devel/py-absl-py@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}h5py>0:science/py-h5py@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}ml-dtypes>0:math/py-ml-dtypes@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}namex>0:devel/py-namex@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}optree>0:devel/py-optree@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}packaging>0:devel/py-packaging@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}rich>0:textproc/py-rich@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}tensorflow>=2.12.0:science/py-tensorflow@${PY_FLAVOR} +RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}scipy>=1.0:science/py-scipy@${PY_FLAVOR} + +# Extra dependencies for optional backends (jax, torch) +# openvino backend not available as FreeBSD port +EXTRA_DEPENDS= ${PYTHON_PKGNAMEPREFIX}jax>0:math/py-jax@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pytorch>0:misc/py-pytorch@${PY_FLAVOR} USES= python +USE_PYTHON= autoplist concurrent pep517 -USE_GITHUB= yes -GH_ACCOUNT= keras-team -GH_PROJECT= ${PORTNAME} -GH_TAGNAME= r2.9 - -.include "Makefile.MASTER_SITES" - -post-patch: - # don't cache stuff to $HOME/.cache/ - @${MKDIR} ${WRKDIR}/bazel-cache - @${MKDIR} ${WRKDIR}/bazel-dist - -.for file in ${DISTFILES:C/\:(.*)//} - @${ECHO} "Moving ${file} to ${WRKDIR}/bazel-dist" - @${CP} ${DISTDIR}/${DIST_SUBDIR}/${file} ${WRKDIR}/bazel-dist -.endfor - - # place the generate wheel file here - @${MKDIR} ${WRKDIR}/whl - - # These files are from my tensorflow port - # if both make it into the port they can be shared - - # copy the toolchain over - @${CP} -R ${PATCHDIR}/freebsd \ - ${WRKSRC}/ - - @${CP} ${PATCHDIR}/bazelrc \ - ${WRKSRC}/ - - #setup localbase - @${REINPLACE_CMD} "s#%%LOCALBASE%%#${LOCALBASE}#" \ - ${WRKSRC}/freebsd/cc_toolchain_config.bzl \ - ${WRKSRC}/.bazelrc \ - ${WRKSRC}/bazelrc - - # setup our bazelrc - @${REINPLACE_CMD} "s#%%BAZEL_DIR%%#${WRKDIR}#" ${WRKSRC}/bazelrc - @${REINPLACE_CMD} "s#%%BAZEL_DIST%%#${WRKDIR}#" ${WRKSRC}/bazelrc - @${REINPLACE_CMD} "s#%%PATH%%#${PATH}#" ${WRKSRC}/bazelrc - @${REINPLACE_CMD} "s#%%PYTHON%%#${PYTHON_CMD}#" ${WRKSRC}/.bazelrc - - # bazel is horrible, it will won't propagated enviroment variable throughout the build - # and will ignore variables set by us. This causing a lot of issues, especially with python - # auto generated files will sometimes ignore our py_runtime toolchain and our PYTHON_BIN_PATH - # causing it to still set the shebang line to bin/env python3. Even on the github page the solution - # has been to use a symlink to work around so do that here as a fix - @${MKDIR} ${WRKDIR}/.bin - ${LN} -s ${PYTHON_CMD} ${WRKDIR}/.bin/python3 - - @${REINPLACE_CMD} "s#%%PYTHON%%#${PYTHON_CMD}#" \ - ${WRKSRC}/keras/tools/pip_package/build_pip_package.sh - -do-build: - @cd ${WRKSRC} && ${SETENV} \ - PYTHON_BIN_PATH=${PYTHON_CMD} \ - PYTHON_LIB_PATH="${PYTHON_SITELIBDIR}" \ - PYTHON_BINARY=${PYTHON_CMD} \ - bazel --bazelrc="${WRKSRC}/bazelrc" \ - build --config=freebsd \ - //keras/tools/pip_package:build_pip_package - -# @${REINPLACE_CMD} "s#python#${PYTHON_CMD}#" \ -# ${WRKSRC}/bazel-bin/keras/tools/pip_package/build_pip_package - - @cd ${WRKSRC} && \ - bazel-bin/keras/tools/pip_package/build_pip_package \ - ${WRKDIR}/whl - -do-install: - @${MKDIR} ${STAGEDIR}/${PYTHON_SITELIBDIR} - - ${UNZIP_NATIVE_CMD} -d ${STAGEDIR}/${PYTHON_SITELIBDIR} ${WRKDIR}/whl/${PORTNAME}-${PORTVERSION}-*.whl +NO_ARCH= yes .include <bsd.port.mk> |
