1,16 → 1,48 |
FASM=fasm |
KSRC=kernel.asm |
KOUT=kernel.mnt |
FLAGS=-m 65536 |
languages=en|ru|ge|et |
drivers_src=sound sis infinity ati2d vmode |
skins_src=default |
|
en: kernel.asm |
rm -f lang.inc |
echo lang fix en > lang.inc |
$(FASM) $(KSRC) $(KOUT) |
ru: kernel.asm |
rm -f lang.inc |
echo lang fix ru > lang.inc |
$(FASM) $(KSRC) $(KOUT) |
.PHONY: all kernel drivers skins clean |
|
all: kernel drivers skins |
|
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; \ |
done |
@mv bin/drivers/vmode.obj bin/drivers/vmode.mdr |
|
skins: |
@echo "*** building skins ..." |
@mkdir -p bin/skins |
@cd skin; for f in $(skins_src); do \ |
echo "--- building 'bin/skins/$${f}.skn' ..."; \ |
$(FASM) $(FLAGS) $${f}.asm ../bin/skins/$${f}.skn; \ |
done |
|
check_lang: |
@case "$(lang)" in \ |
$(languages)) \ |
;; \ |
*) \ |
echo "*** error: language is incorrect or not specified"; \ |
exit 1; \ |
;; \ |
esac |
|
clean: |
rm -f $(KOUT) |
rm -rf bin |
rm -f lang.inc |