rosos/Makefile
2024-01-09 14:49:13 -06:00

35 lines
863 B
Makefile

CFLAGS= -fno-stack-protector -fno-builtin -ffreestanding -m32 -Wall -Wextra -Wfatal-errors -nostdlib -Wno-builtin-declaration-mismatch -g3
ASFLAGS= --32
LDFLAGS= -melf_i386 -nostdlib -e loader -T link.ld -z noexecstack
OBJS=loader.o kernel.o stdio.o
QEMUFLAGS= -enable-kvm -m 256m -vga none -device virtio-vga,xres=800,yres=600
all: kernel
run: kernel
qemu-system-i386 $(QEMUFLAGS) -kernel $^
run-debug: kernel
qemu-system-i386 -s -S $(QEMUFLAGS) -kernel $^ &
@# start qemu on tcp::1234, wait for gdb
run-gdb: run-debug
@#echo now type 'target remote localhost:1234'
@echo now type 'continue'
gdb ./kernel -ex 'target remote localhost:1234' -ex 'b kernelmain'
kernel: $(OBJS)
$(LD) $(LDFLAGS) $^ -o $@
install: $(OBJS)
cp ./kernel /boot/mykernel
%.o: %.c
$(CC) $(CFLAGS) -c $^
%.o: %.s
$(AS) $(ASFLAGS) -c $^ -o $@
clean:
$(RM) $(OBJS) kernel