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