@@ -13,10 +13,12 @@ EDK2_BUILD = $(EDK2_DIR)/bin/boot/DEBUG_GCC5/X64/LiteCoreBootManager.efi
1313SRC_DIR = src
1414SRC_BOOT = boot
1515SRC_KERNEL = $(SRC_DIR ) /kernel
16+ FONTS = $(SRC_KERNEL ) /fonts/ter-u12b.bdf
1617INCLUDE = $(SRC_DIR ) /include
1718OUT_DIR = bin
1819K_OUT_DIR = $(OUT_DIR ) /kernel
1920B_OUT_DIR = $(OUT_DIR ) /boot
21+ F_OUT_DIR = $(K_OUT_DIR ) /fonts
2022IMG_OUT_DIR = $(OUT_DIR )
2123
2224CFLAGS = -O2 -Wimplicit-function-declaration -Wunused-but-set-variable -ffreestanding -m64 -c -Wall -Wextra -I$(INCLUDE ) -mcmodel=large -mno-red-zone -fno-pic
@@ -26,7 +28,7 @@ NFLAGS = -f bin
2628QEMU_FLAGS = -serial stdio -display none -monitor none -device qemu-xhci,id=xhci \
2729 -device usb-kbd,bus=xhci.0 \
2830 -bios /usr/share/ovmf/OVMF.fd -d int -D qemu.log --no-reboot
29- QEMU_VGA = -display curses - device qemu-xhci,id=xhci -device usb-kbd,bus=xhci.0 -bios /usr/share/ovmf/OVMF.fd
31+ QEMU_VGA = -device qemu-xhci,id=xhci -device usb-kbd,bus=xhci.0
3032CONSOLE = -display curses
3133
3234SOURCES = $(shell find $(SRC_KERNEL ) -name "* .c")
@@ -44,7 +46,7 @@ ESP_DIR = esp
4446.PHONY : all run run-console run-vga clean bootloader kernel ext2
4547.DEFAULT_GOAL := all
4648
47- all : bootloader kernel $(ESP_IMG ) $(EXT2_IMG )
49+ all : bootloader kernel $(F_OUT_DIR ) /ter-u12b.bdf $( ESP_IMG ) $(EXT2_IMG )
4850
4951$(K_OUT_DIR ) :
5052 @mkdir -p $(K_OUT_DIR )
@@ -75,6 +77,10 @@ $(K_OUT_DIR)/%.o: $(SRC_KERNEL)/%.asm
7577 @mkdir -p $(dir $@ )
7678 @$(NASM ) -f elf64 $< -o $@
7779
80+ $(F_OUT_DIR ) /ter-u12b.bdf : $(FONTS )
81+ @mkdir -p $(F_OUT_DIR )
82+ @cp $< $@
83+
7884$(ESP_IMG ) : $(BOOTX64 ) $(KERNEL )
7985 @rm -f $(ESP_IMG )
8086 @echo " Creating UEFI ESP image..."
@@ -93,8 +99,11 @@ $(ESP_IMG): $(BOOTX64) $(KERNEL)
9399$(EXT2_IMG ) : $(KERNEL )
94100 @rm -f $(EXT2_IMG )
95101 @echo " Creating ext2 filesystem image..."
96- @mkdir -p bin/fs_tmp
97- @find bin -type f -not -name " *.o" -not -name " fs.img" -not -path " */fs_tmp/*" -exec bash -c ' dest="bin/fs_tmp/$${1#bin/}"; mkdir -p "$$(dirname "$$dest")"; cp "$$1" "$$dest"' _ {} \;
102+ @find bin -type f \
103+ -not -name " *.o" \
104+ -not -name " fs.img" \
105+ -not -path " bin/fs_tmp/*" \
106+ -exec bash -c ' dest="bin/fs_tmp/$${1#bin/}"; mkdir -p "$$(dirname "$$dest")"; cp "$$1" "$$dest"' _ {} \;
98107 @python3 tools/mk_ext2_image.py $(EXT2_IMG ) 256000 bin/fs_tmp
99108 @rm -rf bin/fs_tmp/fs_content
100109 @echo " ext2 image created: $( EXT2_IMG) "
@@ -106,7 +115,7 @@ run-console: $(ESP_IMG) $(EXT2_IMG)
106115 $(QEMU ) -bios /usr/share/ovmf/OVMF.fd $(CONSOLE ) $(QEMU_USB ) -drive file=$(ESP_IMG ) ,format=raw -drive file=$(EXT2_IMG ) ,format=raw,if=ide
107116
108117run-vga : $(ESP_IMG ) $(EXT2_IMG )
109- $(QEMU ) -bios /usr/share/ovmf/OVMF.fd $(QEMU_VGA ) -drive file=$(ESP_IMG ) ,format=raw -drive file=$(EXT2_IMG ) ,format=raw,if=ide
118+ $(QEMU ) -bios /usr/share/ovmf/OVMF.fd $(QEMU_VGA ) -drive file=$(ESP_IMG ) ,format=raw -drive file=$(EXT2_IMG ) ,format=raw,if=ide -d int -D qemu.log --no-reboot
110119
111120clean :
112121 rm -rf $(OUT_DIR ) $(ESP_DIR )
0 commit comments