MB_SDCC_PATH ?= $(call mb-make-call,mb-doc-variable,MB_SDCC_PATH,"Optional path where SDCC binaries are located.") MB_SDCC_FLAG_CPU ?= -mz80 $(call mb-make-call,mb-doc-variable-deep,MB_SDCC_FLAG_CPU,"The SDCC cpu target option.") MB_SDCC_FLAG_LD ?= --nostdinc $(call mb-make-call,mb-doc-variable-deep,MB_SDCC_FLAG_LD,"The SDCC linker option.") MB_SDCC_ASZ80_FLAGS ?= -g -l -c -o $(call mb-make-call,mb-doc-variable-deep,MB_SDCC_ASZ80_FLAGS,"The SDCC z80 asm compiler flags.") MB_SDCC_CC_FLAGS ?= $(call mb-make-call,mb-doc-variable-deep,MB_SDCC_CC_FLAGS,"The SDCC C compiler flags.") MB_SDCC_AR_FLAGS ?= -rc $(call mb-make-call,mb-doc-variable-deep,MB_SDCC_AR_FLAGS,"The SDCC module archive flags.") # TODO: Add C + mixed support; #$(MB_SDASM) -I$(MB_LIBASM_SRC)/include #-l$(LIBASM_LINK) define _mb-sdcc-path $(MB_ᕽᕽᕽ   )$(if $(MB_SDCC_PATH),$(MB_SDCC_PATH)/$(1),$(1)) endef define mb-sdcc-compile-asm $(MB_ᕽᕽᕽ   )$(call mb-make-call,mb-os-echo-command,$(MB_I18N_SDCC_COMPILE) $(2) - ASM) $(MB_ᕽᕽᕽ   )$(call mb-make-call,_mb-sdcc-path,sdasz80) $(MB_SDCC_ASZ80_FLAGS) $(2) $(1) endef $(call mb-make-call,mb-doc-function,mb-sdcc-compile-asm,"Compiles asm source code."," ") define mb-sdcc-arlib-asm $(MB_ᕽᕽᕽ   )$(call mb-make-call,mb-os-echo-command,$(MB_I18N_SDCC_ARLIB) $(2)) $(MB_ᕽᕽᕽ   )$(call mb-make-call,_mb-sdcc-path,sdar) $(MB_SDCC_AR_FLAGS) $(1) $(2) endef $(call mb-make-call,mb-doc-function,mb-sdcc-arlib-asm,"Link asm lib module."," ") define mb-sdcc-link-asm $(MB_ᕽᕽᕽ   )$(call mb-make-call,mb-os-echo-command,$(MB_I18N_SDCC_LINK) $(2) - ASM @ $(3)) $(MB_ᕽᕽᕽ   )$(call mb-make-call,_mb-sdcc-path,sdcc) $(MB_SDCC_FLAG_CPU) $(MB_SDCC_CC_FLAGS) --no-std-crt0 --code-loc $(3) -o $(2) $(1) endef $(call mb-make-call,mb-doc-function,mb-sdcc-link-asm,"Links asm to custom code location."," ") define mb-sdcc-link-asm-0000 $(MB_ᕽᕽᕽ   )$(call mb-make-call,mb-sdcc-link-asm,$(1),$(2),0x0000) endef $(call mb-make-call,mb-doc-function,mb-sdcc-link-asm-0000,"Links asm to 0x0000."," ") define mb-sdcc-link-asm-0100 $(MB_ᕽᕽᕽ   )$(call mb-make-call,mb-sdcc-link-asm,$(1),$(2),0x0100) endef $(call mb-make-call,mb-doc-function,mb-sdcc-link-asm-0100,"Links asm to 0x0100."," ") define mb-sdcc-link-asm-1000 $(MB_ᕽᕽᕽ   )$(call mb-make-call,mb-sdcc-link-asm,$(1),$(2),0x1000) endef $(call mb-make-call,mb-doc-function,mb-sdcc-link-asm-1000,"Links asm to 0x1000."," ") define mb-sdcc-link-asm-4000 $(MB_ᕽᕽᕽ   )$(call mb-make-call,mb-sdcc-link-asm,$(1),$(2),0x4000) endef $(call mb-make-call,mb-doc-function,mb-sdcc-link-asm-4000,"Links asm to 0x4000."," ") define mb-sdcc-link-asm-8000 $(MB_ᕽᕽᕽ   )$(call mb-make-call,mb-sdcc-link-asm,$(1),$(2),0x8000) endef $(call mb-make-call,mb-doc-function,mb-sdcc-link-asm-8000,"Links asm to 0x8000."," ") define mb-sdcc-link-asm-C000 $(MB_ᕽᕽᕽ   )$(call mb-make-call,mb-sdcc-link-asm,$(1),$(2),0xC000) endef $(call mb-make-call,mb-doc-function,mb-sdcc-link-asm-C000,"Links asm to 0xC000."," ") define mb-sdcc-link-asm-bdos $(MB_ᕽᕽᕽ   )$(call mb-make-call,mb-sdcc-link-asm-0100,$(1),$(2)) endef $(call mb-make-call,mb-doc-function,mb-sdcc-link-asm-bdos,"Links asm to BDOS."," ") define mb-sdcc-objcopy $(MB_ᕽᕽᕽ   )$(call mb-make-call,mb-os-echo-command,$(MB_I18N_SDCC_OBJCOPY) $(2)) $(MB_ᕽᕽᕽ   )$(call mb-make-call,_mb-sdcc-path,sdobjcopy) -I ihex --output-target$(MB_MAKE_EQUALS)binary $(1) $(2) endef $(call mb-make-call,mb-doc-function,mb-sdcc-objcopy,"Converts an hex file to binary."," ")