
modified: compiler/create_crosscompiler.sh deleted: notes modified: src/.gdb_history deleted: src/amd64_vol2.pdf modified: src/bootloader/bios_functions/bios_disk.asm modified: src/bootloader/bios_functions/print.asm modified: src/bootloader/bootloader.asm modified: src/bootloader/cpu_check.asm modified: src/bootloader/enter_kernel.asm deleted: src/bootloader/enter_kernel_backup modified: src/bootloader/gdt.asm deleted: src/bootloader/multicore.asm deleted: src/bootloader/notes new file: src/debug/gdbinit.gdb deleted: src/indigo_os modified: src/kernel/include/libc.h modified: src/kernel/include/paging.h modified: src/kernel/include/video.h modified: src/kernel/kernel.c modified: src/kernel/libs/acpi.c modified: src/kernel/libs/drivers/serial.c modified: src/kernel/libs/drivers/video.c modified: src/kernel/libs/libc.c modified: src/kernel/libs/page.c modified: src/link.ld modified: src/makefile new file: tools/README.md modified: tools/page/page.py
52 lines
1.9 KiB
Makefile
52 lines
1.9 KiB
Makefile
LD=../compiler/indigo_gcc/bin/x86_64-elf-ld
|
|
CC=../compiler/indigo_gcc/bin/x86_64-elf-gcc
|
|
OBJCPY=../compiler/indigo_gcc/bin/x86_64-elf-objcopy
|
|
INC=-Ikernel/include
|
|
|
|
EMU_CORES=4
|
|
EMU_RAM=4G
|
|
XRES=1024
|
|
YRES=768
|
|
|
|
|
|
make:
|
|
nasm -g -felf64 bootloader/bootloader.asm -o objects/bootloader.o
|
|
$(CC) $(INC) -g -ffreestanding -c kernel/kernel.c -o objects/kernel.o
|
|
$(CC) $(INC) -g -ffreestanding -c kernel/libs/acpi.c -o objects/acpi.o
|
|
$(CC) $(INC) -g -ffreestanding -c kernel/libs/drivers/serial.c -o objects/serial.o
|
|
$(CC) $(INC) -g -ffreestanding -c kernel/libs/drivers/video.c -o objects/video.o
|
|
$(CC) $(INC) -g -ffreestanding -c kernel/libs/printf.c -o objects/printf.o
|
|
$(CC) $(INC) -g -ffreestanding -c kernel/libs/page.c -o objects/page.o
|
|
$(CC) $(INC) -g -ffreestanding -c kernel/libs/libc.c -o objects/libc.o
|
|
$(LD) -o indigo_os.elf --oformat=elf64-x86-64 -T link.ld
|
|
$(OBJCPY) --only-keep-debug indigo_os.elf debug/debug_syms.o
|
|
$(OBJCPY) -O binary --strip-all indigo_os.elf indigo_os
|
|
ifneq ("$(wildcard $(./debug/serial.in))","")
|
|
mkfifo debug/serial.in
|
|
endif
|
|
ifneq ("$(wildcard $(./debug/serial.out))","")
|
|
mkfifo debug/serial.out
|
|
endif
|
|
rm -f indigo_os.elf
|
|
|
|
|
|
run:
|
|
qemu-system-x86_64 -smp $(EMU_CORES) -m $(EMU_RAM) -nographic -no-reboot -drive format=raw,file=./indigo_os
|
|
|
|
|
|
gdb: indigo_os
|
|
tmux new-session -s os_gdb "qemu-system-x86_64 -smp $(EMU_CORES) -nographic -no-reboot -S -s -drive format=raw,file=./indigo_os -m $(EMU_RAM)"\;\
|
|
split-window -h "gdb -x debug/gdbinit.gdb; killall qemu-system-x86_64"
|
|
|
|
run-graphical:
|
|
qemu-system-x86_64 -S -s -smp $(EMU_CORES) -m $(EMU_RAM) -no-reboot -serial pipe:debug/serial -device VGA,edid=on,xres=$(XRES),yres=$(YRES) -drive format=raw,file=./indigo_os &\
|
|
gdb -x debug/gdbinit.gdb; killall qemu-system-x86_64
|
|
|
|
clean:
|
|
rm -f objects/*
|
|
rm -f indigo_os
|
|
rm -f bin/*
|
|
rm -f debug/debug_syms.o
|
|
rm -f debug/serial.in
|
|
rm -f debug/serial.out
|