From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2693 invoked by alias); 29 Nov 2010 21:45:28 -0000 Received: (qmail 2685 invoked by uid 22791); 29 Nov 2010 21:45:27 -0000 X-SWARE-Spam-Status: No, hits=-0.2 required=5.0 tests=AWL,BAYES_50,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from fencepost.gnu.org (HELO fencepost.gnu.org) (140.186.70.10) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 29 Nov 2010 21:45:21 +0000 Received: from ams by fencepost.gnu.org with local (Exim 4.69) (envelope-from ) id 1PNBXC-0000ZZ-1d for libc-ports@sourceware.org; Mon, 29 Nov 2010 16:45:18 -0500 From: ams@gnu.org (Alfred M. Szmidt) To: libc-ports@sourceware.org Subject: make dist in glibc-ports Reply-to: ams@gnu.org Message-Id: Date: Mon, 29 Nov 2010 21:45:00 -0000 X-IsSubscribed: yes Mailing-List: contact libc-ports-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: libc-ports-owner@sourceware.org X-SW-Source: 2010-11/txt/msg00022.txt.bz2 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 $<