xref: /netbsd-src/share/mk/bsd.man.mk (revision fdecd6a253f999ae92b139670d9e15cc9df4497c)
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
12realinstall:	${MANINSTALL}
13cleandir:	cleanman
14
15MANTARGET?=	cat
16NROFF?=		nroff
17TBL?=		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)
34MANPAGES=	${MAN}
35CATPAGES=	${MANPAGES:C/(.*).([1-9])/\1.cat\2/}
36.endif
37
38MINSTALL=	${INSTALL} ${COPY} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE}
39
40.if defined(MANZ)
41# chown and chmod are done afterward automatically
42MCOMPRESS=	gzip -cf
43MCOMPRESSSUFFIX= .gz
44.endif
45
46catinstall: catlinks
47maninstall: 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}
63catpages:: ${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
76catpages::
77.endif
78
79# Rules for source page installation
80.if defined(MANPAGES) && !empty(MANPAGES)
81.   for P in ${MANPAGES}
82manpages:: ${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
91manpages::
92.endif
93
94catlinks: 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
114manlinks: 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)
135all: ${CATPAGES}
136
137cleanman:
138	rm -f ${CATPAGES}
139.else
140cleanman:
141.endif
142