summary refs log tree commit diff
path: root/Makeconfig
diff options
context:
space:
mode:
Diffstat (limited to 'Makeconfig')
-rw-r--r--Makeconfig19
1 files changed, 11 insertions, 8 deletions
diff --git a/Makeconfig b/Makeconfig
index 5a0e4d6b16..b6df6dbfa7 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -725,14 +725,15 @@ $(common-objpfx)soversions.i: $(..)shlib-versions $(..)Makeconfig \
 	  done > $@T; exit 0
 	mv -f $@T $@
 $(common-objpfx)soversions.mk: $(common-objpfx)soversions.i
-	while read lib number setname; do \
-	  case $$number in \
-	    [0-9]*) echo "$$lib.so-version=.$$number"; \
-		    echo "all-sonames+=$$lib=$$lib.so\$$($$lib.so-version)";;\
-	    *)	    echo "$$lib.so-version=$$number"; \
-		    echo "all-sonames+=$$lib=\$$($$lib.so-version)";;\
-	  esac; \
-	done < $< > $@T; exit 0
+	(while read lib number setname; do \
+	   case $$number in \
+	     [0-9]*) echo "$$lib.so-version=.$$number"; \
+		     echo "all-sonames+=$$lib=$$lib.so\$$($$lib.so-version)";;\
+	     *)	     echo "$$lib.so-version=$$number"; \
+		     echo "all-sonames+=$$lib=\$$($$lib.so-version)";;\
+	   esac; \
+	 done; \
+	 echo soversions.mk-done = t;) < $< > $@T; exit 0
 	mv -f $@T $@
 endif
 endif
@@ -742,6 +743,7 @@ postclean-generated += soversions.mk
 # Generate the header containing the names of all shared libraries.
 # We use a stamp file to avoid uncessary recompilations.
 before-compile += $(common-objpfx)gnu/lib-names.h
+ifeq ($(soversions.mk-done),t)
 $(common-objpfx)gnu/lib-names.h: $(common-objpfx)gnu/lib-names.stmp; @:
 $(common-objpfx)gnu/lib-names.stmp: $(common-objpfx)soversions.mk
 	$(make-target-directory)
@@ -770,6 +772,7 @@ $(common-objpfx)gnu/lib-names.stmp: $(common-objpfx)soversions.mk
 	 echo '#endif	/* gnu/lib-names.h */';) > ${@:stmp=T}
 	$(move-if-change) ${@:stmp=T} ${@:stmp=h}
 	touch $@
+endif
 
 common-generated += gnu/lib-names.h gnu/lib-names.stmp