summaryrefslogtreecommitdiff
path: root/cesar/common
diff options
context:
space:
mode:
authorschodet2009-10-05 06:24:59 +0000
committerschodet2009-10-05 06:24:59 +0000
commitb2979396ee3ffcfab6e6a5267fa4c53418244b09 (patch)
treec47ca332fbe676c9611818ebd72bfc032a8ade04 /cesar/common
parent48078f39f09dcc6b0f762db8af36bc2307f8d7b5 (diff)
* common/make:
- added MAKE_LST variable to dump assembly listing. git-svn-id: svn+ssh://pessac/svn/cesar/trunk@5903 017c9cb6-072f-447c-8318-d5b54f68fe89
Diffstat (limited to 'cesar/common')
-rw-r--r--cesar/common/make/build.mk15
-rw-r--r--cesar/common/make/func.mk5
-rw-r--r--cesar/common/make/setup.mk1
-rw-r--r--cesar/common/make/target.mk1
-rw-r--r--cesar/common/make/test/clean-output2
5 files changed, 21 insertions, 3 deletions
diff --git a/cesar/common/make/build.mk b/cesar/common/make/build.mk
index 211f84cac6..3a8fc791bb 100644
--- a/cesar/common/make/build.mk
+++ b/cesar/common/make/build.mk
@@ -8,6 +8,7 @@ HOST_CXX ?= $(CXX)
TARGET_CC ?= $(CROSS_COMPILE)gcc
TARGET_CXX ?= $(CROSS_COMPILE)g++
TARGET_OBJCOPY ?= $(CROSS_COMPILE)objcopy
+TARGET_OBJDUMP ?= $(CROSS_COMPILE)objdump
HOST_COMPILE.c = $(HOST_CC) $(HOST_CPPFLAGS) $(HOST_CFLAGS) -c
HOST_COMPILE.cpp = $(HOST_CXX) $(HOST_CPPFLAGS) $(HOST_CXXFLAGS) -c
@@ -22,6 +23,7 @@ TARGET_LINK = $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS)
TARGET_LINK_CXX = $(TARGET_CXX) $(TARGET_CXXFLAGS) $(TARGET_LDFLAGS)
TARGET_MAKE_BIN = $(TARGET_OBJCOPY) -O binary
TARGET_MAKE_ROM = $(TOOLS_DIR)/bin2rom
+TARGET_MAKE_LST = $(TARGET_OBJDUMP) -S
TARGET_MAKE_SIZE = $(TOOLS_DIR)/lram-size
.PHONY: build.all host.all target.all build.clean
@@ -31,8 +33,9 @@ build.all: host.all target.all
host.all: $(HOST_EXES)
target.all: \
- $(if $(MAKE_ROM),$(TARGET_ROMS)) \
$(if $(MAKE_BIN),$(TARGET_BINS)) \
+ $(if $(MAKE_ROM),$(TARGET_ROMS)) \
+ $(if $(MAKE_LST),$(TARGET_LSTS)) \
$(if $(MAKE_SIZE),$(TARGET_SIZES)) \
$(TARGET_ELFS)
@@ -75,6 +78,13 @@ $(call prog2rom,%): $(call prog2bin,%)
@echo $(MAKE_ROM_rule_template_echo)" [target] $@"
$Q$(TARGET_MAKE_ROM) < $< > $@
+# List file rule.
+MAKE_LST_rule_template_echo := "LST "
+%.lst: $(call prog2lst,%)
+$(call prog2lst,%): $(call prog2exe,%,target)
+ @echo $(MAKE_LST_rule_template_echo)" [target] $@"
+ $Q$(TARGET_MAKE_LST) $< > $@
+
# SIZE file rule.
MAKE_SIZE_rule_template_echo := "SIZE"
%.size: $(call prog2size,%)
@@ -89,7 +99,8 @@ $(call prog2size,%): $(call prog2exe,%,target)
# Clean rules.
build.clean:
- rm -f $(HOST_EXES) $(TARGET_ELFS) $(TARGET_BINS) $(TARGET_ROMS) $(TARGET_SIZES) \
+ rm -f $(HOST_EXES) $(TARGET_ELFS) \
+ $(TARGET_BINS) $(TARGET_ROMS) $(TARGET_LSTS) $(TARGET_SIZES) \
$(call src2obj,$(HOST_SOURCES),host) \
$(call src2obj,$(TARGET_SOURCES),target) \
$(call src2dep,$(HOST_SOURCES),host) \
diff --git a/cesar/common/make/func.mk b/cesar/common/make/func.mk
index 6159aab236..25c92dc389 100644
--- a/cesar/common/make/func.mk
+++ b/cesar/common/make/func.mk
@@ -55,6 +55,11 @@ prog2bin = $(patsubst %,$(OBJ_DIR)/%.bin,$1)
# => $(OBJ_DIR)/test_foo.rom
prog2rom = $(patsubst %,$(OBJ_DIR)/%.rom,$1)
+# Program name to list file name.
+# $(call prog2lst,test_foo)
+# => $(OBJ_DIR)/test_foo.lst
+prog2lst = $(patsubst %,$(OBJ_DIR)/%.lst,$1)
+
# Program name to SIZE file name.
# $(call prog2size,test_foo)
# => $(OBJ_DIR)/test_foo.size
diff --git a/cesar/common/make/setup.mk b/cesar/common/make/setup.mk
index 39d6e1f8b6..3706af8b4a 100644
--- a/cesar/common/make/setup.mk
+++ b/cesar/common/make/setup.mk
@@ -8,6 +8,7 @@ HOST_EXES := $(call prog2exe,$(HOST_PROGRAMS),host)
TARGET_ELFS := $(call prog2exe,$(TARGET_PROGRAMS),target)
TARGET_BINS := $(call prog2bin,$(TARGET_PROGRAMS))
TARGET_ROMS := $(call prog2rom,$(TARGET_PROGRAMS))
+TARGET_LSTS := $(call prog2lst,$(TARGET_PROGRAMS))
TARGET_SIZES := $(call prog2size,$(TARGET_PROGRAMS))
ALL_PROGRAMS := $(HOST_PROGRAMS) $(TARGET_PROGRAMS)
diff --git a/cesar/common/make/target.mk b/cesar/common/make/target.mk
index 2646badfab..5868ead124 100644
--- a/cesar/common/make/target.mk
+++ b/cesar/common/make/target.mk
@@ -11,6 +11,7 @@ ifeq ($(TARGET),sparc)
CROSS_COMPILE := $(TARGET)-elf-
MAKE_BIN := y
MAKE_ROM := y
+ MAKE_LST :=
MAKE_SIZE := y
# Sparc v8.
diff --git a/cesar/common/make/test/clean-output b/cesar/common/make/test/clean-output
index a639596a7d..88b8158fd3 100644
--- a/cesar/common/make/test/clean-output
+++ b/cesar/common/make/test/clean-output
@@ -1,7 +1,7 @@
CONF merge
rm -f obj/Config.empty obj/Config.merged obj/Config.list obj/Module.list
rm -rf obj/inc/config.h obj/inc/config obj/inc/module_config.h
-rm -f obj/test_make obj/test_cpp obj/test_make_ecos.elf obj/test_make_ecos.bin obj/test_make_ecos.rom obj/test_make_ecos.size \
+rm -f obj/test_make obj/test_cpp obj/test_make_ecos.elf \
rm -rf obj/ecos/tree.stamp obj/ecos/build
rm -rf obj/ecos/headers.stamp obj/ecos/install
rm -f obj/ecos/ecos.ecc obj/ecos/ecos-cov.ecc new-ecos.ecc