]> rtime.felk.cvut.cz Git - omk.git/blobdiff - snippets/sdcc.omk
SDCC rules updated to honor AS and other values provided by config.omk.
[omk.git] / snippets / sdcc.omk
index 86247a7d3aff570d091fba8664ab8d8bc05df6fb..2ad70d1640ddeef3b7f05da9f0d72401b5995c2f 100644 (file)
@@ -1,5 +1,3 @@
-#                   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 =
@@ -171,28 +156,28 @@ $(1)_OBJS := $$(sort $$($(1)_OBJS:%/=%))
 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) $< >$@
 
@@ -218,13 +203,13 @@ endef
 
 # 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))))
@@ -259,14 +244,14 @@ library-pass-local: $(addprefix $(USER_INCLUDE_DIR)/,$(cmetric_include_HEADERS))
                    $(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