New simplified make dist using git archive.

This commit is contained in:
Roland McGrath 2009-10-28 15:27:43 -07:00
parent 25db0f6ca9
commit 6cfe8609b8
3 changed files with 38 additions and 37 deletions

View File

@ -1,3 +1,16 @@
2009-10-28 Roland McGrath <roland@redhat.com>
* Makefile (dist-prepare): New target.
(tag-for-dist): Target removed.
(glibc-%.tar): Pattern rule removed.
(%.tar): New pattern rule, does simple use of git archive.
(dist-version): Remove variable definition.
(dist): Just depend on that. Add .tar.xz dependency.
If dist-version variable not set on command line, depend on
dist-prepare, re-invoke with dist-version set via git describe.
* Makerules (%.xz): New pattern rule.
2009-10-28 Alan Modra <amodra@bigpond.net.au>
* elf/ifuncdep2.c: Include ifunc-sel.h.

View File

@ -347,51 +347,38 @@ TAGS:
| $(ETAGS) -o $@ -
# Make the distribution tarfile.
.PHONY: dist tag-for-dist
.PHONY: dist dist-prepare
generated := $(generated) stubs.h
files-for-dist := README FAQ INSTALL NOTES configure
files-for-dist := README FAQ INSTALL NOTES configure ChangeLog NEWS
tag-of-stem = glibc-$(subst .,_,$*)
dist-selector = -r $(tag-of-stem)
# Regenerate stuff, then error if these things are not committed yet.
dist-prepare: $(files-for-dist)
conf=`find sysdeps $(addsuffix /sysdeps,$(sysdeps-add-ons)) \
-name configure`; \
$(MAKE) $$conf && \
git diff --stat HEAD -- $^ $$conf \
| $(AWK) '{ print; rc=1 } END { exit rc }'
# Add-ons in the main repository but distributed in their own tar files.
dist-separate = libidn
glibc-%.tar $(dist-separate:%=glibc-%-%.tar): $(files-for-dist) \
$(foreach D,$(dist-separate),\
$D/configure)
@rm -fr glibc-$*
$(MAKE) -q `find sysdeps $(addsuffix /sysdeps,$(sysdeps-add-ons)) \
-name configure`
cvs $(CVSOPTS) -Q export -d glibc-$* $(dist-selector) libc
# Touch all the configure scripts going into the tarball since cvs export
# might have delivered configure.in newer than configure.
find glibc-$* -name configure -print | xargs touch
$(dist-do-separate-dirs)
tar cf glibc-$*.tar glibc-$*
rm -fr glibc-$*
define dist-do-separate-dirs
$(foreach dir,$(dist-separate),
@rm -fr glibc-$(dir)-$*
mv glibc-$*/$(dir) glibc-$(dir)-$*
tar cf glibc-$(dir)-$*.tar glibc-$(dir)-$*
rm -fr glibc-$(dir)-$*
)
endef
%.tar: FORCE
git archive --prefix=$*/ $* > $@.new
mv -f $@.new $@
# Do `make dist dist-version=X.Y.Z' to make tar files of an older version.
dist-version = $(version)
dist: $(foreach Z,.bz2 .gz,glibc-$(dist-version).tar$Z \
$(foreach D,$(dist-separate),\
glibc-$D-$(dist-version).tar$Z))
ifneq (,$(strip $(dist-version)))
dist: $(foreach Z,.bz2 .gz .xz,$(dist-version).tar$Z)
md5sum $^
tag-for-dist: tag-$(dist-version)
tag-%: $(files-for-dist)
cvs $(CVSOPTS) -Q tag -c $(tag-of-stem)
else
dist: dist-prepare
@if v=`git describe`; then \
echo Distribution version $$v; \
$(MAKE) dist dist-version=$$v; \
else \
false; \
fi
endif
define format-me
@rm -f $@

View File

@ -1,4 +1,4 @@
# Copyright (C) 1991-2006, 2007, 2008 Free Software Foundation, Inc.
# Copyright (C) 1991-2006,2007,2008,2009 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@ -1335,6 +1335,7 @@ echo-headers:
%.bz2: %; bzip2 -9vk $<
%.gz: %; gzip -9vnc $< > $@.new && mv -f $@.new $@
%.xz: %; xz -9evk $<
# Common cleaning targets.