From owner-freebsd-current Wed Aug 30 19:49:48 1995 Return-Path: current-owner Received: (from majordom@localhost) by freefall.FreeBSD.org (8.6.11/8.6.6) id TAA18195 for current-outgoing; Wed, 30 Aug 1995 19:49:48 -0700 Received: from fieber-john.campusview.indiana.edu (Fieber-John.campusview.indiana.edu [149.159.1.34]) by freefall.FreeBSD.org (8.6.11/8.6.6) with ESMTP id TAA18178 for ; Wed, 30 Aug 1995 19:49:39 -0700 Received: (from jfieber@localhost) by fieber-john.campusview.indiana.edu (8.6.11/8.6.9) id VAA18063; Wed, 30 Aug 1995 21:48:50 -0500 From: John Fieber Message-Id: <199508310248.VAA18063@fieber-john.campusview.indiana.edu> Subject: Proposal for bsd.sgml.mk To: CVS-commiters@freefall.FreeBSD.org, current@freebsd.org Date: Wed, 30 Aug 1995 21:48:49 -0500 (EST) X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Length: 2844 Sender: current-owner@freebsd.org Precedence: bulk Here is a sample makefile (for the handbook) using my proposed bsd.sgml.mk: ------------------- SGMLOPTS= -links .include ------------------- Simple, eh? Now, here is the bsd.sgml.mk which I plan to commit if there are no great objections. It isn't perfect, but it gets the job done: ------------------- # bsd.sgml.mk - 30 Aug 1995 John Fieber # This file is in the public domain. # # $Id$ .if exists(${.CURDIR}/../Makefile.inc) .include "${.CURDIR}/../Makefile.inc" .endif # Variables of possible interest to the user FORMATS?= ascii html VOLUME?= ${.CURDIR:T} DOC?= ${.CURDIR:T} SRCS?= *.sgml SGMLFMT?= sgmlfmt LPR?= lpr SGMLFLAGS+= ${SGMLOPTS} BINDIR?= /usr/share/doc BINMODE= 444 SRCDIR?= ${.CURDIR} DISTRIBUTION?= doc # Everything else DOCS= ${FORMATS:S/^/${DOC}./g} .MAIN: all all: ${DOCS} .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: rm -f [eE]rrs mklog ${CLEANFILES} 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 and print target. .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 ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ *.${.TARGET:S/install-//} ${DESTDIR}${BINDIR}/${VOLUME} .else install-${_FORMAT}: ${DOC}.${_FORMAT} ${INSTALL} ${COPY} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ ${DOC}.${.TARGET:S/install-//} ${DESTDIR}${BINDIR}/${VOLUME} .endif .endif .if !target(${DOC}.${_FORMAT}) .if ${_FORMAT} == "html" CLEANFILES+= *.${_FORMAT} .else CLEANFILES+= ${DOC}.${_FORMAT} .endif ${DOC}.${_FORMAT}: ${SRCS} (cd ${SRCDIR}; ${SGMLFMT} -f ${.TARGET:S/${DOC}.//} ${SGMLFLAGS} ${DOC}) .endif .endfor