summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-freebsd/boot0/boot0-9.2.ebuild')
-rw-r--r--sys-freebsd/boot0/boot0-9.2.ebuild72
1 files changed, 72 insertions, 0 deletions
diff --git a/sys-freebsd/boot0/boot0-9.2.ebuild b/sys-freebsd/boot0/boot0-9.2.ebuild
new file mode 100644
index 000000000000..e075c5ccc6ea
--- /dev/null
+++ b/sys-freebsd/boot0/boot0-9.2.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-freebsd/boot0/boot0-9.2.ebuild,v 1.1 2013/11/09 09:15:50 aballier Exp $
+
+EAPI=2
+
+inherit bsdmk freebsd flag-o-matic toolchain-funcs
+
+DESCRIPTION="FreeBSD's bootloader"
+SLOT="0"
+
+IUSE="bzip2 ieee1394 tftp zfs"
+
+if [[ ${PV} != *9999* ]]; then
+ KEYWORDS="~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
+ SRC_URI="mirror://gentoo/${SYS}.tar.bz2
+ mirror://gentoo/${LIB}.tar.bz2
+ mirror://gentoo/${CONTRIB}.tar.bz2"
+fi
+
+RDEPEND=""
+DEPEND="=sys-freebsd/freebsd-mk-defs-${RV}*
+ =sys-freebsd/freebsd-lib-${RV}*"
+
+S="${WORKDIR}/sys/boot"
+
+PATCHES=( "${FILESDIR}/${PN}-9.2-gcc46.patch" )
+
+boot0_use_enable() {
+ use ${1} && mymakeopts="${mymakeopts} LOADER_${2}_SUPPORT=\"yes\""
+}
+
+pkg_setup() {
+ boot0_use_enable ieee1394 FIREWIRE
+ boot0_use_enable zfs ZFS
+ boot0_use_enable tftp TFTP
+ boot0_use_enable bzip2 BZIP2
+}
+
+src_prepare() {
+ sed -e '/-fomit-frame-pointer/d' -e '/-mno-align-long-strings/d' \
+ -i "${S}"/i386/boot2/Makefile \
+ -i "${S}"/i386/gptboot/Makefile \
+ -i "${S}"/i386/gptzfsboot/Makefile \
+ -i "${S}"/i386/zfsboot/Makefile || die
+}
+
+src_compile() {
+ strip-flags
+ append-flags "-fno-strict-aliasing"
+
+ cd "${WORKDIR}/lib/libstand" || die
+ freebsd_src_compile
+
+ cd "${S}"
+ CFLAGS="${CFLAGS} -I${WORKDIR}/lib/libstand"
+ LDFLAGS="${LDFLAGS} -L${WORKDIR}/lib/libstand"
+ export LIBSTAND="${WORKDIR}/lib/libstand/libstand.a"
+ NOFLAGSTRIP="yes" freebsd_src_compile
+}
+
+src_install() {
+ dodir /boot/defaults
+ mkinstall FILESDIR=/boot || die "mkinstall failed"
+
+ cd "${WORKDIR}/sys/$(tc-arch-kernel)/conf" || die
+ insinto /boot
+ newins GENERIC.hints device.hints
+
+ echo 'CONFIG_PROTECT="/boot/device.hints"' > "${T}"/50boot0
+ doenvd "${T}"/50boot0
+}