91 lines
4.1 KiB
Makefile
91 lines
4.1 KiB
Makefile
PORTNAME= onnxruntime
|
|
DISTVERSIONPREFIX= v
|
|
DISTVERSION= 1.30.0
|
|
CATEGORIES= misc # machine-learning
|
|
DIST_SUBDIR= ${PORTNAME}
|
|
|
|
MAINTAINER= yuri@FreeBSD.org
|
|
COMMENT= Cross-platform, high performance ML inferencing & training accelerator
|
|
WWW= https://onnxruntime.ai/ \
|
|
https://github.com/microsoft/onnxruntime
|
|
|
|
LICENSE= MIT
|
|
LICENSE_FILE= ${WRKSRC}/LICENSE
|
|
|
|
BROKEN_i386= compilation fails: error: requested alignment is less than minimum alignment of 8 for type 'google::protobuf::internal::ThreadSafeArena::CacheAlignedLifecycleIdGenerator'
|
|
|
|
BUILD_DEPENDS= gpatch:devel/patch
|
|
|
|
USES= cmake:testing compiler:c++11-lang python:build
|
|
USE_LDCONFIG= yes
|
|
|
|
USE_GITHUB= yes
|
|
GH_ACCOUNT= microsoft
|
|
GH_TUPLE= emscripten-core:emsdk:0742117:emsdk/cmake/external/emsdk \
|
|
google:libprotobuf-mutator:7a2ed51a6b682a83e345ff49fc4cfd7ca47550db:libprotobuf_mutator/cmake/external/libprotobuf-mutator \
|
|
onnx:onnx:2bb50465112feca9003e1ed654d77f01ff1415ca:onnx/cmake/external/onnx
|
|
|
|
CMAKE_SOURCE_PATH= ${WRKSRC}/cmake
|
|
CMAKE_ON= onnxruntime_BUILD_SHARED_LIB \
|
|
onnxruntime_USE_FULL_PROTOBUF
|
|
CMAKE_OFF= FETCHCONTENT_FULLY_DISCONNECTED \
|
|
onnxruntime_BUILD_UNIT_TESTS \
|
|
onnxruntime_DISABLE_RTTI
|
|
CMAKE_ARGS= -Donnx_SOURCE_DIR=${WRKSRC}/cmake/external/onnx
|
|
CMAKE_TESTING_ON= onnxruntime_BUILD_UNIT_TESTS
|
|
|
|
CXXFLAGS+= -Wno-array-bounds # workaround for https://github.com/microsoft/onnxruntime/issues/23410
|
|
CXXFLAGS+= -Wno-deprecated-declarations #fixes error: 'vec_lvsl' is deprecated: use assignment for unaligned little endian loads/stores
|
|
#CXXFLAGS+= -Wno-deprecated-altivec-src-compat #fixes error: current handling of vector bool and vector pixel types in this context are deprecated; the default behaviour will soon change to that implied by the '-altivec-compat=xl' option
|
|
CXXFLAGS+= -I${WRKSRC}/include/onnxruntime/core/common/logging # otherwise logging.h isn't found
|
|
CXXFLAGS_powerpc64= -Wno-error=deprecated-altivec-src-compat
|
|
|
|
BINARY_ALIAS= patch=gpatch
|
|
|
|
DEPS_FILE= ${WRKSRC}/cmake/deps.txt
|
|
|
|
CONFLICTS_BUILD= abseil benchmark nsync googletest dlpack flatbuffers gsl mimalloc \
|
|
nlohmann-json onnx protobuf psimd pthreadpool pybind11 re2
|
|
|
|
dev-update-deps-in-makefiles: extract # this should be run when the port is updated
|
|
@${FILESDIR}/convert-deps.sh ${DEPS_FILE}
|
|
|
|
pre-configure:
|
|
@${REINPLACE_CMD} -E 's|;(https://.*)/([^/]+\.zip);|;file://${DISTDIR}/${DIST_SUBDIR}/\2;|' ${DEPS_FILE}
|
|
@${REINPLACE_CMD} -E 's|;(https://.*)/([^/]+\.tar\.gz);|;file://${DISTDIR}/${DIST_SUBDIR}/\2;|' ${DEPS_FILE}
|
|
@${REINPLACE_CMD} -E 's|;(https://.*)/([^/]+\.tar\.xz);|;file://${DISTDIR}/${DIST_SUBDIR}/\2;|' ${DEPS_FILE}
|
|
@${REINPLACE_CMD} -E 's|;(https://.*)/([^/]+\.tar\.bz2);|;file://${DISTDIR}/${DIST_SUBDIR}/\2;|' ${DEPS_FILE}
|
|
@${REINPLACE_CMD} -E 's|;https://codeload\.github\.com/([^/]+)/([^/]+)/tar\.gz/refs/tags/([^/]+);|;file://${DISTDIR}/${DIST_SUBDIR}/\3;|' ${DEPS_FILE}
|
|
# correct one mismatching hash
|
|
#@${REINPLACE_CMD} -E 's|1094e3bb7a8af763dcb136ccd676e6e75e614eec|5d2b21b10478556c5e209dd7229e298a5c9f0b02|' ${DEPS_FILE}
|
|
|
|
# NOTE there should be an EXTRACT_ONLY statement
|
|
# NOTE shared libs can't be enabled because the build would fail, see discussion in this issue: https://github.com/microsoft/onnxruntime/issues/22331
|
|
|
|
do-test-quick:
|
|
@${ECHO_MSG} "===> Running quick staged-library C API test"
|
|
${CC} -I${STAGEDIR}${PREFIX}/include/onnxruntime \
|
|
-L${STAGEDIR}${PREFIX}/lib \
|
|
-Wl,-rpath,${STAGEDIR}${PREFIX}/lib \
|
|
${FILESDIR}/example.c -lonnxruntime \
|
|
-o ${WRKDIR}/example-onnxruntime
|
|
${WRKDIR}/example-onnxruntime ${FILESDIR}/example.onnx \
|
|
&& ${ECHO_MSG} "test-quick: succeeded" \
|
|
|| (${ECHO_MSG} "test-quick: failed"; exit 1)
|
|
|
|
test-quick: install do-test-quick
|
|
|
|
post-install: do-test-quick
|
|
@${DO_NADA}
|
|
|
|
# tests as of 1.30.0 (make test):
|
|
# CTest runs 10 test executables (41 sec total); all 10 passed.
|
|
# The main executable onnxruntime_test_all internally contains thousands of
|
|
# individual GoogleTest cases; the previous 1.21.1 note counted those directly
|
|
# by running ./onnxruntime_test_all instead of ctest.
|
|
# see https://github.com/microsoft/onnxruntime/issues/23816
|
|
|
|
.include <Makefile.MASTER_SITES>
|
|
.include <Makefile.DISTFILES>
|
|
.include <bsd.port.mk>
|