summaryrefslogtreecommitdiff
path: root/meta
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2023-10-30 22:44:02 +0100
committerAnton Kling <anton@kling.gg>2023-10-31 00:18:38 +0100
commit34342b53c39aa3f22326b6e4eda960cc20cfa0f0 (patch)
tree01bc4fcbc78623e406bcfa45dd9bd04ebd915663 /meta
parent8a9208612eec8ddae4c418485d848ecfa0613699 (diff)
Meta: Create simple build scripts for kernel, userland and general enviroment
Diffstat (limited to 'meta')
-rwxr-xr-xmeta/build.sh4
-rw-r--r--meta/debug.sh3
-rwxr-xr-xmeta/kernel.sh4
-rwxr-xr-xmeta/new.sh8
-rwxr-xr-xmeta/run.sh5
-rwxr-xr-xmeta/sync.sh10
-rwxr-xr-xmeta/userland.sh39
7 files changed, 73 insertions, 0 deletions
diff --git a/meta/build.sh b/meta/build.sh
new file mode 100755
index 0000000..39d778a
--- /dev/null
+++ b/meta/build.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+scriptdir="$(dirname "$0")"
+cd "$scriptdir"
+./kernel.sh && ./userland.sh && ./sync.sh
diff --git a/meta/debug.sh b/meta/debug.sh
new file mode 100644
index 0000000..7fcb185
--- /dev/null
+++ b/meta/debug.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+qemu-system-i386 -no-reboot -no-shutdown -serial file:./logs/serial.log -hda ext2.img -m 1G -cdrom ./kernel/myos.iso -s -S &
+gdb -x .gdbinit
diff --git a/meta/kernel.sh b/meta/kernel.sh
new file mode 100755
index 0000000..4cd02b8
--- /dev/null
+++ b/meta/kernel.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+scriptdir="$(dirname "$0")"
+cd "$scriptdir"
+make -C ../kernel
diff --git a/meta/new.sh b/meta/new.sh
new file mode 100755
index 0000000..deb0774
--- /dev/null
+++ b/meta/new.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+# If the filesystem becomes corrupted this shell script is used to
+# completly reset it
+scriptdir="$(dirname "$0")"
+cd "$scriptdir"
+rm ext2.img
+mkfs.ext2 ext2.img 20M
+./sync.sh
diff --git a/meta/run.sh b/meta/run.sh
new file mode 100755
index 0000000..d72efdb
--- /dev/null
+++ b/meta/run.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+scriptdir="$(dirname "$0")"
+cd "$scriptdir"
+cd ..
+qemu-system-i386 -enable-kvm -netdev user,id=n0,hostfwd=udp:127.0.0.1:6001-:6000 -device rtl8139,netdev=n0 -object filter-dump,id=id,netdev=n0,file=./logs/netout -d int -no-reboot -no-shutdown -chardev stdio,id=char0,logfile=./logs/serial.log,signal=off -serial chardev:char0 -hda ./meta/ext2.img -m 1G -cdrom ./kernel/myos.iso -s
diff --git a/meta/sync.sh b/meta/sync.sh
new file mode 100755
index 0000000..036ad18
--- /dev/null
+++ b/meta/sync.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+scriptdir="$(dirname "$0")"
+cd "$scriptdir"
+
+# Sync the sysroot with the bootable image
+mkdir ./mount
+sudo mount ext2.img mount
+sudo cp -r ../sysroot/* ./mount/
+sudo umount mount
+rmdir ./mount
diff --git a/meta/userland.sh b/meta/userland.sh
new file mode 100755
index 0000000..1686023
--- /dev/null
+++ b/meta/userland.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+scriptdir="$(dirname "$0")"
+cd "$scriptdir"
+cd ..
+make -C ./userland/libgui
+make -C ./userland/libc
+make -C ./userland/sh
+make -C ./userland/terminal
+make -C ./userland/snake
+make -C ./userland/ante
+make -C ./userland/windowserver
+make -C ./userland/test
+make -C ./userland/minibox
+make -C ./userland/libppm
+
+mkdir sysroot
+sudo cp ./userland/libppm/ppm ./sysroot/ppm
+sudo cp ./userland/sh/sh ./sysroot/sh
+sudo cp ./userland/terminal/term ./sysroot/term
+sudo cp ./userland/snake/snake ./sysroot/snake
+sudo cp ./userland/ante/ante ./sysroot/ante
+sudo cp ./userland/windowserver/ws ./sysroot/ws
+sudo cp ./userland/test/test ./sysroot/test
+sudo cp ./userland/minibox/minibox ./sysroot/minibox
+
+cd ./sysroot
+rm ./init
+rm ./cat
+rm ./yes
+rm ./echo
+rm ./wc
+rm ./ls
+ln -s ./minibox ./init
+ln -s ./minibox ./cat
+ln -s ./minibox ./yes
+ln -s ./minibox ./echo
+ln -s ./minibox ./wc
+ln -s ./minibox ./ls
+cd ..