summaryrefslogtreecommitdiff
path: root/makefiles
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2009-07-28 11:29:46 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2009-07-28 11:29:46 +0000
commit9785ccc2e942ebd0951a2104dd249f88a59d3700 (patch)
tree4bfa1a0823e5c3a7a5b29d871d815a2789d39c31 /makefiles
parentb461aced47881fb1be66bac3d4e0a14b59e2cf59 (diff)
downloadbuildsystem-9785ccc2e942ebd0951a2104dd249f88a59d3700.tar.gz
buildsystem-9785ccc2e942ebd0951a2104dd249f88a59d3700.tar.bz2
Something approximating support for assembler sources.
svn path=/trunk/tools/buildsystem/; revision=8846
Diffstat (limited to 'makefiles')
-rw-r--r--makefiles/Makefile.tools5
-rw-r--r--makefiles/Makefile.top17
2 files changed, 20 insertions, 2 deletions
diff --git a/makefiles/Makefile.tools b/makefiles/Makefile.tools
index 65933da..e47f48e 100644
--- a/makefiles/Makefile.tools
+++ b/makefiles/Makefile.tools
@@ -197,7 +197,7 @@ TOUCH ?= touch
XSLTPROC ?= xsltproc
###############################################################################
-# Default compiler/linker/archiver flags
+# Default assembler/compiler/linker/archiver flags
###############################################################################
ifeq ($(BUILD),release)
@@ -211,7 +211,10 @@ ifeq ($(origin ARFLAGS),default)
ARFLAGS := cru
endif
+ASFLAGS ?= -xassembler-with-cpp
+
CFLAGS := $(CFLAGS) $(OPTCFLAGS) -DBUILD_TARGET_$(TARGET) -DBUILD_HOST_$(HOST)
+ASFLAGS := $(ASFLAGS) $(CFLAGS)
LDFLAGS := $(LDFLAGS) $(OPTLDFLAGS)
# Extensions for coverage target
diff --git a/makefiles/Makefile.top b/makefiles/Makefile.top
index 2d84a7b..df1ff9b 100644
--- a/makefiles/Makefile.top
+++ b/makefiles/Makefile.top
@@ -168,7 +168,8 @@ $(eval $(foreach INC, $(MAKE_INCLUDES), $(call do_include,$(INC))))
# Calculate objects to build
OBJECTS := $(addprefix $(BUILDDIR)/,$(filter %.o, \
$(subst /,_,$(subst .c,.o,$(SOURCES))) \
- $(subst /,_,$(subst .cmhg,.o,$(SOURCES)))))
+ $(subst /,_,$(subst .cmhg,.o,$(SOURCES))) \
+ $(subst /,_,$(subst .s,.o,$(SOURCES)))))
bin_for_test = $(addprefix $(BUILDDIR)/,$(firstword $(subst :, ,$(ITEM))))
TEST_BINARIES := $(foreach ITEM,$(TEST_ITEMS),$(bin_for_test))
@@ -444,7 +445,18 @@ define build_cmhg
endef
+define build_s
+ ifeq ($$(findstring $$(BUILDDIR)/$2,$$(BUILDFILES)),)
+ $$(BUILDDIR)/$2: $$(BUILDDIR)/stamp $1
+ $$(VQ)$$(ECHO) $$(ECHOFLAGS) "ASSEMBLE: $1"
+ $$(Q)$$(CC) $$($3) $1 -c -o $$@
+ BUILDFILES += $$(BUILDDIR)/$2
+ endif
+
+endef
+
BUILDCFLAGS = $(CFLAGS) $(SHAREDCFLAGS)
+BUILDASFLAGS = $(ASFLAGS) $(SHAREDCFLAGS)
# Generate dependency rules
$(eval $(foreach SOURCE,$(filter %.c,$(SOURCES)), \
@@ -457,6 +469,9 @@ $(eval $(foreach SOURCE,$(filter %.c,$(SOURCES)), \
$(eval $(foreach SOURCE,$(filter %.cmhg,$(SOURCES)), \
$(call build_cmhg,$(SOURCE),$(subst /,_,$(SOURCE:.cmhg=.o)))))
+$(eval $(foreach SOURCE,$(filter %.s,$(SOURCES)), \
+ $(call build_s,$(SOURCE),$(subst /,_,$(SOURCE:.s=.o)),BUILDASFLAGS)))
+
# Similarly for test sources
ifeq ($(WANT_TEST),yes)
ifeq ($(findstring lib,$(COMPONENT_TYPE)),lib)