msxbuild/lib/make/mb_sdcc.mk
Willem Cazander f786d2b9d7
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -8s
Fixed SDCC function argument order.
2024-06-30 00:12:21 +02:00

56 lines
1.5 KiB
Makefile

MB_SDCC_FLAG_CPU ?= -mz80
MB_SDCC_FLAG_LD ?= --nostdinc
MB_SDCC_ASZ80_FLAGS ?= -g -l -c -o
MB_SDCC_CC_FLAGS ?=
MB_SDCC_AR_FLAGS ?= -rc
MB_SDCC_CC_CMD ?= $(PATH_SDCC)/sdcc
MB_SDCC_ASZ80_CMD ?= $(PATH_SDCC)/sdasz80
MB_SDCC_AR_CMD ?= $(PATH_SDCC)/sdar
MB_SDCC_OBJCOPY_CMD ?= $(PATH_SDCC)/sdobjcopy
# TODO: Add C + mixed support;
#$(MB_SDASM) -I$(MB_LIBASM_SRC)/include
#-l$(LIBASM_LINK)
define mb_sdcc_compile_asm
@echo === SDCC Compile module asm for $(2)
$(MB_SDCC_ASZ80_CMD) $(MB_SDCC_ASZ80_FLAGS) $(2) $(1)
endef
define mb_sdcc_link_asm_lib
@echo === SDCC Link module asm lib for $(2)
$(MB_SDCC_AR_CMD) $(MB_SDCC_AR_FLAGS) $(1) $(2)
endef
define mb_sdcc_link_asm
@echo === SDCC Link asm module at $(3) for $(2)
$(MB_SDCC_CC_CMD) $(MB_SDCC_FLAG_CPU) $(MB_SDCC_CC_FLAGS) --no-std-crt0 --code-loc $(3) -o $(2) $(1)
endef
define mb_sdcc_link_asm_0000
$(call mb_sdcc_link_asm,$(1),$(2),0x0000)
endef
define mb_sdcc_link_asm_0100
$(call mb_sdcc_link_asm,$(1),$(2),0x0100)
endef
define mb_sdcc_link_asm_1000
$(call mb_sdcc_link_asm,$(1),$(2),0x1000)
endef
define mb_sdcc_link_asm_4000
$(call mb_sdcc_link_asm,$(1),$(2),0x4000)
endef
define mb_sdcc_link_asm_8000
$(call mb_sdcc_link_asm,$(1),$(2),0x8000)
endef
define mb_sdcc_link_asm_C000
$(call mb_sdcc_link_asm,$(1),$(2),0xC000)
endef
define mb_sdcc_link_asm_dos
$(call mb_sdcc_link_asm_0100,$(1),$(2))
endef
define mb_sdcc_hex2bin
@echo === SDCC hex2bin for $(2)
$(MB_SDCC_OBJCOPY_CMD) -I ihex --output-target=binary $(1) $(2)
endef