# $Id: PTmakefile,v 1.12 2000/07/24 21:26:59 carlo Exp $
#
# ProtoType maintainers makefile
#
# Copyright (C) 1999-2000, by
#
# Carlo Wood, Run on IRC <carlo@alinoe.com>
# RSA-1024 0x624ACAD5 1997-01-26 Sign & Encrypt
# Fingerprint16 = 32 EC A7 B6 AC DB 65 A6 F6 F6 55 DD 1C DC FF 61
#
# All rights reserved.
#
# See the file LICENSE for copyright information.
#
# This file may be distributed under the terms of the Q Public License 1.0
# as defined by Troll Tech AS of Norway and appearing in the file LICENSE.QPL
# included in the packaging of this file.
#
#-----------------------------------------------------------------------------
ifeq (acinclude.m4,$(wildcard acinclude.m4))
ACLOCAL_M4=aclocal.m4
endif
ifeq (Makefile,$(wildcard Makefile))
include Makefile
endif
MAJOR_VERSION:=${shell echo "$(VERSION)" | cut -d. -f1}
MINOR_VERSION:=${shell echo "$(VERSION)" | cut -d. -f2}
TAG:=${shell echo "V$(VERSION)" | sed -e 's/\./_/g'}
LOCAL_FILES=$(EXCLUDE_CVS_FILES) rpm .cvsignore makefile index.html index.html.in $(SPECFILE).in $(PACKAGE).lsm.in
ifeq (Makefile.am,$(wildcard Makefile.am))
GENERATED_FILES=$(srcdir)/config.h.in $(ACLOCAL_M4) configure $(srcdir)/stamp-h.in Makefile.in .deps $(SPECFILE) ChangeLog $(INCLUDE_NON_CVS_FILES)
else
GENERATED_FILES=$(srcdir)/config.h.in $(ACLOCAL_M4) configure $(srcdir)/stamp-h.in $(SPECFILE) ChangeLog $(INCLUDE_NON_CVS_FILES)
endif
PREVTAG=`cat .prevtag`
# Make sure the ChangeLog is up to date
.PHONY: setup-dist release tar rpm cvslog ChangeLog
setup-dist:
autoheader
automake --foreign
aclocal
autoconf
autoheader
configure --enable-maintainer-mode
release: cvslog tar index.html rpm
$(INSTALL) -m 644 $(REDHAT)/SRPMS/$(PACKAGE)-$(VERSION)-$(REL).src.rpm $(WWWDIR)
$(INSTALL) -m 644 $(REDHAT)/RPMS/$(TARGET)/$(PACKAGE)-$(VERSION)-$(REL).$(TARGET).rpm $(WWWDIR)
$(INSTALL) -m 644 $(REDHAT)/SOURCES/$(PACKAGE)-$(VERSION).tar.gz $(WWWDIR)
$(INSTALL) -m 644 index.html $(WWWDIR)
$(INSTALL) -m 644 $(PACKAGE).lsm $(WWWDIR)
$(INSTALL) -m 644 cvslog-$(VERSION)*.html $(WWWDIR)
rm cvslog-$(VERSION)*.html
cvs tag $(TAG)
echo "$(TAG)" > .prevtag
date +%j > .release_day
tar: $(GENERATED_FILES)
rm -rf /tmp/$(PACKAGE)-$(VERSION)
mkdir /tmp/$(PACKAGE)-$(VERSION)
cp -pr $(GENERATED_FILES) /tmp/$(PACKAGE)-$(VERSION)
( for i in `find . -type d ! -name CVS ! -name .deps -print`; do \
files=`grep '^/' $$i/CVS/Entries | sed -e 's%^/%%' -e 's%/.*$$%%'`; \
if [ "$$i" != "." ]; then \
mkdir /tmp/$(PACKAGE)-$(VERSION)/$$i; \
fi; \
for j in $$files; do \
cp -p $$i/$$j /tmp/$(PACKAGE)-$(VERSION)/$$i/$$j; \
done; \
done; \
)
( list='$(LOCAL_FILES)'; for i in $$list; do \
rm -rf /tmp/$(PACKAGE)-$(VERSION)/$$i; \
done; \
)
tar czf $(REDHAT)/SOURCES/$(PACKAGE)-$(VERSION).tar.gz -C /tmp $(PACKAGE)-$(VERSION)
rm -rf /tmp/$(PACKAGE)-$(VERSION)
cvslog:
@( \
D1=`cat .release_day`; \
D2=`date +%j`; \
DD=`echo "$$D1 $$D2" | awk '{ printf("%d\n", $$2 - $$1) }'`; \
echo "Last release was $$DD days ago."; \
cvs2html -e -r$(PREVTAG):HEAD -o cvslog-$(VERSION); \
)
rpm: tar
rpm --rcfile /usr/lib/rpm/rpmrc:rpm/rpmrc --target $(TARGET) --sign --clean -ba $(SPECFILE)
$(SPECFILE): $(SPECFILE).in
cvs commit $(SPECFILE).in
sed -e 's/@VERSION@/$(VERSION)/g' $(SPECFILE).in | grep -B2000 '@CHANGELOG@' | grep -v '@CHANGELOG@' > $(SPECFILE)
echo -n "%changelog" >> $(SPECFILE)
cvs log $(SPECFILE).in | \
grep -A2000 '^-----' | \
egrep -v '^-----|^=====|^revision' | \
awk -F'[ ;]' --assign lastdate="" '{ if ($$0~/^date: /) { \
if (lastdate != $$2) { \
lastdate=$$2; \
printf("\n* "); \
system("echo -n `date --date \""$$2" "$$3"\" \"+%a %b %d %Y\"`"); \
printf(" Carlo Wood <carlo@gnu.org>\n"); \
} \
} else if ($$0~/^[A-Z]/) { printf("- %s\n", $$0); } else if ($$0~/./) { printf(" %s\n", $$0); } else {print} }' >> $(SPECFILE)
grep -A2000 '@CHANGELOG@' $(SPECFILE).in | grep -v '@CHANGELOG@' >> $(SPECFILE)
ChangeLog:
@( echo "/usr/local/bin/cvs \`echo \"\$$*\" | sed -e 's%1970%1990%'\`" > cvs; \
chmod 755 cvs; )
rcs2log > ChangeLog
@rm cvs
syntax highlighted by Code2HTML, v. 0.9.1