summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>2009-10-28 15:27:43 -0700
committerAndreas Schwab <schwab@redhat.com>2009-11-16 17:58:50 +0100
commit56ddc4bb74c8ab22c93f6e1a75d93afd9782ebce (patch)
treeebd2864d969c5f219d603bc1b79e76ce2e00ac7a
parent6c7deb9def4134856b0aded540bfe2eec9fded4b (diff)
New simplified make dist using git archive.
(cherry picked from commit 6cfe8609b890f33e6c7235549cb02c3c6a0f3820)
-rw-r--r--ChangeLog13
-rw-r--r--Makefile63
-rw-r--r--Makerules3
3 files changed, 40 insertions, 39 deletions
diff --git a/ChangeLog b/ChangeLog
index b46fed2983..ceaf5fb7d3 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-11-03 Andreas Schwab <schwab@redhat.com>
* sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list: Add
diff --git a/Makefile b/Makefile
index cab5ff3a17..3908049c7d 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.