-# Version for SDCC builds.
-#
# bin_PROGRAMS .. list of the require binary programs
# test_PROGRAMS .. list of the test programs
# include_HEADERS .. list of the user-space public header files
# specified, then the value of DEFAULT_LD_SCRIPT_VARIANT from config.target is used.
# PREFIX_DIR .. Prefix to directories in _compiled and _build. Used in config.omk.
-CC = sdcc
-OBJ_EXT = .rel
-LIB_EXT = .lib
-LIB_PREF =
-AR = sdcclib
-AS = asx8051
-HC = packihx
-HEX2BIN = true
-OBJCOPY = objcopy
-TARGETLOADER = ul_sendhex
-ARFLAGS = -a
-A51TOASX = $(MAKERULES_DIR)/a51toasx.sh
-
BUILD_DIR_NAME = _build
COMPILED_DIR_NAME = _compiled
GROUP_DIR_NAME =
LIB_DIR := $(USER_LIB_DIR)
OBJS_DIR := $(USER_OBJS_DIR)
-# Checks for OMK tester
-ifdef OMK_TESTSROOT
-default-config-pass-check include-pass-check:
-library-pass-check binary-pass-check:
- @[ -x "$(shell which $(CC))" ] || $(call canttest,Cannot find compiler: $(CC))
- @[ -z "$(wildcard $(USER_LIB_DIR)/$(LD_SCRIPT).ld*)" ] && $(call canttest,LD_SCRIPT $(LD_SCRIPT).ld* not found)
-endif
-
#=====================================================================
# User-space rules and templates to compile programs, libraries etc.
USER_OBJS += $$($(1)_OBJS)
USER_SOURCES += $$($(1)_SOURCES)
--include $(USER_LIB_DIR)/$(LD_SCRIPT).ld$$(addprefix -,$(3))
+-include $(USER_LIB_DIR)/$(LD_SCRIPT).ld$$(addprefix -,$(4))
-$(2)/$(1)$(addprefix -,$(3)): $(USER_LIB_DIR)/$(LD_SCRIPT).ld$$(addprefix -,$(3))
+$(2)/$(1)$(addprefix -,$(4))$(3): $(USER_LIB_DIR)/$(LD_SCRIPT).ld$$(addprefix -,$(4))
-$(2)/$(1)$(addprefix -,$(3)): $(USER_LIB_DIR)/timestamp
+$(2)/$(1)$(addprefix -,$(4))$(3): $(USER_LIB_DIR)/timestamp
-$(2)/$(1)$(addprefix -,$(3)): $$($(1)_OBJS)
+$(2)/$(1)$(addprefix -,$(4))$(3): $$($(1)_OBJS)
@$(QUIET_CMD_ECHO) " LINK $$@"
$(Q) $$(shell if [ -z "$$(filter %.cc,$$($(1)_SOURCES))" ] ; \
then echo $$(CC) $$(CPPFLAGS) $$(AM_CPPFLAGS) $$(AM_CFLAGS) $$(CFLAGS) ; \
else echo $$(CXX) $$(CPPFLAGS) $$(AM_CPPFLAGS) $$(AM_CXXFLAGS) $$(CXXFLAGS) ; fi) \
$$(AM_LDFLAGS) $$(LDFLAGS) $$($(1)_OBJS) $$(LOADLIBES) $$($(1)_LIBS:%=-l%) \
- -o $(2)/$(1)$(addprefix -,$(3))
- $(HEX2BIN) $(2)/$(1)$(addprefix -,$(3)).hex
+ -o $(2)/$(1)$(addprefix -,$(4))$(3)
+ $(HEX2BIN) $(2)/$(1)$(addprefix -,$(4))$(3)
endef
# Rules for other output formats (can be specified by OUTPUT_FORMATS)
-%.bin: %.hex
+%.bin: %$(EXE_SUFFIX)
@$(QUIET_CMD_ECHO) " OBJCOPY $@"
$(Q) $(OBJCOPY) --input-target=ihex --output-target=binary $< $@
-%.hex: %
+%.hex: %$(EXE_SUFFIX)
@$(QUIET_CMD_ECHO) " GENIHEX $@"
$(Q) cd $(dirname $<) && $(HC) $< >$@
# Generate rules for compilation of programs and libraries
ifneq ($(link_VARIANTS),)
-$(foreach prog,$(bin_PROGRAMS),$(foreach link,$(link_VARIANTS),$(eval $(call PROGRAM_template,$(prog),$(USER_BIN_DIR),$(link)))))
-$(foreach prog,$(utils_PROGRAMS),$(foreach link,$(link_VARIANTS),$(eval $(call PROGRAM_template,$(prog),$(USER_UTILS_DIR),$(link)))))
-$(foreach prog,$(test_PROGRAMS),$(foreach link,$(link_VARIANTS),$(eval $(call PROGRAM_template,$(prog),$(USER_TESTS_DIR),$(link)))))
+$(foreach prog,$(bin_PROGRAMS),$(foreach link,$(link_VARIANTS),$(eval $(call PROGRAM_template,$(prog),$(USER_BIN_DIR),$(EXE_SUFFIX),$(link)))))
+$(foreach prog,$(utils_PROGRAMS),$(foreach link,$(link_VARIANTS),$(eval $(call PROGRAM_template,$(prog),$(USER_UTILS_DIR),$(EXE_SUFFIX),$(link)))))
+$(foreach prog,$(test_PROGRAMS),$(foreach link,$(link_VARIANTS),$(eval $(call PROGRAM_template,$(prog),$(USER_TESTS_DIR),$(EXE_SUFFIX),$(link)))))
else
-$(foreach prog,$(bin_PROGRAMS),$(eval $(call PROGRAM_template,$(prog),$(USER_BIN_DIR))))
-$(foreach prog,$(utils_PROGRAMS),$(eval $(call PROGRAM_template,$(prog),$(USER_UTILS_DIR))))
-$(foreach prog,$(test_PROGRAMS),$(eval $(call PROGRAM_template,$(prog),$(USER_TESTS_DIR))))
+$(foreach prog,$(bin_PROGRAMS),$(eval $(call PROGRAM_template,$(prog),$(USER_BIN_DIR),$(EXE_SUFFIX))))
+$(foreach prog,$(utils_PROGRAMS),$(eval $(call PROGRAM_template,$(prog),$(USER_UTILS_DIR),$(EXE_SUFFIX))))
+$(foreach prog,$(test_PROGRAMS),$(eval $(call PROGRAM_template,$(prog),$(USER_TESTS_DIR),$(EXE_SUFFIX))))
endif
$(foreach lib,$(lib_LIBRARIES),$(eval $(call LIBRARY_template,$(lib))))
$(addprefix $(LIB_DIR)/,$(lib_OBJS))
ifneq ($(link_VARIANTS),)
-binary-pass-local: $(foreach link,$(link_VARIANTS),$(bin_PROGRAMS:%=$(USER_BIN_DIR)/%-$(link)) \
+binary-pass-local: $(foreach link,$(link_VARIANTS),$(bin_PROGRAMS:%=$(USER_BIN_DIR)/%-$(link)$(EXE_SUFFIX)) \
$(foreach of,$(OUTPUT_FORMATS),$(bin_PROGRAMS:%=$(USER_BIN_DIR)/%-$(link).$(of))))
-binary-pass-local: $(foreach link,$(link_VARIANTS),$(test_PROGRAMS:%=$(USER_TESTS_DIR)/%-$(link)) \
+binary-pass-local: $(foreach link,$(link_VARIANTS),$(test_PROGRAMS:%=$(USER_TESTS_DIR)/%-$(link)$(EXE_SUFFIX)) \
$(foreach of,$(OUTPUT_FORMATS),$(test_PROGRAMS:%=$(USER_TESTS_DIR)/%-$(link).$(of))))
else
-binary-pass-local: $(bin_PROGRAMS:%=$(USER_BIN_DIR)/%) \
+binary-pass-local: $(bin_PROGRAMS:%=$(USER_BIN_DIR)/%$(EXE_SUFFIX)) \
$(foreach of,$(OUTPUT_FORMATS),$(bin_PROGRAMS:%=$(USER_BIN_DIR)/%.$(of)))
-binary-pass-local: $(test_PROGRAMS:%=$(USER_TESTS_DIR)/%) \
+binary-pass-local: $(test_PROGRAMS:%=$(USER_TESTS_DIR)/%$(EXE_SUFFIX)) \
$(foreach of,$(OUTPUT_FORMATS),$(test_PROGRAMS:%=$(USER_TESTS_DIR)/%.$(of)))
endif
@$(foreach f, $(lib_LDSCRIPTS), cmp --quiet $(SOURCES_DIR)/$(f) $(USER_LIB_DIR)/$(notdir $(f)) \
|| $(call cp_cmd,$(SOURCES_DIR)/$(f),$(USER_LIB_DIR)/$(notdir $(f))) || exit 1 ; )
@$(foreach f, $(asm_build_HEADERS), \
- srcfname=`echo '$(f)' | sed -e 's/^\(.*\)->.*$$/\1/'` ; destfname=`echo '$(f)' | sed -e 's/^.*->\(.*\)$$/\1/'` ; \
+ srcfname=`echo '$(f)' | $(SED4OMK) -e 's/^\(.*\)->.*$$/\1/'` ; destfname=`echo '$(f)' | $(SED4OMK) -e 's/^.*->\(.*\)$$/\1/'` ; \
cmp --quiet $(SOURCES_DIR)/$${srcfname} $(USER_OBJS_DIR)/$${destfname} \
|| ( mkdir -p `dirname $(USER_OBJS_DIR)/$${destfname}` && \
$(A51TOASX) $(SOURCES_DIR)/$${srcfname} $(USER_OBJS_DIR)/$${destfname} ) || exit 1 ; )
include-pass-submakes: extra-rules-subdirs
# Which passes to pass
default: include-pass library-pass binary-pass utils-pass
-
-# Local Variables:
-# mode:makefile
-# End: