31 lines
945 B
Makefile
31 lines
945 B
Makefile
COMPONENTS = kernel
|
|
|
|
KERNEL_HDD = kornos.img
|
|
|
|
.PHONY: clean all $(COMPONENTS)
|
|
.DEFAULT_GOAL = $(KERNEL_HDD)
|
|
|
|
$(COMPONENTS):
|
|
$(MAKE) -C $@
|
|
|
|
disk: $(KERNEL_HDD)
|
|
run: $(KERNEL_HDD)
|
|
qemu-system-x86_64 -m 2G -hda $(KERNEL_HDD)
|
|
|
|
ext/limine/limine-install:
|
|
$(MAKE) -C ext/limine/ limine-install
|
|
|
|
$(KERNEL_HDD): ext/limine/limine-install $(COMPONENTS)
|
|
rm -f $(KERNEL_HDD)
|
|
dd if=/dev/zero bs=1M count=0 seek=64 of=$(KERNEL_HDD) status=none
|
|
parted -s $(KERNEL_HDD) mklabel msdos
|
|
parted -s $(KERNEL_HDD) mkpart primary 1 100%
|
|
echfs-utils -m -p0 $(KERNEL_HDD) quick-format 32768 > /dev/null # silence UUID
|
|
@for f in $(COMPONENTS); do echo "Installing $$f ($$(du -h $$f/$$f | cut -f1))"; echfs-utils -m -p0 $@ import $$f/$$f $$f; done
|
|
echfs-utils -m -p0 $(KERNEL_HDD) import ext/limine.cfg limine.cfg
|
|
ext/limine/limine-install ext/limine/limine.bin $(KERNEL_HDD)
|
|
|
|
clean:
|
|
rm -f $(KERNEL_HDD)
|
|
for f in $(COMPONENTS); do $(MAKE) -C $$f clean; done
|