blob: 9ec4d5c4fb073013518854d5d72f52bf990906be [file] [log] [blame]
Lorenz Brunf95909d2019-09-11 19:48:26 +02001#!/usr/bin/env bash
2set -eo pipefail
3
4if [ ! -d "$root/linux" ] ; then
5 echo "Please first call scripts/fetch_third_party.sh"
6fi
7
8root=$(git rev-parse --show-toplevel)/third_party
9
10# nasm + Python 3.7 + iasl
11if [ ! -d "$root/edk2" ] ; then
12 git clone --recurse-submodules https://github.com/tianocore/edk2 $root/edk2
13fi
14cd $root/edk2
15git checkout --recurse-submodules edk2-stable201908
16. edksetup.sh
17make -C $root/edk2/BaseTools/Source/C
18build -DTPM2_ENABLE -DSECURE_BOOT_ENABLE -t GCC5 -a X64 -b RELEASE -p $PWD/OvmfPkg/OvmfPkgX64.dsc
19
20musl_prefix=$root/musl-prefix
21
22cd $root/linux
23make headers_install ARCH=x86_64 INSTALL_HDR_PATH=$musl_prefix
24
25mkdir -p $root/musl
26curl -L https://www.musl-libc.org/releases/musl-1.1.23.tar.gz | tar -xzf - -C $root/musl --strip-components 1
27cd $root/musl
28
29./configure --prefix=$musl_prefix --syslibdir=$musl_prefix/lib
30make -j8
31make install
32
33mkdir -p $root/util-linux
34curl -L https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/snapshot/util-linux-2.34.tar.gz | tar -xzf - -C $root/util-linux --strip-components 1
35cd $root/util-linux
36./autogen.sh
37./configure CC=$musl_prefix/bin/musl-gcc --without-systemd --without-udev --without-btrfs --disable-pylibmount --without-tinfo --prefix=$musl_prefix --disable-makeinstall-chown --disable-makeinstall-setuid --with-bashcompletiondir=$musl_prefix/usr/share/bash-completion
38make -j8
39make install
40
41mkdir -p $root/xfsprogs-dev
42curl -L https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/snapshot/xfsprogs-dev-5.2.1.tar.gz | tar -xzf - -C $root/xfsprogs-dev --strip-components 1
43cd $root/xfsprogs-dev
44patch -p1 < ../../patches/xfsprogs-dev/*.patch
45./configure CC=$musl_prefix/bin/musl-gcc "CFLAGS=-static -I$musl_prefix/include -L$musl_prefix/lib" "LDFLAGS=-L$musl_prefix/lib"
46make -j8 mkfs
47cp $root/xfsprogs-dev/mkfs/mkfs.xfs