annotate core/grub/grub.sh @ 549:bad483aace64

vanilla: use prefix= instead
author David Demelier <markand@malikania.fr>
date Sun, 23 Jun 2019 15:13:10 +0200
parents 014d018468fb
children 0194a200012b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
167
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 #!/bin/sh
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 #
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 # Copyright (c) 2020 David Demelier <markand@malikania.fr>
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 #
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 # Permission to use, copy, modify, and/or distribute this software for any
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 # purpose with or without fee is hereby granted, provided that the above
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 # copyright notice and this permission notice appear in all copies.
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 #
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 #
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
17
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
18 PKGNAME=grub
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 PKGVERSION=2.02
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 PKGREVISION=1
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 PKGLICENSE="GPLv3+"
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 PKGSUMMARY="GNU boot loader"
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 PKGDOWNLOAD="ftp://ftp.gnu.org/gnu/$PKGNAME/$PKGNAME-$PKGVERSION.tar.xz"
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 PKGDEPENDS="core/lvm2 dev/bison dev/flex lib/linux-headers"
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 PKGOPTIONS="LZMA NLS"
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
26
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 : ${CHOST:=$(uname -m)-linux-musl}
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 : ${CBUILD:=$(uname -m)-linux-musl}
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 : ${CTARGET:=$(uname -m)-linux-musl}
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 : ${CC:=gcc}
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 : ${CFLAGS:=-O2}
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 : ${CXX:=g++}
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 : ${CXXFLAGS:=-O2}
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 : ${LDFLAGS:=}
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 : ${LIBS:=}
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 : ${LZMA:=no}
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 : ${NLS:=yes}
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
38
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 if [ "$LZMA" = "yes" ]; then
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 PKGDEPENDS="core/xz $PKGDEPENDS"
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 with_lzma="--enable-liblzma"
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 else
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 with_lzma="--disable-liblzma"
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 fi
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
45
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 if [ "$NLS" = "yes" ]; then
431
515778c3a417 vanilla: core/gettext is only required for build
David Demelier <markand@malikania.fr>
parents: 173
diff changeset
47 PKGDEPENDS="core/gettext:build $PKGDEPENDS"
167
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 with_nls="--enable-nls"
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 else
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 with_nls="--disable-nls"
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 fi
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
52
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 case $(uname -m) in
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 "x86_64")
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 platforms="efi pc"
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 ;;
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 esac
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
58
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 build_grub()
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 {
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 mkdir build && pushd build
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
62
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 CC="$CC" \
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 CFLAGS="$CFLAGS" \
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 CXX="$CXX" \
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 CXXFLAGS="$CXXFLAGS" \
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 LDFLAGS="$LDFLAGS" \
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 LIBS="$LIBS" \
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 ../configure \
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 --build=$CBUILD \
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 --host=$CHOST \
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 --target=$CTARGET \
549
bad483aace64 vanilla: use prefix= instead
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
73 --prefix= \
bad483aace64 vanilla: use prefix= instead
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
74 --sbindir=/bin \
167
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 --disable-libzfs \
173
79b65e5164dd core/grub: fix build on musl
David Demelier <markand@malikania.fr>
parents: 167
diff changeset
76 --disable-efiemu \
79b65e5164dd core/grub: fix build on musl
David Demelier <markand@malikania.fr>
parents: 167
diff changeset
77 --disable-werror \
167
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 --with-platform="$1" \
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 $with_lzma \
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 $with_nls
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 make
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 make install DESTDIR=$DESTDIR
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
83
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 popd
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 rm -rf build
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 }
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
87
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 build()
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 {
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 rm -rf $PKGNAME-$PKGVERSION
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 tar xvaf $PKGNAME-$PKGVERSION.tar.xz
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 pushd $PKGNAME-$PKGVERSION
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
93
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 for p in $platforms; do
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 build_grub $p
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 done
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
97
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 popd
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 rm -rf $PKGNAME-$PKGVERSION
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 }