0,0 → 1,47 |
FASM=fasm |
FLAGS=-m 65536 |
languages=en|ru|ge|et|sp |
drivers_src=com_mouse emu10k1x fm801 infinity sis sound vt823x |
|
.PHONY: all kernel drivers bootloader clean |
|
all: kernel drivers bootloader |
|
kernel: check_lang |
@echo "*** building kernel with language '$(lang)' ..." |
@mkdir -p bin |
@echo "lang fix $(lang)" > lang.inc |
@echo "--- building 'bin/kernel.mnt' ..." |
@$(FASM) $(FLAGS) kernel.asm bin/kernel.mnt |
@rm -f lang.inc |
|
drivers: |
@echo "*** building drivers ..." |
@mkdir -p bin/drivers |
@cd drivers; for f in $(drivers_src); do \ |
echo "--- building 'bin/drivers/$${f}.obj' ..."; \ |
$(FASM) $(FLAGS) "$${f}.asm" "../bin/drivers/$${f}.obj" || exit $?; \ |
done |
|
bootloader: check_lang |
@echo "*** building bootloader with language '$(lang)' ..." |
@mkdir -p bin |
@echo "lang fix $(lang)" > lang.inc |
@echo "--- building 'bin/boot_fat12.bin' ..." |
@$(FASM) $(FLAGS) bootloader/boot_fat12.asm bin/boot_fat12.bin |
@rm -f lang.inc |
|
|
check_lang: |
@case "$(lang)" in \ |
$(languages)) \ |
;; \ |
*) \ |
echo "*** error: language is incorrect or not specified"; \ |
exit 1; \ |
;; \ |
esac |
|
clean: |
rm -rf bin |
rm -f lang.inc |