kernel/Makefile

32 lines
839 B
Makefile

all: kernel-i386.elf
clean:
-@rm *.o *.elf 2> /dev/null || true
start32.o: start32.asm
fasm start32.asm
kernel.o: kernel.c
tcc -m32 -c kernel.c
vga.o: vga.c
tcc -m32 -c vga.c
serial.o: serial.c
tcc -m32 -c serial.c
xtoa.o: xtoa.c
tcc -m32 -c xtoa.c
kernel-i386.elf: kernel.o start32.o vga.o serial.o xtoa.o
tcc -m32 -nostdlib -Wl,-Ttext,0x100000 start32.o kernel.o vga.o serial.o xtoa.o -o kernel-i386.elf
qemu-multiboot: kernel-i386.elf
qemu-system-i386 -kernel kernel-i386.elf -serial stdio
qemu-image: kernel-i386.elf mount
cp kernel-i386.elf mnt/
sync
qemu-system-i386 koalemos.img -serial stdio
mount: koalemos.img mnt/
@if ! mountpoint -q "mnt/"; then \
sudo mount -o loop,offset=1048576,umask=177,dmask=022,uid=$(shell id -u),gid=$(shell id -g) koalemos.img mnt/; \
fi;
umount:
@sudo umount mnt
mnt/:
@mkdir mnt