summaryrefslogtreecommitdiff
path: root/rushmore-linux/rl-build.sh
blob: 8021079ec13c2451ab12bc53998130569b8be91e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/env bash
set -euo pipefail

DIR="$(cd "$(dirname "$0")" && pwd)"
OUT="$DIR/out"

echo "Compiling userspace programs..."
CFLAGS="-static -O2 -s --sysroot $OUT/sysroot -nostdinc -isystem $OUT/sysroot/usr/include"

echo "rlinit"
musl-gcc $CFLAGS rlinit/rlinit.c -o "$OUT/rlinit"

echo "rltest"
musl-gcc $CFLAGS rltest/rltest.c -o "$OUT/rltest"

echo "Creating rootfs..."
ROOTFS="$DIR/out/rootfs"
mkdir -p "$ROOTFS/dev"
mkdir -p "$ROOTFS/proc"
mkdir -p "$ROOTFS/sys"
cp "$OUT/rlinit" "$ROOTFS/init"
cp "$OUT/rltest" "$ROOTFS/rltest"

echo "Creating initranfs..."
(
    cd "$ROOTFS"
    find . -print0 \
        | cpio --null -ov --format=newc \
        | gzip -9 > "$DIR/out/initramfs.cpio.gz"
)