Nanite/build.i686

107 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
echo --------
echo STARTING
echo --------
read -p "Do you want to clean old build files? (y/n) " yn
case $yn in
y )
echo ---------------------------;
echo Removing Old Build Files...;
echo ---------------------------;
make -j24 clean;
echo -----;
echo Done!;
echo -----;
;;
n )
echo ---------;
echo Proceding;
echo ---------;
;;
esac
echo ------------
echo COMPILING OS
echo ------------
make TARGET=i686-elf TARGET_DEFINE=__I686 TARGET_ASM=nasm -j24 -s
echo ---------
echo Finished!
echo ---------
read -p "Do you want to make to make a bootable image? [Requires sudo] (y/n) " yn
case $yn in
y)
echo ----------------
echo Installing GRUB!
echo ----------------
sudo losetup -d /dev/loop900
dd if=/dev/zero of=build/main.img bs=512 count=2880
mkdir -p build/mnt
sudo losetup -P /dev/loop900 build/main.img
sudo mkfs.fat -F12 /dev/loop900
sudo mount /dev/loop900 build/mnt
sudo mkdir build/mnt/boot
sudo mkdir build/mnt/boot/grub
sudo mkdir build/mnt/misc
sudo mkdir build/mnt/misc/src
sudo cp -r src/* build/mnt/misc/src
sudo cp -r grub/* build/mnt/boot/grub
sudo cp build/nanite.bin build/mnt/boot/nanite
sudo grub-install \
--install-modules="part_msdos normal echo multiboot2 ls" \
--locales=en@quot \
--fonts=none \
--themes=none \
--boot-directory=build/mnt/boot \
--target=i386-pc \
--bootloader-id=GRUB \
--allow-floppy \
--force \
/dev/loop900 -v
sudo umount build/mnt
sudo losetup -d /dev/loop900
;;
n ) echo exiting...;
exit;;
* ) echo invalid response;
exit 1;;
esac
echo ---------
echo Finished!
echo ---------
read -p "Do you want to Start QEMU? (y/n) " yn
case $yn in
y )
echo -------------
echo STARTING QEMU
echo -------------
qemu-system-i386 \
-chardev pty,id=serial1 \
-serial mon:stdio \
-serial chardev:serial1 \
-audiodev pa,id=speaker \
-machine pcspk-audiodev=speaker \
-fda build/main.img \
-m size=4M \
-vga std \
-cpu 486-v1 \
-name Nanite
echo --------
echo Finshed!
echo --------
;;
n ) echo exiting...;
exit;;
* ) echo invalid response;
exit 1;;
esac