Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 30 Aug 1995 21:48:49 -0500 (EST)
From:      John Fieber <jfieber@indiana.edu>
To:        CVS-commiters@freefall.FreeBSD.org, current@freebsd.org
Subject:   Proposal for bsd.sgml.mk
Message-ID:  <199508310248.VAA18063@fieber-john.campusview.indiana.edu>

next in thread | raw e-mail | index | archive | help
Here is a sample makefile (for the handbook) using my proposed
bsd.sgml.mk:

-------------------
SGMLOPTS= -links
.include <bsd.sgml.mk>
-------------------

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199508310248.VAA18063>