NetBSD/tools/groff/Makefile
ross 8dbba41619 Get ${HOSTEXEEXT} right in the component installation loop.
There are three levels of compliance w.r.t. HOSTEXEEXT. (1) built and
installed both wrong, (2) both right, and (3) one right, one wrong.
Most tool builds do (1), i.e., wrong, but not seriously so. This makefile
actually built them the "right" way, leading to error (3), which was fatal.
2004-02-06 00:06:53 +00:00

93 lines
3.0 KiB
Makefile

# $NetBSD: Makefile,v 1.27 2004/02/06 00:06:53 ross Exp $
MODULE= groff
ALL_TARGET= src/include all
MAKE_ARGS= bindir=${TOOLDIR}/lib/groff MAKEINFO=${TOOL_MAKEINFO:Q} \
INSTALL_INFO=${TOOL_INSTALL_INFO:Q}
TMACDIR= ${TOOLDIR}/share/groff/tmac
SITETMACDIR= ${TOOLDIR}/share/groff/site-tmac
# Add gnuwrap hack directly to the Makefile.
_NOWRAPPER=1
# Fixup build/Makefile.
# XXX - the groff distribution Makefiles don't get their dependencies right.
# We use internal knowledge to specify additional target ordering.
# This can be removed once our own make(1) can be invoked in true
# sequential (i.e. compatible) mode again for subdir makes.
#
.configure_done: _post_conf
_post_conf: .USE
@(echo '.include "${.CURDIR}/../Makefile.gnuwrap"'; \
echo '.ORDER: $$(ALLDIRS) dot';\
echo '.ORDER: all install' ) >> build/Makefile
.include "${.CURDIR}/../Makefile.gnuhost"
COMPATOBJ!= cd ${.CURDIR}/../compat && ${PRINTOBJDIR}
.-include "${COMPATOBJ}/defs.mk"
.PATH: ${.CURDIR}/../../share/tmac ${.CURDIR}/../../gnu/usr.bin/groff/tmac
_installtmac: .USE
.if ${MKUPDATE} != "no"
@if ! cmp ${.ALLSRC} ${.TARGET} >/dev/null 2>&1; then \
echo ${HOST_INSTALL_FILE:Q} -m ${NONBINMODE} ${.ALLSRC} ${.TARGET}; \
${HOST_INSTALL_FILE} -m ${NONBINMODE} ${.ALLSRC} ${.TARGET}; \
fi
.else
${HOST_INSTALL_FILE} -m ${NONBINMODE} ${.ALLSRC} ${.TARGET}
.endif
#
# Since ${TMACDIR} is created by the `realinstall' target, the `afterinstall'
# sources below that depend on it must wait until `realinstall' is done.
#
#.for F in an andoc doc doc-ditroff doc-common doc-nroff doc-syms html html-end man man.local mdoc mdoc.local
.for F in doc2html
afterinstall: ${TMACDIR}/${F}.tmac
.PHONY: ${TMACDIR}/${F}.tmac
${TMACDIR}/${F}.tmac: ${F} _installtmac
.ORDER: realinstall ${TMACDIR}/${F}.tmac
.endfor
.for F in man.local mdoc.local
afterinstall: ${SITETMACDIR}/${F}
.PHONY: ${SITETMACDIR}/${F}
${SITETMACDIR}/${F}: ${F}-s _installtmac
.ORDER: realinstall ${SITETMACDIR}/${F}
CLEANFILES+=${F}-s
${F}-s: ${F}
sed -f ${.CURDIR}/../../gnu/dist/groff/tmac/strip.sed ${.ALLSRC} > ${.TARGET}
.endfor
# The silly walk below is because sometimes the files begin with "g",
# and sometimes not, depending on what the host tool has at build time.
afterinstall: install.grofflinks
.ORDER: realinstall install.grofflinks
install.grofflinks:
@cd ${.CURDIR} && ${MAKE} install.grofflinks.recurse
.for F in eqn groff indxbib pic refer soelim tbl
install.grofflinks.recurse: ${TOOLDIR}/bin/${_TOOL_PREFIX}${F}${HOSTEXEEXT}
.if exists(${TOOLDIR}/lib/groff/g${F}${HOSTEXEEXT})
${TOOLDIR}/bin/${_TOOL_PREFIX}${F}${HOSTEXEEXT}: ${TOOLDIR}/lib/groff/g${F}${HOSTEXEEXT}
.else
${TOOLDIR}/bin/${_TOOL_PREFIX}${F}${HOSTEXEEXT}: ${TOOLDIR}/lib/groff/${F}${HOSTEXEEXT}
.endif
ln -f ${.ALLSRC} ${.TARGET}
.endfor
.for F in nroff
install.grofflinks.recurse: ${TOOLDIR}/bin/${_TOOL_PREFIX}${F}
.if exists(${TOOLDIR}/lib/groff/g${F})
${TOOLDIR}/bin/${_TOOL_PREFIX}${F}: ${TOOLDIR}/lib/groff/g${F}
.else
${TOOLDIR}/bin/${_TOOL_PREFIX}${F}: ${TOOLDIR}/lib/groff/${F}
.endif
ln -f ${.ALLSRC} ${.TARGET}
.endfor