Anonymous user
Pascal Bare Bones: Difference between revisions
no edit summary
[unchecked revision] | [unchecked revision] |
No edit summary |
No edit summary |
||
Line 489:
<source lang="bash">qemu-system-i386 pascal-kernel.iso</source>
=== Alternative compiling: Makefile ===
Accumulating the lines from previous part we can make a '''Makefile''':
<source lang="bash">
# Freepascal BareboneOS
# Makefile
# 2019
# by: furaidi <iluatitok@gmail.com>
# License: Public domain
NASMPARAMS = -f elf32 -o stub.o
LDPARAMS = -A elf-i386 --gc-sections -s -Tlinker.script -o kernel.obj
TMPISO = iso
TMPBOOT = $(TMPISO)/boot
TMPGRUB = $(TMPBOOT)/grub
TMPCFG = $(TMPGRUB)/grub.cfg
objects = stub.o kernel.o multiboot.o console.o system.o
_FPC:
# Compile kernel
fpc $(FPCPARAMS) kernel.pas
_NASM:
# Compile stub
nasm $(NASMPARAMS) stub.asm
_LD:
# Link them together
i686-elf-ld $(LDPARAMS) $(objects)
all: _FPC _NASM _LD
install:
mkdir $(TMPISO)
mkdir $(TMPBOOT)
mkdir $(TMPGRUB)
cp kernel.obj $(TMPBOOT)/kernel.obj
echo 'set timeout=0' > $(TMPCFG)
echo 'set default =0' >> $(TMPCFG)
echo '' >> $(TMPCFG)
echo 'menuentry "Pascal Bare" {' >> $(TMPCFG)
echo ' multiboot /boot/kernel.obj' >> $(TMPCFG)
echo ' boot' >> $(TMPCFG)
echo '}' >> $(TMPCFG)
grub-mkrescue --output=pascal-kernel.iso $(TMPISO)
rm -rf $(TMPISO)
clean:
rm -rf $(TMPISO)
rm -f *.o
rm -f *.ppu
</source>
[[Category:Bare bones tutorials]]
|