* Makeconfig (soversions.i): New target, input-reading parts of

soversions.mk generation moved here; result is a canonicalized
	list "LIB VERSION [SET]" for this configuration.
	(soversions.mk): Use that as input.  Don't emit map-firstversions.
	* Makerules (version-renames.def): New target, generated from
	soversions.i with contents that was in $(map-firstversions).
	(Versions.all): Don't depend on soversions.mk, depend on
	version-renames.def instead; just cat it into the input.
This commit is contained in:
Roland McGrath 2000-03-19 23:33:48 +00:00
parent 6b3c3a3525
commit ba7e89ec33
3 changed files with 43 additions and 35 deletions

View file

@ -1,5 +1,14 @@
2000-03-19 Roland McGrath <roland@baalperazim.frob.com> 2000-03-19 Roland McGrath <roland@baalperazim.frob.com>
* Makeconfig (soversions.i): New target, input-reading parts of
soversions.mk generation moved here; result is a canonicalized
list "LIB VERSION [SET]" for this configuration.
(soversions.mk): Use that as input. Don't emit map-firstversions.
* Makerules (version-renames.def): New target, generated from
soversions.i with contents that was in $(map-firstversions).
(Versions.all): Don't depend on soversions.mk, depend on
version-renames.def instead; just cat it into the input.
* Makerules (Versions.all): Use $(foreach ...) instead of sh for loop * Makerules (Versions.all): Use $(foreach ...) instead of sh for loop
for $(map-firstversions), which better handles it being empty. for $(map-firstversions), which better handles it being empty.

View file

@ -676,36 +676,32 @@ ifeq (yes, $(build-shared))
ifeq ($(sysd-sorted-done),t) ifeq ($(sysd-sorted-done),t)
-include $(common-objpfx)soversions.mk -include $(common-objpfx)soversions.mk
ifndef avoid-generated ifndef avoid-generated
$(common-objpfx)soversions.mk: $(..)shlib-versions $(..)Makeconfig \ $(common-objpfx)soversions.i: $(..)shlib-versions $(..)Makeconfig \
$(wildcard $(patsubst %, $(..)%/shlib-versions,\ $(wildcard $(patsubst %, $(..)%/shlib-versions,\
$(add-ons) \ $(add-ons) \
$(subdirs))) \ $(subdirs))) \
$(common-objpfx)config.make $(common-objpfx)config.make
(file="$(wildcard $(patsubst %,$(..)%/shlib-versions,$(add-ons))) \ sed -e 's/#.*$$//;s/^[ ]*%/#/' \
$(wildcard $(patsubst %,$(..)%/shlib-versions,$(subdirs))) \ $(filter-out $(..)Makeconfig $(common-objpfx)config.make,$^) \
$(..)shlib-versions"; \ | $(CC) -include $(common-objpfx)config.h -E -x c - \
for f in $$file; do \ | while read conf version setname; do \
sed 's/#.*$$//;s/^[ ]*%/#/' $$f \ test -n "$$version" && \
| $(CC) -include $(common-objpfx)config.h -E -x c - \ test `expr '$(config-machine)-$(config-vendor)-$(config-os)' \
| while read conf version setname; do \ : "$$conf"` != 0 || continue; \
test -n "$$version" && \ lib=`echo $$version | sed 's/=.*$$//'`; \
test `expr '$(config-machine)-$(config-vendor)-$(config-os)' \ number=`echo $$version | sed "s/^.*=//"`; \
: "$$conf"` != 0 || continue; \ echo $$lib $$number $$setname; \
lib=`echo $$version | sed 's/=.*$$//'`; \ done > $@T; exit 0
if eval "test -z \"\$$versioners_lib$$lib\""; then \ mv -f $@T $@
eval vers_lib$${lib}=yes; \ $(common-objpfx)soversions.mk: $(common-objpfx)soversions.i
number=`echo $$version | sed "s/^.*=//"`; \ while read lib number setname; do \
case $$number in \ case $$number in \
[0-9]*) echo "$$lib.so-version=.$$number"; \ [0-9]*) echo "$$lib.so-version=.$$number"; \
echo "all-sonames+=$$lib.so\$$($$lib.so-version)";;\ echo "all-sonames+=$$lib.so\$$($$lib.so-version)";;\
*) echo "$$lib.so-version=$$number"; \ *) echo "$$lib.so-version=$$number"; \
echo "all-sonames+=\$$($$lib.so-version)";; \ echo "all-sonames+=\$$($$lib.so-version)";;\
esac; \ esac; \
test -z "$$setname" || \ done < $< > $@T; exit 0
echo "map-firstversions+=$${lib}:$${setname}"; \
fi; \
done; \
done;) > $@T; exit 0
mv -f $@T $@ mv -f $@T $@
endif endif
endif endif

View file

@ -290,13 +290,16 @@ ifneq ($(sysd-versions-subdirs),$(all-subdirs) $(config-sysdirs))
sysd-versions-force = FORCE sysd-versions-force = FORCE
FORCE: FORCE:
endif endif
$(common-objpfx)version-renames.def: $(common-objpfx)soversions.i
while read lib version setname; do \
test -z "$$setname" || echo "$$lib : $$setname"; \
done < $< > $@T; exit 0
mv -f $@T $@
$(common-objpfx)Versions.all: $(..)scripts/firstversions.awk \ $(common-objpfx)Versions.all: $(..)scripts/firstversions.awk \
$(common-objpfx)version-renames.def \
$(..)Versions.def \ $(..)Versions.def \
$(wildcard $(add-ons:%=$(..)%/Versions.def)) \ $(wildcard $(add-ons:%=$(..)%/Versions.def))
$(common-objpfx)soversions.mk cat $(filter-out $<,$^) | LC_ALL=C $(AWK) -f $< > $@T
{ $(foreach map,$(map-firstversions),echo '$(subst :, : ,$(map))';) \
cat $(filter-out $< $(common-objpfx)soversions.mk,$^); \
} | LC_ALL=C $(AWK) -f $< > $@T
mv -f $@T $@ mv -f $@T $@
$(common-objpfx)sysd-versions: $(common-objpfx)Versions.all \ $(common-objpfx)sysd-versions: $(common-objpfx)Versions.all \
$(..)scripts/versions.awk \ $(..)scripts/versions.awk \