about summary refs log tree commit diff
path: root/Makerules
diff options
context:
space:
mode:
Diffstat (limited to 'Makerules')
-rw-r--r--Makerules52
1 files changed, 31 insertions, 21 deletions
diff --git a/Makerules b/Makerules
index 9d0a9faa58..0d04b50084 100644
--- a/Makerules
+++ b/Makerules
@@ -625,6 +625,9 @@ endef
 
 # Installation.
 
+.PHONY: force-install
+force-install:
+
 # $(install-lib) are installed from the object directory into $(libdir);
 # files in $(install-lib) matching `lib%.a' are ranlib'd after installation
 # unless they also appear in $(non-lib.a).  $(install-data) are installed
@@ -660,7 +663,7 @@ installed-libcs := $(foreach o,$(filter-out .os,$(object-suffixes-for-libc)),\
 			     $(inst_libdir)/$(patsubst %,$(libtype$o),\
 						     $(libprefix)$(libc-name)))
 install: $(installed-libcs)
-$(installed-libcs): $(inst_libdir)/lib$(libprefix)%: lib
+$(installed-libcs): $(inst_libdir)/lib$(libprefix)%: lib $(+force)
 	$(make-target-directory)
 	$(INSTALL_DATA) $(common-objpfx)lib$(*:$(libc-name)%=c%) $@
 # Running ranlib after installing makes the __.SYMDEF time stamp up to
@@ -686,7 +689,7 @@ versioned := $(strip $(foreach so,$(install-lib.so),\
 
 # Install all the unversioned shared libraries.
 $(addprefix $(inst_slibdir)/, $(filter-out $(versioned),$(install-lib.so))): \
-	$(inst_slibdir)/%.so: $(objpfx)%.so; $(do-install-program)
+	$(inst_slibdir)/%.so: $(objpfx)%.so $(+force); $(do-install-program)
 
 ifneq ($(findstring -s,$(LN_S)),)
 define make-link
@@ -722,9 +725,10 @@ ifdef libc.so-version
 # libc.so	->	libc.so.N	(e.g. libc.so.6)
 # libc.so.6	->	libc-VERSION.so	(e.g. libc-1.10.so)
 
-$(inst_slibdir)/libc.so$(libc.so-version): $(inst_slibdir)/libc-$(version).so
+$(inst_slibdir)/libc.so$(libc.so-version): $(inst_slibdir)/libc-$(version).so \
+					   $(+force)
 	$(make-shlib-link)
-$(inst_slibdir)/libc-$(version).so: $(common-objpfx)libc.so
+$(inst_slibdir)/libc-$(version).so: $(common-objpfx)libc.so $(+force)
 	$(do-install-program)
 install: $(inst_slibdir)/libc.so$(libc.so-version)
 
@@ -736,7 +740,8 @@ ifndef subdir
 install: $(inst_libdir)/libc.so
 $(inst_libdir)/libc.so: $(common-objpfx)libc.so$(libc.so-version) \
 			$(inst_libdir)/$(patsubst %,$(libtype.oS),\
-						  $(libprefix)$(libc-name))
+						  $(libprefix)$(libc-name)) \
+			$(+force)
 	(echo '/* GNU ld script';\
 	 echo '   Use the shared library, but some functions are only in';\
 	 echo '   the static library, so try that secondarily.  */';\
@@ -750,7 +755,7 @@ endif
 
 else
 install: $(inst_slibdir)/libc.so
-$(inst_slibdir)/libc.so: $(common-objpfx)libc.so
+$(inst_slibdir)/libc.so: $(common-objpfx)libc.so $(+force)
 	$(do-install-program)
 endif
 
@@ -758,7 +763,7 @@ ifneq (,$(versioned))
 # Produce three sets of rules as above for all the smaller versioned libraries.
 
 define o-iterator-doit
-$(inst_libdir)/$o: $(inst_slibdir)/$o$($o-version); $$(make-link)
+$(inst_libdir)/$o: $(inst_slibdir)/$o$($o-version) $(+force); $$(make-link)
 endef
 object-suffixes-left := $(versioned)
 include $(o-iterator)
@@ -775,28 +780,30 @@ generated += $(foreach o,$(versioned),$o$($o-version))
 
 ifeq (,$($(subdir)-version))
 define o-iterator-doit
-$(inst_slibdir)/$o$($o-version): $(inst_slibdir)/$(o:.so=)-$(version).so;
+$(inst_slibdir)/$o$($o-version): $(inst_slibdir)/$(o:.so=)-$(version).so \
+				 $(+force);
 	$$(make-shlib-link)
 endef
 object-suffixes-left := $(versioned)
 include $(o-iterator)
 
 define o-iterator-doit
-$(inst_slibdir)/$(o:.so=)-$(version).so: $(objpfx)$o; $$(do-install-program)
+$(inst_slibdir)/$(o:.so=)-$(version).so: $(objpfx)$o $(+force);
+	$$(do-install-program)
 endef
 object-suffixes-left := $(versioned)
 include $(o-iterator)
 else
 define o-iterator-doit
 $(inst_slibdir)/$o$($o-version): \
-  $(inst_slibdir)/$(o:.so=)-$($(subdir)-version).so;
+  $(inst_slibdir)/$(o:.so=)-$($(subdir)-version).so $(+force);
 	$$(make-shlib-link)
 endef
 object-suffixes-left := $(versioned)
 include $(o-iterator)
 
 define o-iterator-doit
-$(inst_slibdir)/$(o:.so=)-$($(subdir)-version).so: $(objpfx)$o;
+$(inst_slibdir)/$(o:.so=)-$($(subdir)-version).so: $(objpfx)$o $(+force);
 	$$(do-install-program)
 endef
 object-suffixes-left := $(versioned)
@@ -812,24 +819,27 @@ endef
 
 so-versions := $(sort $(foreach so,$(install-lib.so),.so$($(so)-version)))
 $(foreach v,$(so-versions),\
-	  $(inst_slibdir)/lib$(libprefix)%$v): $(common-objpfx)lib%.so
+	  $(inst_slibdir)/lib$(libprefix)%$v): $(common-objpfx)lib%.so \
+					       $(+force)
 	$(do-install-so)
 $(foreach v,$(so-versions),\
-	  $(inst_slibdir)/$(libprefix)%$v): $(common-objpfx)%.so
+	  $(inst_slibdir)/$(libprefix)%$v): $(common-objpfx)%.so $(+force)
 	$(do-install-so)
 endif
 
 ifdef install-bin
-$(addprefix $(inst_bindir)/,$(install-bin)): $(inst_bindir)/%: $(objpfx)%
+$(addprefix $(inst_bindir)/,$(install-bin)): \
+    $(inst_bindir)/%: $(objpfx)% $(+force)
 	$(do-install-program)
 endif
 ifdef install-rootsbin
-$(addprefix $(inst_rootsbindir)/,$(install-rootsbin)):
-   $(inst_rootsbindir)/%: $(objpfx)%
+$(addprefix $(inst_rootsbindir)/,$(install-rootsbin)): \
+   $(inst_rootsbindir)/%: $(objpfx)% $(+force)
 	$(do-install-program)
 endif
 ifdef install-sbin
-$(addprefix $(inst_sbindir)/,$(install-sbin)): $(inst_sbindir)/%: $(objpfx)%
+$(addprefix $(inst_sbindir)/,$(install-sbin)): \
+    $(inst_sbindir)/%: $(objpfx)% $(+force)
 	$(do-install-program)
 endif
 ifdef install-lib
@@ -837,23 +847,23 @@ install-lib.a := $(filter lib%.a,$(install-lib))
 install-lib-non.a := $(filter-out lib%.a,$(install-lib))
 ifdef install-lib-non.a
 $(addprefix $(inst_libdir)/$(libprefix),$(install-lib-non.a)): \
-  $(inst_libdir)/$(libprefix)%: $(objpfx)%
+  $(inst_libdir)/$(libprefix)%: $(objpfx)% $(+force)
 	$(do-install)
 endif
 ifdef install-lib.a
 $(install-lib.a:lib%.a=$(inst_libdir)/lib$(libprefix)%.a): \
-  $(inst_libdir)/lib$(libprefix)%.a: $(objpfx)lib%.a
+  $(inst_libdir)/lib$(libprefix)%.a: $(objpfx)lib%.a $(+force)
 	$(do-install)
 	$(patsubst %,$(RANLIB) $@,$(filter-out $(non-lib.a),$(<F)))
 endif
 endif
 ifdef install-data
-$(addprefix $(inst_datadir)/,$(install-data)): $(inst_datadir)/%: %;
+$(addprefix $(inst_datadir)/,$(install-data)): $(inst_datadir)/%: % $(+force)
 	$(do-install)
 endif
 headers := $(strip $(headers))
 ifdef headers
-$(addprefix $(inst_includedir)/,$(headers)): $(inst_includedir)/%: %;
+$(addprefix $(inst_includedir)/,$(headers)): $(inst_includedir)/%: % $(+force)
 	$(do-install)
 endif	# headers