summaryrefslogtreecommitdiff
path: root/rushmore-linux/rl-build.sh
diff options
context:
space:
mode:
Diffstat (limited to 'rushmore-linux/rl-build.sh')
-rwxr-xr-xrushmore-linux/rl-build.sh30
1 files changed, 30 insertions, 0 deletions
diff --git a/rushmore-linux/rl-build.sh b/rushmore-linux/rl-build.sh
new file mode 100755
index 0000000..9a00425
--- /dev/null
+++ b/rushmore-linux/rl-build.sh
@@ -0,0 +1,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"
+) \ No newline at end of file