Home | History | Annotate | Line # | Download | only in mk
bsd.man.mk revision 1.50
      1 #	$NetBSD: bsd.man.mk,v 1.50 2000/01/22 19:31:02 mycroft Exp $
      2 #	@(#)bsd.man.mk	8.1 (Berkeley) 6/8/93
      3 
      4 .if !target(__initialized__)
      5 __initialized__:
      6 .if exists(${.CURDIR}/../Makefile.inc)
      7 .include "${.CURDIR}/../Makefile.inc"
      8 .endif
      9 .include <bsd.own.mk>
     10 .include <bsd.obj.mk>
     11 .include <bsd.depall.mk>
     12 .MAIN:		all
     13 .endif
     14 
     15 .PHONY:		catinstall maninstall catpages manpages catlinks manlinks cleanman
     16 .if ${MKMAN} != "no"
     17 realinstall:	${MANINSTALL}
     18 .endif
     19 cleandir distclean: cleanman
     20 
     21 TMACDIR?=	${DESTDIR}/usr/share/tmac
     22 CATDEPS?=	${TMACDIR}/tmac.andoc \
     23 		${TMACDIR}/tmac.doc \
     24 		${TMACDIR}/tmac.doc-ditroff \
     25 		${TMACDIR}/tmac.doc-common \
     26 		${TMACDIR}/tmac.doc-nroff \
     27 		${TMACDIR}/tmac.doc-syms
     28 MANTARGET?=	cat
     29 NROFF?=		nroff -Tascii
     30 TBL?=		tbl
     31 
     32 .SUFFIXES: .1 .2 .3 .4 .5 .6 .7 .8 .9 \
     33 	   .cat1 .cat2 .cat3 .cat4 .cat5 .cat6 .cat7 .cat8 .cat9
     34 
     35 .9.cat9 .8.cat8 .7.cat7 .6.cat6 .5.cat5 .4.cat4 .3.cat3 .2.cat2 .1.cat1: \
     36     ${CATDEPS}
     37 .if !defined(USETBL)
     38 	@echo "${NROFF} -mandoc ${.IMPSRC} > ${.TARGET}"
     39 	@${NROFF} -mandoc ${.IMPSRC} > ${.TARGET} || \
     40 	 (rm -f ${.TARGET}; false)
     41 .else
     42 	@echo "${TBL} ${.IMPSRC} | ${NROFF} -mandoc > ${.TARGET}"
     43 	@${TBL} ${.IMPSRC} | ${NROFF} -mandoc > ${.TARGET} || \
     44 	 (rm -f ${.TARGET}; false)
     45 .endif
     46 
     47 .if defined(MAN) && !empty(MAN)
     48 MANPAGES=	${MAN}
     49 CATPAGES=	${MANPAGES:C/(.*).([1-9])/\1.cat\2/}
     50 .endif
     51 
     52 MINSTALL=	${INSTALL} ${RENAME} ${PRESERVE} ${COPY} ${INSTPRIV} \
     53 		    -o ${MANOWN} -g ${MANGRP} -m ${MANMODE}
     54 
     55 .if defined(MANZ)
     56 # chown and chmod are done afterward automatically
     57 MCOMPRESS=	gzip -cf
     58 MCOMPRESSSUFFIX= .gz
     59 .endif
     60 
     61 catinstall: catlinks
     62 maninstall: manlinks
     63 
     64 __installpage: .USE
     65 .if defined(MCOMPRESS) && !empty(MCOMPRESS)
     66 	@rm -f ${.TARGET}
     67 	${MCOMPRESS} ${.ALLSRC} > ${.TARGET}
     68 	@chown ${MANOWN}:${MANGRP} ${.TARGET}
     69 	@chmod ${MANMODE} ${.TARGET}
     70 .else
     71 	${MINSTALL} ${.ALLSRC} ${.TARGET}
     72 .endif
     73 
     74 
     75 # Rules for cat'ed man page installation
     76 .if defined(CATPAGES) && !empty(CATPAGES) && ${MKCATPAGES} != "no"
     77 .   for P in ${CATPAGES}
     78 catpages:: ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}
     79 
     80 .	if !defined(UPDATE)
     81 .PHONY: ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}
     82 .	endif
     83 .	if !defined(BUILD) && !make(all) && !make(${P})
     84 ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}: .MADE
     85 .	endif
     86 
     87 .PRECIOUS: ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}
     88 ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}: ${P} __installpage
     89 .   endfor
     90 .else
     91 catpages::
     92 .endif
     93 
     94 # Rules for source page installation
     95 .if defined(MANPAGES) && !empty(MANPAGES)
     96 .   for P in ${MANPAGES}
     97 manpages:: ${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}
     98 .	if !defined(UPDATE)
     99 .PHONY: ${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}
    100 .	endif
    101 
    102 .PRECIOUS: ${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}
    103 ${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}: ${P} __installpage
    104 .   endfor
    105 .else
    106 manpages::
    107 .endif
    108 
    109 .if ${MKCATPAGES} != "no"
    110 catlinks: catpages
    111 .if defined(MLINKS) && !empty(MLINKS)
    112 	@set ${MLINKS}; \
    113 	while test $$# -ge 2; do \
    114 		name=$$1; \
    115 		shift; \
    116 		dir=${DESTDIR}${MANDIR}/cat$${name##*.}; \
    117 		l=$${dir}${MANSUBDIR}/$${name%.*}.0${MCOMPRESSSUFFIX}; \
    118 		name=$$1; \
    119 		shift; \
    120 		dir=${DESTDIR}${MANDIR}/cat$${name##*.}; \
    121 		t=$${dir}${MANSUBDIR}/$${name%.*}.0${MCOMPRESSSUFFIX}; \
    122 		if [ -z "${UPDATE}" -o ! -f $$t ]; then \
    123 		    echo $$t -\> $$l; \
    124 		    ln -f $$l $$t; \
    125 		fi; \
    126 	done
    127 .endif
    128 .else
    129 catlinks:
    130 .endif
    131 
    132 manlinks: manpages
    133 .if defined(MLINKS) && !empty(MLINKS)
    134 	@set ${MLINKS}; \
    135 	while test $$# -ge 2; do \
    136 		name=$$1; \
    137 		shift; \
    138 		dir=${DESTDIR}${MANDIR}/man$${name##*.}; \
    139 		l=$${dir}${MANSUBDIR}/$${name}${MCOMPRESSSUFFIX}; \
    140 		name=$$1; \
    141 		shift; \
    142 		dir=${DESTDIR}${MANDIR}/man$${name##*.}; \
    143 		t=$${dir}${MANSUBDIR}/$${name}${MCOMPRESSSUFFIX}; \
    144 		if [ -z "${UPDATE}" -o ! -f $$t ]; then \
    145 		    echo $$t -\> $$l; \
    146 		    ln -f $$l $$t; \
    147 		fi; \
    148 	done
    149 .endif
    150 
    151 .if defined(CATPAGES)
    152 .if ${MKCATPAGES} != "no" && ${MKMAN} != "no"
    153 realall: ${CATPAGES}
    154 .else
    155 realall:
    156 .endif
    157 
    158 cleanman:
    159 	rm -f ${CATPAGES}
    160 .else
    161 cleanman:
    162 .endif
    163 
    164 # Make sure all of the standard targets are defined, even if they do nothing.
    165 clean depend includes lint regress tags:
    166