aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2004-10-23 04:07:06 +0000
committerRoland McGrath <roland@gnu.org>2004-10-23 04:07:06 +0000
commit556e06df466df56066f7154ea6c14dd4b3193ea4 (patch)
tree1d6c61db87b13347f7ca7b74159093b926fb7f80
parent3696a6e9f1ec36503443e0d322060b9fc6878a49 (diff)
downloadglibc-556e06df466df56066f7154ea6c14dd4b3193ea4.tar.xz
glibc-556e06df466df56066f7154ea6c14dd4b3193ea4.zip
2004-10-22 Roland McGrath <roland@frob.com>
* Makefile (dist, dist-ports): New target. (dist-port-%): New pattern rule. * Makeconfig [!subdir] (ports/%): New pattern rule.
-rw-r--r--Makeconfig6
-rw-r--r--Makefile35
2 files changed, 41 insertions, 0 deletions
diff --git a/Makeconfig b/Makeconfig
index 20a0f08cca..92158bef1c 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -33,3 +33,9 @@ $(..)ports/sysdeps/%/preconfigure: $(..)ports/sysdeps/%/preconfigure.in \
$(autoconf-it)
endif # $(AUTOCONF) = no
+
+# This allows e.g. `make ports/dist' from a build directory.
+ifndef subdir
+ports/%:
+ $(MAKE) $(PARALLELMFLAGS) -C $(@D) $(@F)
+endif
diff --git a/Makefile b/Makefile
index 463f278b2c..a65257be82 100644
--- a/Makefile
+++ b/Makefile
@@ -4,3 +4,38 @@
subdir = ports
include ../Rules
+
+.PHONY: dist dist-ports
+dist: dist-ports
+
+# Do `make dist dist-version=X.Y.Z' to make tar files of an older version.
+dist-version = $(version)
+# Also try 'dist-tag=some="-r TAG"' (or -D DATE) to get some tag rather
+# than the release tag for X.Y.Z.
+dist-tag = -r glibc-$(subst .,_,$(dist-version))
+
+distname = glibc-ports-$(dist-version)
+
+do-export = cvs $(CVSOPTS) -Q export -d $(basename $@) $(dist-tag)
+
+dist-ports: $(foreach Z,.bz2 .gz,$(distname).tar$Z)
+ md5sum $^
+$(distname).tar:
+ @rm -fr $(basename $@)
+ $(do-export) ports
+ tar cf $@ $(basename $@)
+ rm -fr $(basename $@)
+
+.PRECIOUS: %.gz %.bz2 # Don't delete output as intermediate files.
+dist-port-%: $(foreach Z,.bz2 .gz,glibc-port-%-$(dist-version).tar$Z)
+ md5sum $^
+glibc-port-%-$(dist-version).tar: configure ChangeLog
+ @rm -fr $(basename $@)
+ $(do-export) -l ports
+ rm -f $(basename $@)/ChangeLog.[a-z]*
+ $(do-export) ports/ChangeLog.$* \
+ ports/sysdeps/$* ports/sysdeps/unix/sysv/linux/$*
+ mv $(basename $@)/ports/* $(basename $@)/
+ rmdir $(basename $@)/ports
+ tar cf $@ $(basename $@)
+ rm -fr $(basename $@)