# # $Id: Makefile,v 1.36 2019/12/26 19:41:39 craski-shell_86 Exp $ # #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # # Copyright (c) 2016-2017, 2019 Craig R. Skinner # # Permission to use, copy, modify, and distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # .include PROJECT= ungrey-robins VERSION= 0.9.5 RELEASE= ${PROJECT}-${VERSION} DIST_FILE= ${RELEASE}.tar.gz DIST_DIR= /tmp/dist/${RELEASE} CVS_TAG= V_${VERSION:S/./_/g} CRONOWN?= _spamd LOCALBASE?= /usr/local DOCDIR= ${LOCALBASE}/share/doc/${PROJECT} MANDIR= ${LOCALBASE}/man/man MANTITLE= "Postmaster's Manual" all: @false clean: rm pod2htmd.tmp distclean: rm -rf ${DIST_DIR:H}/${DIST_FILE} ${DIST_DIR} dist: cvs_export @cd ${DIST_DIR:H} || exit; \ print "Creating ${DIST_FILE}"; \ tar czf ${DIST_FILE} ${RELEASE} || exit; \ print "Calculating a message digest for ${DIST_FILE}"; \ cksum -b -a cksum,MD5,RMD160,SHA256 -h ${DIST_FILE}.digest ${DIST_FILE} @ls -lh ${DIST_DIR:H}/${DIST_FILE}* cvs_export: cvs_tag @[[ -d ${DIST_DIR} ]] || install -d ${DIST_DIR} cvs export -r ${CVS_TAG} -d ${DIST_DIR} $$(< CVS/Repository) cvs_tag: changelog cvs status | grep '^File: ' | grep -v 'Status: Up-to-date$$' && \ exit ${EX_DATAERR}; \ cvs tag ${CVS_TAG} changelog: man cvs2cl --revisions --tagdates --day-of-week --no-wrap --gecos \ --prune --ignore ChangeLog --stdout | sed 's/): /):\ /' > ChangeLog.tmp @cmp -s ChangeLog ChangeLog.tmp && rm ChangeLog.tmp || mv ChangeLog.tmp ChangeLog @cvs diff ChangeLog >/dev/null || cvs commit '' ChangeLog install: ${INSTALL} -b -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} ${PROJECT}.ksh /usr/local/libexec/${PROJECT} ${INSTALL} -b -o ${BINOWN} -g ${BINGRP} -m ${NONBINMODE} ${PROJECT}.ptrn /etc/mail crontab -l -u ${CRONOWN} 2>&1 | grep -q '^no crontab for ${CRONOWN}$$' crontab -u ${CRONOWN} crontab ${INSTALL} -d -o ${SHAREOWN} -g ${SHAREGRP} -m ${DIRMODE} ${DOCDIR}/logs/ ${INSTALL} -o ${SHAREOWN} -g ${SHAREGRP} -m ${SHAREMODE} logs/*.txt ${DOCDIR}/logs/ ${INSTALL} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} ${PROJECT}.8 ${MANDIR}8 ${INSTALL} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} ${PROJECT}.ptrn.5 ${MANDIR}5 man: ${PROJECT}.8 ${PROJECT}.ptrn.5 ${PROJECT}.8.html ${PROJECT}.ptrn.5.html ${PROJECT}.8: ${@}.pod pod2man -n ${@:R:U} -s ${@:E} -c ${MANTITLE} ${@}.pod ${@} ${PROJECT}.ptrn.5: ${@}.pod pod2man -n ${@:R:U} -s ${@:E} -c ${MANTITLE} ${@}.pod ${@} ${PROJECT}.8.html: ${@:R}.pod pod2html --infile=${@:R}.pod --outfile=${@} --title=${MANTITLE} ${PROJECT}.ptrn.5.html: ${@:R}.pod pod2html --infile=${@:R}.pod --outfile=${@} --title=${MANTITLE}