# 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="~amd64 ~x86 ~arm64 ~arm ~ppc" 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 ..." sed -i '/#include /a #include ' "${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 }