[versioning=yes]: Build the mapfiles with a pattern
authordrepper <drepper>
Sat, 4 Jul 1998 10:17:03 +0000 (10:17 +0000)
committerdrepper <drepper>
Sat, 4 Jul 1998 10:17:03 +0000 (10:17 +0000)
rule that lists all of them as targets.
(sysd-versions): Depend only on Versions.def.  Write a Makefile fragment that
defines $(vers-libs) based on contents of that file; then include it.
(lib-noranlib): Depend on lib-mapfiles not sysd-versions.
(lib-mapfiles): New target, depends on sysd-versions and $(vers-libs).
Predicate all this on avoid-generated unset as well as versioning.

Makefile

index c36f1ac..ea36637 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -78,7 +78,7 @@ install-others += $(inst_includedir)/gnu/lib-names.h
 endif
 
 ifeq ($(versioning),yes)
-lib-noranlib: $(common-objpfx)sysd-versions
+lib-noranlib: lib-mapfiles
 endif
 
 include Makerules
@@ -318,10 +318,22 @@ remove-old-headers:
 
 # Generate version maps.
 ifeq ($(versioning),yes)
-$(common-objpfx)sysd-versions: versions.awk \
-                              $(wildcard $(all-subdirs:%=%/Versions)) \
-                              $(wildcard $(+sysdep_dirs:%=%/Versions))
+ifndef avoid-generated
+$(common-objpfx)sysd-versions: Versions.def
+       (echo define vers-libs; \
+       sed -n 's/\(lib[a-zA-Z0-9_][a-zA-Z0-9_]*\) {/$$(common-objpfx)\1%map/p' $<; \
+       echo endef) > $@T
+       mv -f $@T $@
+-include $(common-objpfx)sysd-versions
+vers-libs := $(subst $(\n), ,$(vers-libs))
+
+$(vers-libs): versions.awk \
+              $(wildcard $(subdirs:%=%/Versions)) \
+              $(wildcard $(+sysdep_dirs:%=%/Versions))
        $(AWK) -v 'buildroot=$(common-objpfx)' -f $^
-       rm -f $@
-       echo > $@
+
+lib-mapfiles: $(common-objpfx)sysd-versions $(subst %,.,$(vers-libs))
+else
+lib-mapfiles:
+endif
 endif