summaryrefslogtreecommitdiff
path: root/makefiles/Makefile.top
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/Makefile.top
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/Makefile.top')
-rw-r--r--makefiles/Makefile.top17
1 files changed, 16 insertions, 1 deletions
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)