diff options
-rw-r--r-- | ChangeLog | 13 | ||||
-rw-r--r-- | Makefile | 63 | ||||
-rw-r--r-- | Makerules | 3 |
3 files changed, 40 insertions, 39 deletions
diff --git a/ChangeLog b/ChangeLog index ebae859280..7a6136b73e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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. diff --git a/Makefile b/Makefile index 6a384ade3c..61cfa436c4 100644 --- a/Makefile +++ b/Makefile @@ -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 - -tag-of-stem = glibc-$(subst .,_,$*) -dist-selector = -r $(tag-of-stem) - -# 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 +files-for-dist := README FAQ INSTALL NOTES configure ChangeLog NEWS + +# 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 }' + +%.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 $@ diff --git a/Makerules b/Makerules index ab36e2f178..43fa5a701b 100644 --- a/Makerules +++ b/Makerules @@ -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. |