Skip to content

Commit

Permalink
New simplified make dist using git archive.
Browse files Browse the repository at this point in the history
(cherry picked from commit 6cfe860)
  • Loading branch information
Roland McGrath authored and Andreas Schwab committed Nov 16, 2009
1 parent 6c7deb9 commit 56ddc4b
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 39 deletions.
13 changes: 13 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -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
Expand Down
63 changes: 25 additions & 38 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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 $@
Expand Down
3 changes: 2 additions & 1 deletion Makerules
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -1335,6 +1335,7 @@ echo-headers:

%.bz2: %; bzip2 -9vk $<
%.gz: %; gzip -9vnc $< > $@.new && mv -f $@.new $@
%.xz: %; xz -9evk $<

# Common cleaning targets.

Expand Down

0 comments on commit 56ddc4b

Please sign in to comment.