From 6ef9f70bdbe3fdb7b16d7c9726e624700d774136 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 4 Jul 1998 10:17:03 +0000 Subject: [PATCH] [versioning=yes]: Build the mapfiles with a pattern 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 | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index c36f1acf59..ea36637def 100644 --- 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