aboutsummaryrefslogtreecommitdiff
path: root/libgcc/Makefile.in
diff options
context:
space:
mode:
Diffstat (limited to 'libgcc/Makefile.in')
-rw-r--r--libgcc/Makefile.in59
1 files changed, 53 insertions, 6 deletions
diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in
index ca7ed066a83..3acf2e856a4 100644
--- a/libgcc/Makefile.in
+++ b/libgcc/Makefile.in
@@ -32,12 +32,14 @@ prefix = @prefix@
exec_prefix = @exec_prefix@
libdir = @libdir@
+shlib_slibdir = @slibdir@
SHELL = @SHELL@
enable_shared = @enable_shared@
decimal_float = @decimal_float@
enable_decimal_float = @enable_decimal_float@
+fixed_point = @fixed_point@
host_noncanonical = @host_noncanonical@
@@ -98,7 +100,7 @@ all: all-multi
# them back to the GCC directory. Too many things (other
# in-tree libraries, and DejaGNU) know about the layout
# of the build tree, for now.
- $(MAKE) install DESTDIR=$(gcc_objdir) \
+ $(MAKE) install-leaf DESTDIR=$(gcc_objdir) \
slibdir= libsubdir= MULTIOSDIR=$(MULTIDIR)
.PHONY: all-multi
@@ -477,9 +479,10 @@ endif
dfp-filenames =
ifneq ($(D32PBIT)$(D64PBIT)$(D128PBIT),)
ifeq ($(enable_decimal_float),bid)
-dfp-filenames += decimal_globals decimal_data binarydecimal \
+dfp-filenames += bid_decimal_globals bid_decimal_data \
+ bid_binarydecimal bid_convert_data \
_isinfd32 _isinfd64 _isinfd128 bid64_noncomp \
- bid128_fma bid_round bid_from_int convert_data \
+ bid128_noncomp bid128_fma bid_round bid_from_int \
bid64_add bid128_add bid64_div bid128_div \
bid64_mul bid128_mul bid64_compare bid128_compare \
bid128 bid32_to_bid64 bid32_to_bid128 bid64_to_bid128 \
@@ -488,7 +491,7 @@ dfp-filenames += decimal_globals decimal_data binarydecimal \
bid128_to_int32 bid128_to_int64 \
bid128_to_uint32 bid128_to_uint64
else
-dfp-filenames += decContext decNumber decExcept decRound decLibrary decUtility
+dfp-filenames += decContext decNumber decExcept decRound decLibrary decDouble decPacked decQuad decSingle
endif
endif
@@ -575,6 +578,48 @@ endif
endif
+# Build fixed-point support.
+ifeq ($(fixed_point),yes)
+
+# Generate permutations of function name and mode
+fixed-labels := $(shell $(SHELL) $(srcdir)/gen-fixed.sh arith labels)
+fixed-funcs := $(shell $(SHELL) $(srcdir)/gen-fixed.sh arith funcs)
+fixed-modes := $(shell $(SHELL) $(srcdir)/gen-fixed.sh arith modes)
+
+# Generate the rules for each arithmetic function
+iter-items := $(fixed-funcs)
+iter-labels := $(fixed-labels)
+iter-from := $(fixed-modes)
+iter-to := $(fixed-modes)
+include $(srcdir)/empty.mk $(patsubst %,$(srcdir)/fixed-obj.mk,$(iter-items))
+
+# Add arithmetic functions to list of objects to be built
+libgcc-objects += $(patsubst %,%$(objext),$(fixed-funcs))
+ifeq ($(enable_shared),yes)
+libgcc-s-objects += $(patsubst %,%_s$(objext),$(fixed-funcs))
+endif
+
+# Convert from or to fractional
+fixed-conv-funcs := $(shell $(SHELL) $(srcdir)/gen-fixed.sh conv funcs)
+fixed-conv-labels := $(shell $(SHELL) $(srcdir)/gen-fixed.sh conv labels)
+fixed-conv-from := $(shell $(SHELL) $(srcdir)/gen-fixed.sh conv from)
+fixed-conv-to := $(shell $(SHELL) $(srcdir)/gen-fixed.sh conv to)
+
+# Generate the make rules for each conversion function
+iter-items := $(fixed-conv-funcs)
+iter-labels := $(fixed-conv-labels)
+iter-from := $(fixed-conv-from)
+iter-to := $(fixed-conv-to)
+include $(srcdir)/empty.mk $(patsubst %,$(srcdir)/fixed-obj.mk,$(iter-items))
+
+# Add conversion functions to list of objects to be built
+libgcc-objects += $(patsubst %,%$(objext),$(fixed-conv-funcs))
+ifeq ($(enable_shared),yes)
+libgcc-s-objects += $(patsubst %,%_s$(objext),$(fixed-conv-funcs))
+endif
+
+endif
+
# Build LIB2ADD and LIB2ADD_ST.
ifneq ($(filter-out %.c %.S %.asm,$(LIB2ADD) $(LIB2ADD_ST)),)
$(error Unsupported files in LIB2ADD or LIB2ADD_ST.)
@@ -695,7 +740,8 @@ libgcc_s$(SHLIB_EXT): $(libgcc-s-objects) $(extra-parts)
@shlib_objs@,$(objects),$(subst \
@shlib_base_name@,libgcc_s,$(subst \
@shlib_map_file@,$(mapfile),$(subst \
- @shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_LINK)))))))
+ @shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(subst \
+ @shlib_slibdir@,$(shlib_slibdir),$(SHLIB_LINK))))))))
libunwind$(SHLIB_EXT): $(libunwind-s-objects) $(extra-parts)
# @multilib_flags@ is still needed because this may use
@@ -838,7 +884,7 @@ install-shared:
@shlib_base_name@,libgcc_s,$(subst \
@shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL))))
-install: $(install-shared) $(install-libunwind)
+install-leaf: $(install-shared) $(install-libunwind)
$(mkinstalldirs) $(DESTDIR)$(inst_libdir)
$(INSTALL_DATA) libgcc.a $(DESTDIR)$(inst_libdir)/
@@ -854,6 +900,7 @@ install: $(install-shared) $(install-libunwind)
$(INSTALL_DATA) $$file $(DESTDIR)$(inst_libdir)/; \
done
+install: install-leaf
@$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
.PHONY: install install-shared install-libunwind