ports/lang/zig/Makefile

74 lines
1.8 KiB
Makefile

# should be fine for ${LLVM_ARCHS}, but it needs insane amount of datasize
ONLY_FOR_ARCHS = amd64 arm64 powerpc64
BROKEN-arm64 = generated binary segfault
BROKEN-powerpc64 = ld: error: undefined symbol: __subkf3 (and others)
COMMENT = zig compiler and toolchain
DISTNAME = zig-0.11.0
REVISION = 0
GH_ACCOUNT = ziglang
GH_PROJECT = zig
GH_TAGNAME = 0.11.0
# see https://github.com/ziglang/zig/tree/0.11.x
ZIG_VERSION = ${GH_TAGNAME}
ZIG_COMMIT = 67709b638224ac03820226c6744d8b6ead59184c
CATEGORIES = lang
HOMEPAGE = https://ziglang.org/
MAINTAINER = Sebastien Marie <semarie@online.fr>
# MIT
PERMIT_PACKAGE = Yes
WANTLIB = ${COMPILER_LIBCXX} c m
# C++17
COMPILER = ports-clang
MODULES += devel/cmake
MODULES += lang/clang
MODCLANG_LANGS = c c++
MODCLANG_VERSION = 16
SEPARATE_BUILD = Yes
CONFIGURE_ARGS += \
-DZIG_VERSION="${ZIG_VERSION}+${ZIG_COMMIT:C/(.........).*/\1/}" \
-DZIG_STATIC_LLVM=ON \
-DZIG_TARGET_TRIPLE=native \
-DZIG_TARGET_MCPU=baseline \
-DLLVM_CONFIG_EXE="${LOCALBASE}/bin/llvm-config-${MODCLANG_VERSION}"
# disable some llvm protections in the compiler to regain performance
XFLAGS-aarch64 = -fno-ret-protector
XFLAGS-amd64 = -fno-ret-protector -mno-retpoline
XFLAGS-i386 = -fno-ret-protector -mno-retpoline
XFLAGS-mips64 = -fno-ret-protector -fomit-frame-pointer
XFLAGS-mips64el = -fno-ret-protector -fomit-frame-pointer
XFLAGS-powerpc = -fno-ret-protector
CFLAGS += ${XFLAGS-${MACHINE_ARCH}}
CXXFLAGS += ${XFLAGS-${MACHINE_ARCH}}
MAKE_ENV += ZIG_GLOBAL_CACHE_DIR=${WRKBUILD}/zig-global-cache \
ZIG_LOCAL_CACHE_DIR=${WRKBUILD}/zig-local-cache
do-install:
cp -R ${WRKBUILD}/stage3/* ${PREFIX}
find ${PREFIX}/lib/zig -name '*${PATCHORIG}' -delete
do-test:
cd ${WRKSRC} && exec ${SETENV} ${MAKE_ENV} ${TEST_ENV} \
${WRKBUILD}/stage3/bin/zig build test \
-j${MAKE_JOBS} \
--verbose \
--verbose-link
.include <bsd.port.mk>