# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 DESCRIPTION="A free/open source, multi-platform BASIC compiler." HOMEPAGE="https://www.freebasic.net" SRC_URI=" https://github.com/freebasic/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz https://github.com/freebasic/${PN}/releases/download/${PV}/FreeBASIC-${PV}-source-bootstrap.tar.xz " LICENSE="FDL-1.2 GPL-2+ LGPL-2.1+" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="gpm libffi opengl X" DEPEND=" sys-libs/ncurses:= gpm? ( sys-libs/gpm ) libffi? ( dev-libs/libffi ) opengl? ( virtual/opengl ) X? ( x11-libs/libX11 x11-libs/libXext x11-libs/libXpm x11-libs/libXrandr x11-libs/libXrender ) " RDEPEND="${DEPEND}" PATCHES=( "${FILESDIR}"/${PN}-1.07.0-Pass-ltinfo-to-linker.patch ) DOCS="${S}/doc/fbc.1" BOOTSTRAP_S="${WORKDIR}/FreeBASIC-${PV}-source-bootstrap" src_unpack() { # We only need bootstrap source code if fbc is not already present if ! has_version dev-lang/fbc; then unpack FreeBASIC-${PV}-source-bootstrap.tar.xz fi unpack ${P}.tar.gz } src_prepare() { # We only need bootstrap source code if fbc is not already present if ! has_version dev-lang/fbc; then cd "${BOOTSTRAP_S}" || die "cd failed" eapply "${PATCHES[@]}" cd "${S}" || die "cd failed" fi eapply_user } src_compile() { local fbc="fbc" local fbcflags="" # We only need bootstrap compiler if fbc is not already present if ! has_version dev-lang/fbc; then cd "${BOOTSTRAP_S}" || die "cd failed" # Build bootstrap compiler emake bootstrap-minimal # Set bootstrap compiler to build fbc fbc="${BOOTSTRAP_S}/bin/fbc" fbcflags="-i ${BOOTSTRAP_S}/inc" cd "${S}" || die "cd failed" fi local xcflags=( $(usex gpm "" "-DDISABLE_GPM") $(usex libffi "" " -DDISABLE_FFI") $(usex opengl "" " -DDISABLE_OPENGL") $(usex X "" " -DDISABLE_X11") ) # fbc requires a space after the -Wl option local fblflags=${LDFLAGS//-Wl,/-Wl } # Build fbc emake CFLAGS="${CFLAGS} ${xcflags[*]}" FBC="${fbc}" FBCFLAGS="${fbcflags}" FBLFLAGS="${fblflags}" TARGET=${CHOST} } src_install() { emake DESTDIR="${D}" prefix="/usr" TARGET=${CHOST} install einstalldocs }