summaryrefslogtreecommitdiff
path: root/libgcc/siditi-object.mk
diff options
context:
space:
mode:
Diffstat (limited to 'libgcc/siditi-object.mk')
-rw-r--r--libgcc/siditi-object.mk22
1 files changed, 22 insertions, 0 deletions
diff --git a/libgcc/siditi-object.mk b/libgcc/siditi-object.mk
new file mode 100644
index 000000000..69df8338f
--- /dev/null
+++ b/libgcc/siditi-object.mk
@@ -0,0 +1,22 @@
+# This file is included several times in a row, once for each element of
+# $(iter-items). On each inclusion, we advance $o to the next element.
+# $(iter-labels) and $(iter-sizes) are also advanced.
+
+o := $(firstword $(iter-items))
+iter-items := $(filter-out $o,$(iter-items))
+
+$o-label := $(firstword $(iter-labels))
+iter-labels := $(wordlist 2,$(words $(iter-labels)),$(iter-labels))
+
+$o-size := $(firstword $(iter-sizes))
+iter-sizes := $(wordlist 2,$(words $(iter-sizes)),$(iter-sizes))
+
+$o$(objext): %$(objext): $(gcc_srcdir)/libgcc2.c
+ $(gcc_compile) -DL$($*-label) -c $(gcc_srcdir)/libgcc2.c $(vis_hide) \
+ -DLIBGCC2_UNITS_PER_WORD=$($*-size)
+
+ifeq ($(enable_shared),yes)
+$(o)_s$(objext): %_s$(objext): $(gcc_srcdir)/libgcc2.c
+ $(gcc_s_compile) -DL$($*-label) -c $(gcc_srcdir)/libgcc2.c \
+ -DLIBGCC2_UNITS_PER_WORD=$($*-size)
+endif