comparison gnu/grub/grub.sh @ 1114:6de02aa035d2

gnu: move GNU packages to this category
author David Demelier <markand@malikania.fr>
date Thu, 19 Sep 2019 15:09:24 +0200
parents core/grub/grub.sh@7791d3dbfecf
children 297b5eef115e
comparison
equal deleted inserted replaced
1113:5c0dfe68c5a8 1114:6de02aa035d2
1 #!/bin/busybox sh
2 #
3 # Copyright (c) 2020 David Demelier <markand@malikania.fr>
4 #
5 # Permission to use, copy, modify, and/or distribute this software for any
6 # purpose with or without fee is hereby granted, provided that the above
7 # copyright notice and this permission notice appear in all copies.
8 #
9 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 #
17
18 PKGNAME=grub
19 PKGVERSION=2.02
20 PKGREVISION=1
21 PKGLICENSE="GPLv30+"
22 PKGSUMMARY="GNU boot loader"
23 PKGDOWNLOAD="ftp://ftp.gnu.org/gnu/$PKGNAME/$PKGNAME-$PKGVERSION.tar.xz"
24 PKGDEPENDS="lvm2 binutils:build bison flex linux-headers"
25 PKGOPTIONS="LZMA NLS"
26
27 : ${CHOST:=$(uname -m)-linux-musl}
28 : ${CBUILD:=$(uname -m)-linux-musl}
29 : ${CTARGET:=$(uname -m)-linux-musl}
30 : ${CC:=clang}
31 : ${CFLAGS:=-O2}
32 : ${CXX:=clang++}
33 : ${CXXFLAGS:=-O2}
34 : ${LDFLAGS:=}
35 : ${LIBS:=}
36 : ${LZMA:=no}
37 : ${NLS:=yes}
38
39 if [ "$LZMA" = "yes" ]; then
40 PKGDEPENDS="xz $PKGDEPENDS"
41 with_lzma="--enable-liblzma"
42 else
43 with_lzma="--disable-liblzma"
44 fi
45
46 if [ "$NLS" = "yes" ]; then
47 PKGDEPENDS="gettext $PKGDEPENDS"
48 with_nls="--enable-nls"
49 else
50 with_nls="--disable-nls"
51 fi
52
53 case $(uname -m) in
54 "x86_64")
55 platforms="efi pc"
56 ;;
57 esac
58
59 build_grub()
60 {
61 mkdir build && cd build
62 BUILD_CC="$CC" \
63 BUILD_CFLAGS="$CFLAGS" \
64 BUILD_CXX="$CXX" \
65 BUILD_CXXFLAGS="$CXXFLAGS" \
66 CC="$CC" \
67 CFLAGS="$CFLAGS" \
68 CXX="$CXX" \
69 CXXFLAGS="$CXXFLAGS" \
70 LDFLAGS="$LDFLAGS" \
71 LIBS="$LIBS" \
72 TARGET_CC="$CC" \
73 TARGET_CFLAGS="$CFLAGS" \
74 TARGET_CXX="$CXX" \
75 TARGET_CXXFLAGS="$CXXFLAGS" \
76 ../configure \
77 --build=$CBUILD \
78 --host=$CHOST \
79 --target=$CTARGET \
80 --prefix= \
81 --sbindir=/bin \
82 --disable-werror \
83 $with_lzma \
84 $with_nls \
85 "$@"
86 make
87 make install DESTDIR=$DESTDIR
88
89 cd ..
90 rm -rf build
91 }
92
93 build()
94 {
95 rm -rf $PKGNAME-$PKGVERSION
96 tar xvf $PKGNAME-$PKGVERSION.tar.xz
97 cd $PKGNAME-$PKGVERSION
98
99 if [ "$CC" = "clang" ]; then
100 patch -p0 < ../patch-clang.patch
101 fi
102
103 for p in $platforms; do
104 case $p in
105 efi)
106 build_grub --with-platform=$p --disable-efiemu
107 ;;
108 *)
109 build_grub --with-platform=$p
110 ;;
111 esac
112 done
113
114 cd ..
115 rm -rf $PKGNAME-$PKGVERSION
116 }