MB_SDCC_FLAG_CPU ?= -mz80 $(call mb_make_call,mb_doc_variable,MB_SDCC_FLAG_CPU,"The SDCC cpu target option.") MB_SDCC_FLAG_LD ?= --nostdinc $(call mb_make_call,mb_doc_variable,MB_SDCC_FLAG_LD,"The SDCC linker option.") MB_SDCC_ASZ80_FLAGS ?= -g -l -c -o $(call mb_make_call,mb_doc_variable,MB_SDCC_ASZ80_FLAGS,"The SDCC z80 asm compiler flags.") MB_SDCC_CC_FLAGS ?= $(call mb_make_call,mb_doc_variable,MB_SDCC_CC_FLAGS,"The SDCC C compiler flags.") MB_SDCC_AR_FLAGS ?= -rc $(call mb_make_call,mb_doc_variable,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_compile_asm $(call mb_make_call,mb_make_echo_command,SDCC Compile super $(2) from ASM) $(PATH_SDCC)/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_link_asm_lib $(call mb_make_call,mb_make_echo_command,SDCC Link ASM lib $(2)) $(PATH_SDCC)/sdar $(MB_SDCC_AR_FLAGS) $(1) $(2) endef $(call mb_make_call,mb_doc_function,mb_sdcc_link_asm_lib,"Link asm lib module."," ") define mb_sdcc_link_asm $(call mb_make_call,mb_make_echo_command,SDCC Link megaocto $(2) at $(3)) $(PATH_SDCC)/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 $(call mb_make_call,mb_sdcc_link_asm,$(1),$(2),0x0000)rule endef $(call mb_make_call,mb_doc_function,mb_sdcc_link_asm_0000,"Links asm to 0x0000."," ") define mb_sdcc_link_asm_0100 $(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 $(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 $(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 $(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 $(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 $(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_hex2bin $(call mb_make_call,mb_make_echo_command,SDCC sdobjcopy for $(2)) $(PATH_SDCC)/sdobjcopy -I ihex --output-target=binary $(1) $(2) endef $(call mb_make_call,mb_doc_function,mb_sdcc_hex2bin,"Converts an hex file to binary."," ")