freebsd-dev/share/mk/bsd.sgml.mk
jfieber 92a92946e8 Now works correctly with obj directories.
FORMATS can be defined as an empty string to suppress generation or
installation of any files.  Previously setting it to "null" had that
effects.

Now uses MANOWN, MANGRP and MANMODE for installation instead of BINOWN,
BINGRP and BINMODE.
1995-09-10 21:49:24 +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.1 1995/09/08 19:23:19 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 [eE]rrs 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