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