summaryrefslogtreecommitdiff
path: root/maintMakefile.in
diff options
context:
space:
mode:
authorDongHun Kwak <dh0128.kwak@samsung.com>2016-05-20 09:13:48 +0900
committerDongHun Kwak <dh0128.kwak@samsung.com>2016-05-20 09:38:36 +0900
commit1a6845fe87f1460429b2ee184b2e6725f5dd86e6 (patch)
tree77241656ae01628db91095cfd3e18c919c230a9b /maintMakefile.in
parent62589b5e2bd0b8188a5843ab85f0af386240c772 (diff)
downloadwhich-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.in197
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