99 lines
2.2 KiB
Makefile
99 lines
2.2 KiB
Makefile
#
|
|
# Single top level makefile
|
|
#
|
|
|
|
rwildcard = $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d))
|
|
MODULES := $(call rwildcard, src, */0module.mk)
|
|
MODULES_LIB := $(call rwildcard, src, */0module.lib.mk)
|
|
|
|
-include build/local.inc.mk
|
|
include build/env.inc.mk
|
|
include $(MODULES_LIB)
|
|
include $(MODULES)
|
|
|
|
|
|
.PHONY: all
|
|
all:
|
|
@echo TODO: All is build.
|
|
|
|
.PHONY: test
|
|
test:
|
|
@echo TODO: Testing
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
@echo === Cleaning
|
|
$(RM) .openmsx.cnt;
|
|
@test $(PATH_BIN) && $(RM) -r $(PATH_BIN);
|
|
|
|
|
|
define mod_mkdir
|
|
@echo === Create module build folder.
|
|
$(MKDIR) $(1)
|
|
endef
|
|
|
|
define mod_compile_asm
|
|
@echo === Compile module asm.
|
|
$(SDASM) $(SDASM_FLAGS) -I$(LIBASM_SRC)/include $(1) $(2)
|
|
endef
|
|
|
|
define mod_link_asm_lib
|
|
@echo === Link module asm lib.
|
|
$(SDAR) $(SDAR_FLAGS) $(1) $(2)
|
|
endef
|
|
|
|
define mod_link_asm_dos
|
|
@echo === Link module asm dos.
|
|
$(SDCC) $(SDCC_FLAG_CPU) --no-std-crt0 --code-loc 0x0100 -o $(1) $(2)
|
|
endef
|
|
define mod_link_asm_4000
|
|
@echo === Link module asm 0x4000.
|
|
$(SDCC) $(SDCC_FLAG_CPU) --no-std-crt0 --code-loc 0x4000 -o $(1) $(2)
|
|
endef
|
|
define mod_link_asm_8000
|
|
@echo === Link module asm 0x8000.
|
|
$(SDCC) $(SDCC_FLAG_CPU) --no-std-crt0 --code-loc 0x8000 -o $(1) $(2)
|
|
endef
|
|
#-l$(LIBASM_LINK)
|
|
|
|
define mod_hex2com
|
|
@echo === Convert to binary
|
|
cd $(dir $(1)) && $(H2B) -e com $(notdir $(1));
|
|
@sha1sum $(2);
|
|
@echo === Done $(notdir $(2))
|
|
endef
|
|
define mod_hex2dat
|
|
@echo === Convert to binary
|
|
cd $(dir $(1)) && $(H2B) -e dat $(notdir $(1));
|
|
@sha1sum $(2);
|
|
@echo === Done $(notdir $(2))
|
|
endef
|
|
|
|
#-diska $(1)
|
|
define run_openmsx
|
|
echo "." >> .openmsx.cnt;
|
|
FAIL_AFTER_BOOT=$(OPENMSX_BOOT_TIMEOUT) \
|
|
FAIL_AFTER_PATH=bin \
|
|
BOOT_HDD_PATH="$(1)" \
|
|
BOOT_HDD_IMAGE="$(1)/../dsk.img" \
|
|
RENDERER=None \
|
|
THROTTLE=off \
|
|
SPEED=333 \
|
|
JOYPORTA=mouse \
|
|
$(OPENMSX) -setting $(realpath build/openmsx-settings.xml) -machine $(OPENMSX_MACHINE) $(OPENMSX_ARGS)
|
|
endef
|
|
define run_openmsx_tools
|
|
cp build/tools/* $(1);
|
|
$(call run_openmsx, $(1))
|
|
endef
|
|
define run_openmsx_dos1
|
|
@echo === Run openmsx_dos1
|
|
cp build/msxdos1/* $(1);
|
|
$(call run_openmsx_tools, $(1))
|
|
endef
|
|
define run_openmsx_dos2
|
|
@echo === Run openmsx_dos2
|
|
cp build/msxdos2/* $(1);
|
|
$(call run_openmsx_tools, $(1))
|
|
endef
|