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