Files
ports/lang/odin/Makefile
T
2026-10-04 04:07:15 +00:00

66 lines
2.3 KiB
Makefile

PORTNAME= odin
DISTVERSIONPREFIX= dev-
DISTVERSION= 2026-09
CATEGORIES= lang devel
PKGNAMESUFFIX= -lang
MAINTAINER= yuri@FreeBSD.org
COMMENT= Odin programming language
WWW= https://odin-lang.org \
https://github.com/odin-lang/Odin
LICENSE= ZLIB
LICENSE_FILE= ${WRKSRC}/LICENSE
BROKEN_armv7= compilation fails: use of undeclared identifier 'LLVMInitializeWebAssemblyTargetInfo'
BROKEN_i386= compilation fails: use of undeclared identifier 'LLVMInitializeAArch64TargetInfo', see https://github.com/odin-lang/Odin/issues/4875
USES= gmake llvm:21,lib python:test
USE_GITHUB= yes
GH_ACCOUNT= odin-lang
GH_PROJECT= Odin
ALL_TARGET= release
BINARY_ALIAS= python3=${PYTHON_CMD}
OPTIONS_DEFINE= EXAMPLES
PORTEXAMPLES= *
do-install:
# binary
${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin
# libs and binary
${MKDIR} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}
${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}
cd ${WRKSRC} && \
${COPYTREE_SHARE} core ${STAGEDIR}${PREFIX}/lib/${PORTNAME} && \
${COPYTREE_SHARE} base ${STAGEDIR}${PREFIX}/lib/${PORTNAME} && \
${COPYTREE_SHARE} vendor ${STAGEDIR}${PREFIX}/lib/${PORTNAME}
# binary symlink
${RLN} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
# examples
cd ${WRKSRC}/examples && \
${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}
do-test:
@${ECHO} "===> Compiling vendor libraries"
@cd ${WRKSRC}/vendor/stb/src && ${SETENV} ${MAKE_ENV} sh build_stb.sh
@cd ${WRKSRC}/vendor/cgltf/src && ${SETENV} ${MAKE_ENV} sh build_cgltf.sh
@cd ${WRKSRC}/vendor/miniaudio/src && ${SETENV} ${MAKE_ENV} sh build_miniaudio.sh
@${ECHO} "===> Running tests"
@cd ${WRKSRC} && \
${SETENV} ${TEST_ENV} ./odin test tests/core/normal.odin -file -all-packages -define:ODIN_TEST_FANCY=false && \
${SETENV} ${TEST_ENV} ./odin test tests/core/speed.odin -o:speed -file -all-packages -define:ODIN_TEST_FANCY=false && \
${SETENV} ${TEST_ENV} ./odin test tests/vendor -all-packages -define:ODIN_TEST_FANCY=false && \
${SETENV} ${TEST_ENV} ./odin test tests/internal -all-packages -define:ODIN_TEST_FANCY=false
# tests as of 2026-09:
# Finished 603 tests in 2.410357009s. All tests were successful.
# Finished 128 tests in 1.693737531s. All tests were successful.
# Finished 131 tests in 786.296559ms. All tests were successful.
.include <bsd.port.mk>