summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-firmware/seabios/seabios-1.7.5-r1.ebuild')
-rw-r--r--sys-firmware/seabios/seabios-1.7.5-r1.ebuild146
1 files changed, 146 insertions, 0 deletions
diff --git a/sys-firmware/seabios/seabios-1.7.5-r1.ebuild b/sys-firmware/seabios/seabios-1.7.5-r1.ebuild
new file mode 100644
index 000000000000..e4186d0cc664
--- /dev/null
+++ b/sys-firmware/seabios/seabios-1.7.5-r1.ebuild
@@ -0,0 +1,146 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-firmware/seabios/seabios-1.7.5-r1.ebuild,v 1.1 2015/02/15 08:02:48 vapier Exp $
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_6,2_7} )
+
+inherit eutils toolchain-funcs python-any-r1
+
+#BACKPORTS=1
+
+# SeaBIOS maintainers sometimes don't release stable tarballs or stable
+# binaries to generate the stable tarball the following is necessary:
+# git clone git://git.seabios.org/seabios.git && cd seabios
+# git archive --output seabios-${PV}.tar.gz --prefix seabios-${PV}/ rel-${PV}
+
+if [[ ${PV} = *9999* || ! -z "${EGIT_COMMIT}" ]]; then
+ EGIT_REPO_URI="git://git.seabios.org/seabios.git"
+ inherit git-2
+else
+ KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-fbsd ~x86-fbsd"
+ SRC_URI="!binary? ( http://code.coreboot.org/p/seabios/downloads/get/${P}.tar.gz )
+ binary? (
+ http://code.coreboot.org/p/seabios/downloads/get/bios.bin-${PV}.gz
+ seavgabios? (
+ mirror://debian/pool/main/s/${PN}/${PN}_${PV}-1_all.deb
+ )
+ )
+ ${BACKPORTS:+http://dev.gentoo.org/~cardoe/distfiles/${P}-${BACKPORTS}.tar.xz}"
+fi
+
+DESCRIPTION="Open Source implementation of a 16-bit x86 BIOS"
+HOMEPAGE="http://www.seabios.org"
+
+LICENSE="LGPL-3 GPL-3"
+SLOT="0"
+IUSE="+binary +seavgabios"
+
+REQUIRED_USE="ppc? ( binary )
+ ppc64? ( binary )"
+
+DEPEND="
+ !binary? (
+ >=sys-power/iasl-20060912
+ ${PYTHON_DEPS}
+ )"
+RDEPEND=""
+
+pkg_pretend() {
+ if ! use binary; then
+ ewarn "You have decided to compile your own SeaBIOS. This is not"
+ ewarn "supported by upstream unless you use their recommended"
+ ewarn "toolchain (which you are not)."
+ elog
+ ewarn "If you are intending to use this build with QEMU, realize"
+ ewarn "you will not receive any support if you have compiled your"
+ ewarn "own SeaBIOS. Virtual machines subtly fail based on changes"
+ ewarn "in SeaBIOS."
+ fi
+
+ local myld=$(tc-getLD)
+
+ ${myld} -v | grep -q "GNU gold" && \
+ ewarn "gold linker unable to handle 16-bit code using ld.bfd. bug #438058"
+}
+
+pkg_setup() {
+ use binary || python-any-r1_pkg_setup
+}
+
+src_unpack() {
+ default
+ if use binary && use seavgabios ; then
+ unpack ./data.tar.xz
+ mv usr/share/seabios/vgabios*.bin ./ || die
+ fi
+
+ # This simplifies the logic between binary & source builds.
+ mkdir -p "${S}"
+}
+
+src_prepare() {
+ use binary && return
+
+ if [[ -z "${EGIT_COMMIT}" ]]; then
+ sed -e "s/VERSION=.*/VERSION=${PV}/" \
+ -i Makefile || die
+ else
+ sed -e "s/VERSION=.*/VERSION=${PV}_pre${EGIT_COMMIT}/" \
+ -i Makefile || die
+ fi
+
+ epatch_user
+}
+
+src_configure() {
+ :
+}
+
+_emake() {
+ LANG=C \
+ emake V=1 \
+ CC=$(tc-getCC) \
+ LD="$(tc-getLD).bfd" \
+ AR=$(tc-getAR) \
+ OBJCOPY=$(tc-getOBJCOPY) \
+ RANLIB=$(tc-getRANLIB) \
+ OBJDUMP=$(tc-getPROG OBJDUMP objdump) \
+ HOST_CC=$(tc-getBUILD_CC) \
+ "$@"
+}
+
+src_compile() {
+ use binary && return
+
+ _emake out/bios.bin
+ mv out/bios.bin ../bios.bin
+
+ if use seavgabios ; then
+ local config t targets=(
+ cirrus
+ isavga
+ qxl
+ stdvga
+ vmware
+ )
+ for t in "${targets[@]}" ; do
+ emake clean distclean
+ cp "${FILESDIR}/seavgabios/config.vga-${t}" .config || die
+ _emake oldnoconfig
+ _emake out/vgabios.bin
+ cp out/vgabios.bin ../vgabios-${t}.bin || die
+ done
+ fi
+}
+
+src_install() {
+ insinto /usr/share/seabios
+ newins ../bios.bin* bios.bin
+
+ if use seavgabios ; then
+ insinto /usr/share/seavgabios
+ doins ../vgabios*.bin
+ fi
+}