diff options
author | Anton Kling <anton@kling.gg> | 2023-10-30 22:44:02 +0100 |
---|---|---|
committer | Anton Kling <anton@kling.gg> | 2023-10-31 00:18:38 +0100 |
commit | 34342b53c39aa3f22326b6e4eda960cc20cfa0f0 (patch) | |
tree | 01bc4fcbc78623e406bcfa45dd9bd04ebd915663 /meta | |
parent | 8a9208612eec8ddae4c418485d848ecfa0613699 (diff) |
Meta: Create simple build scripts for kernel, userland and general enviroment
Diffstat (limited to 'meta')
-rwxr-xr-x | meta/build.sh | 4 | ||||
-rw-r--r-- | meta/debug.sh | 3 | ||||
-rwxr-xr-x | meta/kernel.sh | 4 | ||||
-rwxr-xr-x | meta/new.sh | 8 | ||||
-rwxr-xr-x | meta/run.sh | 5 | ||||
-rwxr-xr-x | meta/sync.sh | 10 | ||||
-rwxr-xr-x | meta/userland.sh | 39 |
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 .. |