# Copyright 2021-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit toolchain-funcs if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="git://c9x.me/qbe.git" inherit git-r3 else SRC_URI="https://c9x.me/compile/release/${P}.tar.xz" # 64-bit RISC-V only KEYWORDS="~amd64 ~arm64 ~riscv" fi DESCRIPTION="Pure-C embeddable compiler backend" HOMEPAGE="https://c9x.me/compile/" LICENSE="MIT" SLOT="0" DOCS=( README doc ) src_prepare() { default sed -i 's;^CC *=.*;CC ?= cc;' Makefile || die # Needs to exec test binaries and /tmp can be mounted noexec sed -i "s;^tmp=/tmp/;tmp=${T}/;" tools/test.sh || die } src_configure() { # qbe's Makefile uses uname(1), leading to wrong default # target when cross-compiling if use elibc_Darwin; then case ${CTARGET:-$CHOST} in *aarch64*) echo '#define Deftgt T_arm64_apple' ;; *x86_64*) echo '#define Deftgt T_amd64_apple' ;; *) die "Unsupported target ${CTARGET:-$CHOST}" ;; esac else case ${CTARGET:-$CHOST} in *aarch64*) echo '#define Deftgt T_arm64' ;; *riscv64*) echo '#define Deftgt T_rv64' ;; *x86_64*) echo '#define Deftgt T_amd64_sysv' ;; *) die "Unsupported target ${CTARGET:-$CHOST}" ;; esac fi > config.h || die } src_compile() { tc-export CC emake CFLAGS="-std=c99 ${CPPFLAGS} ${CFLAGS}" } src_install() { einstalldocs emake install DESTDIR="${ED}" PREFIX=/usr }