From owner-freebsd-current Thu Aug 31 04:09:46 1995 Return-Path: current-owner Received: (from majordom@localhost) by freefall.FreeBSD.org (8.6.11/8.6.6) id EAA02849 for current-outgoing; Thu, 31 Aug 1995 04:09:46 -0700 Received: from gndrsh.aac.dev.com (gndrsh.aac.dev.com [198.145.92.241]) by freefall.FreeBSD.org (8.6.11/8.6.6) with ESMTP id EAA02842 for ; Thu, 31 Aug 1995 04:09:43 -0700 Received: (from rgrimes@localhost) by gndrsh.aac.dev.com (8.6.11/8.6.9) id EAA10935; Thu, 31 Aug 1995 04:09:16 -0700 From: "Rodney W. Grimes" Message-Id: <199508311109.EAA10935@gndrsh.aac.dev.com> Subject: Re: Proposal for bsd.sgml.mk To: jfieber@indiana.edu (John Fieber) Date: Thu, 31 Aug 1995 04:09:15 -0700 (PDT) Cc: CVS-commiters@freefall.FreeBSD.org, current@freebsd.org In-Reply-To: <199508310248.VAA18063@fieber-john.campusview.indiana.edu> from "John Fieber" at Aug 30, 95 09:48:49 pm X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Length: 3794 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: A flash review.. just some nits... > ------------------- > # 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 BINMODE?= 444 [And the above line has spaces instead of a tab :-(] > 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: (?!?!) Perhaps .if X${_FORMAT} == X"foobar" would be what you need. If ${_FORMAT} is null your statement above that you say does not work becomes: .if == "foorbar" and yes, that fails, just like in old /bin/sh :-) > _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} *.${.TARGET:S/install-//} ${DESTDIR}${BINDIR}/${VOLUME} Please indent continutation lines one level. > > .else > install-${_FORMAT}: ${DOC}.${_FORMAT} > ${INSTALL} ${COPY} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ > ${DOC}.${.TARGET:S/install-//} ${DESTDIR}${BINDIR}/${VOLUME} ${DOC}.${.TARGET:S/install-//} ${DESTDIR}${BINDIR}/${VOLUME} Ditto > > .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 > -- Rod Grimes rgrimes@gndrsh.aac.dev.com Accurate Automation Company Reliable computers for FreeBSD