|
| 1 | +diff --git a/Makefile.in b/Makefile.in |
| 2 | +index 8185fa609..a3822f53b 100644 |
| 3 | +--- a/Makefile.in |
| 4 | ++++ b/Makefile.in |
| 5 | +@@ -424,22 +424,16 @@ endif |
| 6 | + |
| 7 | + ifneq ($(SHARED), 0) |
| 8 | + shared: $(FLINT_DIR)/$(FLINT_LIB_FULL) |
| 9 | +-# The following is to avoid reaching the maximum length of command line |
| 10 | +-# arguments, mainly present on MinGW. |
| 11 | +-define xxx_merged_lobj_rule |
| 12 | +-$(BUILD_DIR)/$(1)_merged.lo: $($(1)_LOBJS) | $(BUILD_DIR) |
| 13 | +- @$(LD) -r $($(1)_LOBJS) -o $(BUILD_DIR)/$(1)_merged.lo |
| 14 | +-endef |
| 15 | +-$(foreach dir, $(DIRS), $(eval $(call xxx_merged_lobj_rule,$(dir)))) |
| 16 | +-MERGED_LOBJS:=$(foreach dir, $(DIRS),$(BUILD_DIR)/$(dir)_merged.lo) |
| 17 | + ifeq ($(WANT_LTO),1) |
| 18 | + SHARED_LIB_DEPS:=$(LOBJS) |
| 19 | + else |
| 20 | +-SHARED_LIB_DEPS:=$(MERGED_LOBJS) |
| 21 | ++SHARED_LINK_RSP := $(BUILD_DIR)/libflint-shared.rsp |
| 22 | ++SHARED_LIB_DEPS:=$(LOBJS) |
| 23 | + endif |
| 24 | +-$(FLINT_DIR)/$(FLINT_LIB_FULL): $(SHARED_LIB_DEPS) |
| 25 | ++$(FLINT_DIR)/$(FLINT_LIB_FULL): $(SHARED_LIB_DEPS) | $(BUILD_DIR) |
| 26 | + @echo "Building $(FLINT_LIB_FULL)" |
| 27 | +- $(CMD) $(CC) $(CFLAGS) -shared $(EXTRA_SHARED_FLAGS) $(SHARED_LIB_DEPS) -o $(FLINT_LIB_FULL) $(LDFLAGS) $(LIBS) |
| 28 | ++ @: $(file >$(SHARED_LINK_RSP))$(foreach obj,$(LOBJS),$(file >>$(SHARED_LINK_RSP),$(obj))) |
| 29 | ++ $(CMD) $(CC) $(CFLAGS) -shared $(EXTRA_SHARED_FLAGS) @$(SHARED_LINK_RSP) -o $(FLINT_LIB_FULL) $(LDFLAGS) $(LIBS) |
| 30 | + @$(RM_F) $(FLINT_LIB) |
| 31 | + @$(RM_F) $(FLINT_LIB_MAJOR) |
| 32 | + @$(LN_S) $(FLINT_LIB_FULL) $(FLINT_LIB) |
0 commit comments