diff options
Diffstat (limited to 'kernel')
-rwxr-xr-x | kernel/build.sh | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/kernel/build.sh b/kernel/build.sh index 530c253..919951b 100755 --- a/kernel/build.sh +++ b/kernel/build.sh @@ -30,7 +30,10 @@ build_kernel_elf() { cleanup_temp } -build_kernel_iso_from_elf() { +build_kernel_iso() { + if test ! -e $TARGET_PATH/kernel.bin; then + build_kernel_elf + fi create_target mkdir $TMP_PATH/isofiles &> /dev/null mkdir $TMP_PATH/isofiles/boot &> /dev/null @@ -38,17 +41,24 @@ build_kernel_iso_from_elf() { cp $TARGET_PATH/kernel.bin $TMP_PATH/isofiles/boot &> /dev/null cp $GRUB_CFG_PATH $TMP_PATH/isofiles/boot/grub/grub.cfg &> /dev/null grub-mkrescue -d /usr/lib/grub/i386-pc -o $TARGET_PATH/uff.iso $TMP_PATH/isofiles -} - -build_kernel_iso() { - build_kernel_elf - build_kernel_iso_from_elf + cleanup_temp } build_init() { create_target } +build_launch() { + qemu-system-x86_64 -cdrom $TARGET_PATH/uff.iso +} + +build_run() { + if test ! -e $TARGET_PATH/uff.iso; then + build_kernel_iso + fi + build_launch +} + build_clean() { remove_target } @@ -62,9 +72,10 @@ not_exec=true for arg in "$@"; do case "$arg" in "kernel-elf") build_kernel_elf;; - "kernel-iso-from-elf") build_kernel_iso_from_elf;; "kernel-iso") build_kernel_iso;; "init") build_init;; + "launch") build_launch;; + "run") build_run;; "clean") build_clean;; "all") build_all;; *) @@ -80,10 +91,11 @@ print_help() { echo "options: " echo " init initialise directory" echo " clean cleanup binaries" + echo " launch launch iso in qemu" + echo " run creates iso if necessary and runs it in qemu" echo echo " kernel-elf build the kernel-elf" - echo " kernel-iso-from-elf build the kernel-iso from an existing kernel-elf" - echo " kernel-iso build the kernel-elf and the kernel-iso" + echo " kernel-iso build the kernel-elf if necessary and the kernel-iso" echo " all build kernel" } |