# $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 # 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 \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