oo2c-2.1.11norayr-overlay
download
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="Oberon-2 to C translator and runtime system"
HOMEPAGE="https://ooc.sourceforge.net/"
SRC_URI="
amd64? ( https://downloads.sourceforge.net/project/ooc/ooc2/2.1.11/oo2c_64-2.1.11.tar.bz2 -> oo2c-2.1.11-amd64.tar.bz2 )
x86? ( https://downloads.sourceforge.net/project/ooc/ooc2/2.1.11/oo2c_32-2.1.11.tar.bz2 -> oo2c-2.1.11-x86.tar.bz2 )
arm64? ( https://downloads.sourceforge.net/project/ooc/ooc2/2.1.11/oo2c_64-2.1.11.tar.bz2 -> oo2c-2.1.11-arm64.tar.bz2 )
arm? ( https://downloads.sourceforge.net/project/ooc/ooc2/2.1.11/oo2c_32-2.1.11.tar.bz2 -> oo2c-2.1.11-arm.tar.bz2 )
ppc? ( https://downloads.sourceforge.net/project/ooc/ooc2/2.1.11/oo2c_32-2.1.11.tar.bz2 -> oo2c-2.1.11-ppc.tar.bz2 )
"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
IUSE="gc doc"
RDEPEND="
sys-libs/ncurses
gc? ( dev-libs/boehm-gc )
"
DEPEND="${RDEPEND}"
src_unpack() {
default
case ${ARCH} in
amd64|arm64)
S="${WORKDIR}/oo2c_64-2.1.11"
;;
x86|arm)
S="${WORKDIR}/oo2c_32-2.1.11"
;;
*)
die "Unknown architecture ${ARCH}"
;;
esac
}
src_prepare() {
default
# Clean out leftovers if any
rm -rf sym obj bin || die
#sed -i '/^CFLAGS[[:space:]]*=/ s/$/ -std=gnu99/' stage0/Makefile.ext || die "failed to patch Makefile.ext"
}
src_configure() {
local myconf=()
econf \
$(use_enable gc) \
$(usev !gc && echo "--disable-gc")
econf "${myconf[@]}"
}
src_compile() {
einfo "Generating Makefile.ext..."
perl "${S}/rsrc/OOC/makefilegen.pl" > "${S}/stage0/Makefile.ext" || die "failed to generate Makefile.ext"
einfo "Patching oo2c_.c to include <oo2c.oh>..."
sed -i '/#include <RT0.oh>/a #include <oo2c.oh>' "${S}/stage0/obj/oo2c_.c" || die "failed to patch include"
einfo "Fixing Makefile.ext path to oo2c_.c..."
sed -i 's|\bobj/oo2c_.c\b|stage0/obj/oo2c_.c|g' "${S}/stage0/Makefile.ext" || die "failed to fix path to oo2c_.c"
sed -i 's|\bobj/oo2c_.o\b|stage0/obj/oo2c_.o|g' "${S}/stage0/Makefile.ext" || die "failed to fix path to oo2c_.o"
einfo "Injecting -std=gnu99 into Makefile.ext..."
sed -i '/^CFLAGS[[:space:]]*=/ s|$| -std=gnu99|' "${S}/stage0/Makefile.ext" || die "CFLAGS patch failed"
einfo "Building stage0/oo2c..."
emake -j1 -f stage0/Makefile.ext oo2c || die "stage0 build failed"
emake -j1 || die "full build failed"
}
src_install() {
emake DESTDIR="${D}" install || die "install failed"
# Optional doc files
dodoc AUTHORS ChangeLog NEWS README* || die
}