diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2016-05-20 09:13:48 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2016-05-20 09:38:36 +0900 |
commit | 1a6845fe87f1460429b2ee184b2e6725f5dd86e6 (patch) | |
tree | 77241656ae01628db91095cfd3e18c919c230a9b /maintMakefile.in | |
parent | 62589b5e2bd0b8188a5843ab85f0af386240c772 (diff) | |
download | which-1a6845fe87f1460429b2ee184b2e6725f5dd86e6.tar.gz which-1a6845fe87f1460429b2ee184b2e6725f5dd86e6.tar.bz2 which-1a6845fe87f1460429b2ee184b2e6725f5dd86e6.zip |
Imported Upstream version 2.17upstream/2.17upstream
Change-Id: I8df49f3aee42bb1d89895375d741d7d277c01354
Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
Diffstat (limited to 'maintMakefile.in')
-rw-r--r-- | maintMakefile.in | 197 |
1 files changed, 197 insertions, 0 deletions
diff --git a/maintMakefile.in b/maintMakefile.in new file mode 100644 index 0000000..535791b --- /dev/null +++ b/maintMakefile.in @@ -0,0 +1,197 @@ +#============================================================================= +# +# Maintainer stuff; don't even LOOK at this - and when you E-mail me +# about it you'll get blacklisted }:-). +# +# I added it only here for other GNU maintainers to look at. +# In order to use this as-is, you'll need the following utilities: +# +# GNU make +# GNU which-2.x +# GNU awk +# GNU date +# GNU groff +# rpm-4.x +# texinfo2man.c (I'll make this available via my home page) +# texi2html +# cvs2html +# rcs2log +# cut +# grep +# egrep +# test +# sed +# head +# tail +# +# This maintainer Makefile provides the following functionality: +# +# Targets +# ------- +# +# - release +# Creates everything and puts it all in the release directory $(WWWDIR) +# This target calls all of the below targets. +# Note: You must `cvs commit' *before* calling this target! +# +# The remaining targets can be used to test a part of the distribution process, +# but are not really useful on their own otherwise. +# +# - cvslog +# Generates html-ized ChangeLog from the CVS repository log. +# +# - html +# Generates html-ized man page(s) (from @PACKAGE@.texinfo) and +# the release front page index.html. index.html is generated by +# replacing "!VERSION!" in index.html.in by @VERSION@ and the +# word "CHANGELOGLIST" by a list of links the cvslog change logs +# (also from previous releases). +# +# - @PACKAGE@.lsm +# Generates an LSM file for distribution via the web page. +# It does this by simply replacing "!VERSION!" by @VERSION@. +# +# - rpm +# Generates the $(TARGET).rpm and src.rpm files. +# This target calls all of the below targets. +# +# - $(SPECFILE) +# Generates the rpm spec file from the file `$(SPECFILE).in' by +# replacing "!VERSION!" by @VERSION@ and "!CHANGELOG!" by an +# rpm %changelog list generated from the CVS repository log. +# +# - README +# Generate README file by replacing "!VERSION!" in README.in by +# @VERSION@. +# +# - @PACKAGE@.1 +# Generate man page from @PACKAGE@.texinfo. +# +# - ChangeLog +# Generates the `ChangeLog' file from the CVS repository logs. + +WWWDIR=/home/carlo/www/@PACKAGE@ +REDHAT:=$(shell grep '^%_topdir' rpm/macros | cut -d \ -f 2) +SPECFILE=@PACKAGE@-${shell echo "@VERSION@" | cut -d. -f1}.spec +RPMDIR=$(top_builddir)/rpm +TARGET=i386 +REL=1 +AUTHOR=Carlo Wood <carlo@gnu.org> +TAG:=${shell echo "V@VERSION@" | sed -e 's/\./_/g'} +PREVTAG:=${shell test -f .prevtag && cat .prevtag} +CVSREADACCESS:=${shell if test -f $(srcdir)/CVS/Entries; then echo "yes"; else echo "no"; fi} + +test-values: + @echo "WWWDIR = \"$(WWWDIR)\"" + @echo "REDHAT = \"$(REDHAT)\"" + @echo "SPECFILE = \"$(SPECFILE)\"" + @echo "TARGET = \"$(TARGET)\"" + @echo "REL = \"$(REL)\"" + @echo "AUTHOR = \"$(AUTHOR)\"" + @echo "TAG = \"$(TAG)\"" + @echo "PREVTAG = \"$(PREVTAG)\"" + @echo "PACKAGE = \"@PACKAGE@\"" + @echo "VERSION = \"@VERSION@\"" + @echo "CVSREADACCESS = \"$(CVSREADACCESS)\"" + +## Make sure the ChangeLog is up to date in maintainer mode +.PHONY: release tar rpm cvslog html ChangeLog + +@PACKAGE@.1: @PACKAGE@.1.in @PACKAGE@.texinfo texinfo2man configure.ac + ./texinfo2man @PACKAGE@.1.in @PACKAGE@.texinfo > @PACKAGE@.1 + +texinfo2man: ../indent/texinfo2man.c + $(CC) -g -o texinfo2man ../indent/texinfo2man.c + +@PACKAGE@.lsm: @PACKAGE@.lsm.in configure.ac + sed -e 's%!VERSION!%'`grep 's,@VERSION' config.status | cut -d, -f3`'%g' @PACKAGE@.lsm.in > @PACKAGE@.lsm + +rpm: dist $(SPECFILE) $(LSMFILE) + mv @PACKAGE@-@VERSION@.tar.gz $(RPMDIR)/SOURCES + cd rpm; rpmbuild --rcfile=/usr/lib/rpm/rpmrc:rpmrc --sign --clean -ba ../$(SPECFILE) + +reconfig: $(top_builddir)/config.status + $(top_builddir)/config.status --recheck + $(top_builddir)/config.status + +cvslog: + @( \ + D1=`cat .release_second`; \ + D2=`date +%s`; \ + DD=`echo "$$D1 $$D2" | awk '{ printf("%d\n", ($$2 - $$1)/86400) }'`; \ + echo "Last release was $$DD days ago."; \ + cvs2html -e -r$(PREVTAG):HEAD -o cvslog-@VERSION@; \ + ) + +$(SPECFILE): $(SPECFILE).in configure.ac + 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(" $(AUTHOR)\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: + if test $(CVSREADACCESS) = yes; then \ + echo "`which --skip-dot cvs` \`echo \"\$$*\" | sed -e 's%1970%1990%'\`" > cvs; \ + chmod 755 cvs; \ + here=`pwd`; \ + (cd $(srcdir); PATH="$$here:$$PATH" rcs2log) > ChangeLog; \ + rm cvs; \ + else \ + touch ChangeLog; \ + fi + +release: cvslog html @PACKAGE@.lsm NEWS + #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 `ls cvslog-@VERSION@*.html | grep -v cvslog-@VERSION@_rpm` $(WWWDIR) + #install -m 644 @PACKAGE@*.html $(WWWDIR) + install -m 644 NEWS $(WWWDIR) + rm cvslog-@VERSION@*.html + cvs tag $(TAG) + echo "$(TAG)" > .prevtag + date +%s > .release_second + +##----------------------------------------------------------------------------- +## `which' specific generation: + +html: index.html.in configure.ac + grep -B2000 '^CHANGELOGLIST' index.html.in \ + | sed -e 's%!VERSION!%@VERSION@%g' \ + | grep -v '^CHANGELOGLIST' > index.html + ( \ + VER=`echo "@VERSION@" | cut -d. -f1`; \ + PATCHLEVEL=`echo "@VERSION@" | cut -d. -f2`; \ + while test "$$PATCHLEVEL" != "-1" ; do \ + echo "<LI><A HREF="cvslog-$$VER.$$PATCHLEVEL.html">Version $$VER.$$PATCHLEVEL</A>" >> index.html; \ + PATCHLEVEL=`echo "$$PATCHLEVEL" | awk '{ printf("%d", $$1 - 1); }'`; \ + done \ + ) + grep -A2000 '^CHANGELOGLIST' index.html.in | grep -v '^CHANGELOGLIST' | grep -B2000 '^MANPAGE' | grep -v '^MANPAGE' >> index.html + groff -man -Tascii which.1 | sed -e 's/.//g' | head -n 61 | tail -n 58 >> index.html + groff -man -Tascii which.1 | sed -e 's/.//g' | head -n 123 | tail -n 51 | grep -B2000 '^ ' >> index.html + grep -A2000 '^MANPAGE' index.html.in | grep -v '^MANPAGE' | grep -B2000 '^EXAMPLES' | grep -v '^EXAMPLES' >> index.html + cat EXAMPLES >> index.html + grep -A2000 '^EXAMPLES' index.html.in | grep -v '^EXAMPLES' >> index.html + +EXAMPLES: which + ( cd test; ./whichtest check; ) || exit -1; + ( cd test; ./whichtest generate; ) + +README: which.1 README.in configure.ac + sed -e 's%!VERSION!%'`grep 's,@VERSION' config.status | cut -d, -f3`'%g' README.in > README + groff -man -Tascii which.1 | sed -e 's/.//g' | head -n 61 | tail -n 58 >> README + groff -man -Tascii which.1 | sed -e 's/.//g' | head -n 123 | tail -n 51 | grep -B2000 '^ ' >> README |