www-client/chromium: use a bash array for bundled libs
[gentoo.git] / sys-freebsd / boot0 / boot0-10.3.ebuild
1 # Copyright 1999-2016 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Id$
4
5 EAPI=5
6
7 inherit bsdmk freebsd flag-o-matic toolchain-funcs
8
9 DESCRIPTION="FreeBSD's bootloader"
10 SLOT="0"
11
12 IUSE="bzip2 ieee1394 tftp zfs"
13
14 if [[ ${PV} != *9999* ]]; then
15         KEYWORDS="~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
16 fi
17
18 EXTRACTONLY="
19         sys/
20         lib/
21         contrib/bzip2/
22 "
23
24 RDEPEND=""
25 DEPEND="=sys-freebsd/freebsd-mk-defs-${RV}*
26         =sys-freebsd/freebsd-lib-${RV}*"
27
28 S="${WORKDIR}/sys/boot"
29
30 PATCHES=( "${FILESDIR}/${PN}-10.1-gcc46.patch"
31         "${FILESDIR}/${PN}-10.3-clang.patch"
32         "${FILESDIR}/${PN}-10.3-drop-unsupport-cflags.patch"
33         "${FILESDIR}/${PN}-10.3-uefi-support.patch"
34         "${FILESDIR}/${PN}-add-nossp-cflags.patch" )
35
36 boot0_use_enable() {
37         use ${1} && mymakeopts="${mymakeopts} LOADER_${2}_SUPPORT=\"yes\""
38         use ${1} || mymakeopts="${mymakeopts} WITHOUT_${2}= "
39 }
40
41 pkg_setup() {
42         boot0_use_enable ieee1394 FIREWIRE
43         boot0_use_enable zfs ZFS
44         boot0_use_enable tftp TFTP
45         boot0_use_enable bzip2 BZIP2
46 }
47
48 src_prepare() {
49         sed -e '/-mno-align-long-strings/d' \
50                 -i "${S}"/i386/boot2/Makefile \
51                 -i "${S}"/i386/gptboot/Makefile \
52                 -i "${S}"/i386/gptzfsboot/Makefile \
53                 -i "${S}"/i386/zfsboot/Makefile || die
54
55         export MAKEOBJDIRPREFIX="${WORKDIR}/build"
56 }
57
58 src_compile() {
59         strip-flags
60         append-flags "-fno-strict-aliasing"
61
62         cd "${WORKDIR}/lib/libstand" || die
63         freebsd_src_compile
64
65         CFLAGS="${CFLAGS} -I${WORKDIR}/lib/libstand"
66         LDFLAGS="${LDFLAGS} -L${WORKDIR}/lib/libstand"
67         export LIBSTAND="${MAKEOBJDIRPREFIX}/${WORKDIR}/lib/libstand/libstand.a"
68
69         cd "${S}" || die
70         NOFLAGSTRIP="yes" freebsd_src_compile
71 }
72
73 src_install() {
74         dodir /boot/defaults
75         mkinstall FILESDIR=/boot || die "mkinstall failed"
76
77         cd "${WORKDIR}/sys/$(tc-arch-kernel)/conf" || die
78         insinto /boot
79         newins GENERIC.hints device.hints
80
81         echo 'CONFIG_PROTECT="/boot/device.hints"' > "${T}"/50boot0
82         doenvd "${T}"/50boot0
83 }