This is the mail archive of the
libc-ports@sources.redhat.com
mailing list for the libc-ports project.
make dist in glibc-ports
- From: ams at gnu dot org (Alfred M. Szmidt)
- To: libc-ports at sourceware dot org
- Date: Mon, 29 Nov 2010 16:45:18 -0500
- Subject: make dist in glibc-ports
- Reply-to: ams at gnu dot org
Hi,
seems I already wrote this a long time ago and didn't notice, what do
people think? I'll whip up a ChangeLog and send something that can be
commited by someone.
--- a/Makefile
+++ b/Makefile
@@ -1,43 +1,33 @@
# This makefile is not used by the glibc build process.
# It's purely for making ports tarballs.
-.PHONY: dist dist-ports
-dist: dist-ports
+.PHONY: dist dist-prepare
-# 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)
+# Regenerate stuff, then error if these things are not committed yet.
+dist-prepare: ChangeLog
+ conf=`find sysdeps -name configure`; \
+ $(MAKE) $$conf && \
+ git diff --stat HEAD -- $^ $$conf \
+ | awk '{ print; rc=1 } END { exit rc }'
-dist-ports: $(foreach Z,.bz2 .gz,$(distname).tar$Z)
- md5sum $^
-$(distname).tar:
- @rm -fr $(basename $@)
- $(MAKE) -q `find sysdeps -name configure`
- $(do-export) ports
- find $(basename $@) -name configure -print | xargs touch
- tar cf $@ $(basename $@)
- rm -fr $(basename $@)
-
-sysdeps-of-stem = sysdeps/$* sysdeps/unix/sysv/linux/$*
+%.tar:
+ git archive --prefix=$*/ $(subst glibc-ports,glibc,$*) > $@.new
+ mv -f $@.new $@
-.PRECIOUS: %.gz %.bz2 # Don't delete output as intermediate files.
-dist-port-%: $(foreach Z,.bz2 .gz,glibc-port-%-$(dist-version).tar$Z)
+# Do `make dist dist-version=X.Y.Z' to make tar files of an older version.
+ifneq (,$(strip $(subst glibc,glibc-ports,$(dist-version))))
+dist: $(foreach Z,.bz2 .gz .xz,$(subst glibc,glibc-ports,$(dist-version)).tar$Z)
md5sum $^
-glibc-port-%-$(dist-version).tar: ChangeLog.%
- @rm -fr $(basename $@)
- $(MAKE) -q `find $(sysdeps-of-stem) -name configure`
- $(do-export) ports/ChangeLog.$* $(addprefix ports/,$(sysdeps-of-stem))
- mv $(basename $@)/ports/* $(basename $@)/
- rmdir $(basename $@)/ports
- find $(basename $@) -name configure -print | xargs touch
- tar cf $@ $(basename $@)
- rm -fr $(basename $@)
+else
+dist: dist-prepare
+ @if v=`git describe`; then \
+ echo Distribution version $$v; \
+ $(MAKE) dist dist-version=$$v; \
+ else \
+ false; \
+ fi
+endif
%.bz2: %; bzip2 -9vk $<
%.gz: %; gzip -9vnc $< > $@.new && mv -f $@.new $@
+%.xz: %; xz -9evk $<