summaryrefslogtreecommitdiff
path: root/rushmore-linux/rl-build.sh
blob: 9a00425a2acfe702fe4d4acddf07ecc35670f3da (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 "rlws"
musl-gcc $CFLAGS rlws/rlws.c -o "$OUT/rlws"

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/rlws" "$ROOTFS/rlws"

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