From ba6f8a3498b57a2d334e961ac5a161328469358d Mon Sep 17 00:00:00 2001 From: vanten-s Date: Mon, 15 Jul 2024 20:14:00 +0200 Subject: [PATCH] Build updates --- Makefile | 66 +++++++++++++++++++++++--------------- isodir/boot/grub/grub.cfg | 3 ++ isodir/boot/myos.bin | Bin 0 -> 10400 bytes 3 files changed, 44 insertions(+), 25 deletions(-) create mode 100644 isodir/boot/grub/grub.cfg create mode 100755 isodir/boot/myos.bin diff --git a/Makefile b/Makefile index 0783759..53bc287 100644 --- a/Makefile +++ b/Makefile @@ -1,50 +1,66 @@ -ARCHDIR=../arch/i686 +ARCHDIR=arch/i686 +CFLAGS?= -CFLAGS=-O2 \ +INCLUDEDIR=include + +CFLAGS:=-O2 \ -std=gnu99 \ -ffreestanding \ -Wall -Wextra \ --I $(INCLUDEDIR) +-I$(INCLUDEDIR) \ +$(CFLAGS) -KERNEL_OBJS=kernel.o -LIB_OBJS=bootstrap.o \ -tty.o\ -strlib.o\ -interrupt.o +KERNEL_OBJS=kernel/kernel.o +LIB_OBJS=\ +$(ARCHDIR)/bootstrap.o \ +$(ARCHDIR)/tty.o\ +$(ARCHDIR)/strlib.o\ +$(ARCHDIR)/interrupt.o\ + OBJS=$(KERNEL_OBJS) $(LIB_OBJS) + LDFLAGS=$(OBJS) \ -ffreestanding \ -O2 \ -nostdlib \ -lgcc - -INCLUDEDIR=../include - +.SUFFIXES: .c .o .s all: + $(MAKE) run-grub-qemu + +clean: + rm -f $(OBJS) + rm myos.bin + rm myos.iso + +debug: mkdir build || true cp Makefile build - $(MAKE) -C build test-kernel-qemu + cp -r isodir build + CFLAGS=-g $(MAKE) -C build debug-grub-qemu -architecture: - i686-elf-as $(ARCHDIR)/bootstrap.s -o bootstrap.o +.c.o: + i686-elf-gcc -c $< -o $@ $(CFLAGS) - i686-elf-gcc -c $(ARCHDIR)/tty.c -o tty.o $(CFLAGS) - i686-elf-gcc -c $(ARCHDIR)/interrupt.c -o interrupt.o $(CFLAGS) - i686-elf-gcc -c $(ARCHDIR)/strlib.c -o strlib.o $(CFLAGS) +.s.o: + i686-elf-as $< -o $@ -kernel: - i686-elf-gcc -c ../kernel/kernel.c -o kernel.o $(CFLAGS) - - -myos-bin: architecture kernel +myos.bin: $(OBJS) i686-elf-gcc -T $(ARCHDIR)/linker.ld -o myos.bin $(LDFLAGS) - grub-file --is-x86-multiboot myos.bin -test-kernel-qemu: myos-bin - qemu-system-i386 -kernel myos.bin +run-grub-qemu: myos.bin + cp myos.bin isodir/boot/myos.bin + grub-mkrescue -o myos.iso isodir + qemu-system-i386 myos.iso + +debug-grub-qemu: myos.bin + cp myos.bin isodir/boot/myos.bin + grub-mkrescue -o myos.iso isodir + qemu-system-i386 -S -gdb tcp::9000 myos.iso + diff --git a/isodir/boot/grub/grub.cfg b/isodir/boot/grub/grub.cfg new file mode 100644 index 0000000..b2f8404 --- /dev/null +++ b/isodir/boot/grub/grub.cfg @@ -0,0 +1,3 @@ +menuentry "myos" { + multiboot /boot/myos.bin +} diff --git a/isodir/boot/myos.bin b/isodir/boot/myos.bin new file mode 100755 index 0000000000000000000000000000000000000000..f8fdc9afa35baae6490b7fc857052ca2445e4209 GIT binary patch literal 10400 zcmeHNeQaA-6+cd#)=5|FrUhkR+A9iMCMq{hThWe0YL@0}&DWMWVPuKpBu-=1iH&`o zG@ywTGt?*RX%-TK3DjnwfzULm5>-fHY8(s;5dvCm5*ia##aiN!s3cHeZCK6kT)$^~ z6G+=XNJ#HS=iK`{=iGD8IrrWt`6^#-Y-_SuEM&AIDket%C{pMk`ooW8H3vzdBC4WN zvPnHTSguH#FDGIuVG-mxZwmBGXv$HdZ9I_kcwjcO0%irw3YZlzD_~Z@tbkbovjS!X z%nFzlFe_kI;D1$tqVuobUyQ}JI-j~enix&Q(vI5iPgU6Gl9|fq$)S*T;bD&D^%DLi zZ<)`arL;*M)7s7X{m`c7os#d9yj}7R$sd>evy!(-eq8b=ByW+tLGsT@{&~q;C3j2y zjO0&C{*>g+k~c|yO!98Y>m|2IUM6|JJu}wZwyF>J$YU!We&1CGClCkxBy3#=_QS9fA z<(z{_iY50$1;eiNlQ}K?!WX-7z|8~Dt_rx}^z+{v(_E12lzuZS)O_#u4fLm8a|}Wj!dbp^YwbNg_r{<5 zC01!?j>2BO(QBWp+XLKlX%M!HE4FUe+p*s&sH=9GCAcqJ72?zOA3I{nqER(50NIhn z=$~UL%jv~gBy{>F^R+8_`dCGMt(xpa@1OF^=*m*b16Zg6)_qGQ6&P|G@bnuA>mIUZ ztozCA%nr(%zFxwCZeJ?l_z9})K51X!IE_u1q>IXS-aG``a`(vP=!TYTM*I*j zKdM@Lv<6FTt5ev&$7WpfY&`jZV~ZA5`i|YcH+mHot24aM1yWI-x0W7o57K=wT3gB0 z6Y=))fvSr4+q%=2kPA+VcCc8DUVlCrtyr7XEoB(-#_QObBPlUxpDWHLhK!!oH#vSt z&xq4mv046F`fj{VPp4OFvc&FoM(6Vp6-F9;Ih}ehlQH~9XEoogKHj`Up;ci%t9e$;mvFn1*a5d~<}niY$op%VsV$=DKT$xWZ|slOa!%{IHgo$v`{O^$osjqG z7ql+rKj~e|s2CRL>E+2j@j67(cvzBS01?`lg{%vLpYb>3ymLU_&i2kNe zy9^&MJ#cKja_kkp!wzh{)@V~3Z^7gi_IWvl{WhCf z0kZ;T1*0h|C%Y*X;RIYi~Kf06Zw2kvPXX1t7^f3h3+0&ulOp|7E5`(^Y=t3pdUzKZ@R z{P8Os>(|gUQYj&Gw^VE;`Wm%(wUDDUqRzz*oS&OE;g_&o9%&~YvBhK0WqS^aU~ zBrv}uvV9*g|Nqg)bUXyiKh3ScoKG0|JNQA!d$tRF8kp;C=vClZ#Q%^!|19tZ;y3bn z1^9eHJ{N%#z`Vh{eiE1;Jq&*|6by=p2zx`$Al0|EHg`~aV|!~yQztdG)i-xjdwp|j z12wcXHXQGEw^KxThfjKjfz~LgBR-K`GZ(yn!Y};Zfd7j=3SkZ58S|a;3{8tdIO0Fy7lcKTe%==xMaL(o!`<#_ zJ(d>_MMp<{;d~L0c5a1S$a?(QWMsHpJzqhj;ouaJGcr9cyhG?kINOgIBjGzG$Qcff zc!k&K+05m1k#i^#A?I*#eB3u7a8N#E<1>Zhl>Of~QuyN2!nT6Rz})tN*iL?j@a)c} zXC;7;n{M|ghHS^5IeyqY`$?kvFg6