#!/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" )