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]]
Anonymous user