freebsd-skq/share/mk/bsd.sgml.mk
wosch 8eea1d0d90 [Ee]rrs -> Errs errs
save one process for make clean
1996-03-07 23:39:46 +00:00

152 lines
3.0 KiB
Makefile

# bsd.sgml.mk - 8 Sep 1995 John Fieber
# This file is in the public domain.
#
# $Id: bsd.sgml.mk,v 1.3 1995/09/10 21:49:24 jfieber Exp $
.if exists(${.CURDIR}/../Makefile.inc)
.include "${.CURDIR}/../Makefile.inc"
.endif
# FORMATS indicates which output formats will be generated. See
# the sgmlfmt(1) man page for a list of valid formats.
# If FORMATS is empty, nothing will be built or installed.
# Use SGMLOPTS to pass extra flags to sgmlfmt(1).
FORMATS?= ascii html
SGMLFLAGS+= ${SGMLOPTS}
VOLUME?= ${.CURDIR:T}
DOC?= ${.CURDIR:T}
BINDIR?= /usr/share/doc
SRCDIR?= ${.CURDIR}
DISTRIBUTION?= doc
SGMLFMT?= sgmlfmt
LPR?= lpr
DOCS= ${FORMATS:S/^/${DOC}./g}
.MAIN: all
all: ${DOCS}
# If FORMATS is empty, do nothing
.if empty(FORMATS)
${DOC}. install- print- clean-:
.endif
.if !target(obj)
.if defined(NOOBJ)
obj:
.else
obj:
@cd ${.CURDIR}; rm -f obj; \
here=`pwd`; dest=/usr/obj`echo $$here | sed 's,^/usr/src,,'`; \
${ECHO} "$$here -> $$dest"; ln -s $$dest obj; \
if test -d /usr/obj -a ! -d $$dest; then \
mkdir -p $$dest; \
else \
true; \
fi;
.endif
.endif
clean: ${FORMATS:S/^/clean-/g}
rm -f Errs errs mklog
cleandir: clean
cd ${.CURDIR}; rm -rf obj
install: beforeinstall realinstall afterinstall
.if !target(beforeinstall)
beforeinstall:
.endif
.if !target(afterinstall)
afterinstall:
.endif
.if !target(maninstall)
maninstall:
.endif
realinstall: ${FORMATS:S/^/install-/g}
.if !target(print)
print: ${FORMATS:S/^/print-/g}
.endif
spell: ${SRCS}
(cd ${.CURDIR}; spell ${SRCS} ) | sort | \
comm -23 - ${.CURDIR}/spell.ok > ${DOC}.spell
.if !target(distribute)
distribute:
cd ${.CURDIR} ; $(MAKE) install DESTDIR=${DISTDIR}/${DISTRIBUTION} SHARED=copies
.endif
.if !target(depend)
depend:
.endif
# For each FORMATS type, define a build, install, clean and print target.
# Note that there is special case handling for html targets
# because the number of files generated is generally not possible
# to predict outside of sgmlfmt(1).
.for _XFORMAT in ${FORMATS}
# XXX This doesn't work:
# .if ${_FORMAT} == "foobar"
# but defining another variable does: (?!?!)
_FORMAT = ${_XFORMAT}
.if !target(print-${_FORMAT})
.if ${_FORMAT} == "html"
print-${_FORMAT}:
.else
print-${_FORMAT}: ${DOC}.${_FORMAT}
${LPR} -P${.TARGET:S/print-//} ${DOC}.${_FORMAT}
.endif
.endif
.if !target(install-${_FORMAT})
.if ${_FORMAT} == "html"
install-${_FORMAT}: ${DOC}.${_FORMAT}
${INSTALL} ${COPY} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} \
*.${.TARGET:S/install-//} ${DESTDIR}${BINDIR}/${VOLUME}
.else
install-${_FORMAT}: ${DOC}.${_FORMAT}
${INSTALL} ${COPY} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} \
${DOC}.${.TARGET:S/install-//} ${DESTDIR}${BINDIR}/${VOLUME}
.endif
.endif
.if !target(${DOC}.${_FORMAT})
${DOC}.${_FORMAT}: ${SRCS}
${SGMLFMT} -f ${.TARGET:S/${DOC}.//} ${SGMLFLAGS} ${.CURDIR}/${DOC}.sgml
.endif
.if !target(clean-${_FORMAT})
.if ${_FORMAT} == "html"
clean-${_FORMAT}:
rm -f *.${.TARGET:S/clean-//}
.else
clean-${_FORMAT}:
rm -f ${DOC}.${.TARGET:S/clean-//}
.endif
.endif
.endfor