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