xref: /minix3/share/mk/bsd.info.mk (revision 9152e1c5a7225885973292842eaa6ab5121d1a38)
1*9152e1c5SLionel Sambuc#	$NetBSD: bsd.info.mk,v 1.40 2011/09/10 16:57:35 apb Exp $
279bfef9aSVivek Prakash
379bfef9aSVivek Prakash.include <bsd.init.mk>
479bfef9aSVivek Prakash
579bfef9aSVivek Prakash##### Basic targets
679bfef9aSVivek Prakashrealinstall:	infoinstall
779bfef9aSVivek Prakash
879bfef9aSVivek Prakash##### Default values
979bfef9aSVivek PrakashINFOFLAGS?=
1079bfef9aSVivek Prakash
1179bfef9aSVivek PrakashINFOFILES?=
1279bfef9aSVivek Prakash
1379bfef9aSVivek Prakash##### Build rules
1479bfef9aSVivek Prakash.if ${MKINFO} != "no"
1579bfef9aSVivek Prakash
1679bfef9aSVivek PrakashINFOFILES=	${TEXINFO:C/\.te?xi(nfo)?$/.info/}
1779bfef9aSVivek Prakash
1879bfef9aSVivek Prakashrealall:	${INFOFILES}
1979bfef9aSVivek Prakash.NOPATH:	${INFOFILES}
2079bfef9aSVivek Prakash
2179bfef9aSVivek Prakash.SUFFIXES: .txi .texi .texinfo .info
2279bfef9aSVivek Prakash
2379bfef9aSVivek Prakash.txi.info .texi.info .texinfo.info:
2479bfef9aSVivek Prakash	${_MKTARGET_CREATE}
2579bfef9aSVivek Prakash	${TOOL_MAKEINFO} ${INFOFLAGS} --no-split --no-version-header -o ${.TARGET} ${.IMPSRC}
2679bfef9aSVivek Prakash
2779bfef9aSVivek Prakash.endif # ${MKINFO} != "no"
2879bfef9aSVivek Prakash
2979bfef9aSVivek Prakash##### Install rules
3079bfef9aSVivek Prakashinfoinstall::	# ensure existence
3179bfef9aSVivek Prakash.PHONY:		infoinstall
3279bfef9aSVivek Prakash
3379bfef9aSVivek Prakash.if ${MKINFO} != "no"
3479bfef9aSVivek Prakash
3579bfef9aSVivek PrakashINFODIRFILE=${DESTDIR}${INFODIR}/dir
3679bfef9aSVivek Prakash
3779bfef9aSVivek Prakash# serialize access to ${INFODIRFILE}; needed for parallel makes
3879bfef9aSVivek Prakash__infoinstall: .USE
3979bfef9aSVivek Prakash	${_MKTARGET_INSTALL}
4079bfef9aSVivek Prakash	${INSTALL_FILE} \
4179bfef9aSVivek Prakash	    -o ${INFOOWN_${.ALLSRC:T}:U${INFOOWN}} \
4279bfef9aSVivek Prakash	    -g ${INFOGRP_${.ALLSRC:T}:U${INFOGRP}} \
4379bfef9aSVivek Prakash	    -m ${INFOMODE_${.ALLSRC:T}:U${INFOMODE}} \
4479bfef9aSVivek Prakash	    ${.ALLSRC} ${.TARGET}
4579bfef9aSVivek Prakash	@[ -f ${INFODIRFILE} ] &&					\
4679bfef9aSVivek Prakash	while ! ln ${INFODIRFILE} ${INFODIRFILE}.lock 2> /dev/null;	\
4779bfef9aSVivek Prakash		do sleep 1; done;					\
4879bfef9aSVivek Prakash	${TOOL_INSTALL_INFO} -d ${INFODIRFILE} -r ${.TARGET} 2> /dev/null; \
4979bfef9aSVivek Prakash	${TOOL_INSTALL_INFO} -d ${INFODIRFILE} ${.TARGET};		\
5079bfef9aSVivek Prakash	rm -f ${INFODIRFILE}.lock
5179bfef9aSVivek Prakash
5279bfef9aSVivek Prakash
5379bfef9aSVivek Prakash.for F in ${INFOFILES:O:u}
5479bfef9aSVivek Prakash_FDIR:=		${INFODIR_${F}:U${INFODIR}}		# dir overrides
5579bfef9aSVivek Prakash_FNAME:=	${INFONAME_${F}:U${INFONAME:U${F:T}}}	# name overrides
5679bfef9aSVivek Prakash_F:=		${DESTDIR}${_FDIR}/${_FNAME}		# installed path
5779bfef9aSVivek Prakash
5879bfef9aSVivek Prakash.if ${MKUPDATE} == "no"
5979bfef9aSVivek Prakash${_F}!		${F} __infoinstall			# install rule
6079bfef9aSVivek Prakash.if !defined(BUILD) && !make(all) && !make(${F})
6179bfef9aSVivek Prakash${_F}!		.MADE					# no build at install
6279bfef9aSVivek Prakash.endif
6379bfef9aSVivek Prakash.else
6479bfef9aSVivek Prakash${_F}:		${F} __infoinstall			# install rule
6579bfef9aSVivek Prakash.if !defined(BUILD) && !make(all) && !make(${F})
6679bfef9aSVivek Prakash${_F}:		.MADE					# no build at install
6779bfef9aSVivek Prakash.endif
6879bfef9aSVivek Prakash.endif
6979bfef9aSVivek Prakash
7079bfef9aSVivek Prakashinfoinstall::	${_F}
7179bfef9aSVivek Prakash.PRECIOUS:	${_F}					# keep if install fails
7279bfef9aSVivek Prakash.endfor
7379bfef9aSVivek Prakash
7479bfef9aSVivek Prakash.undef _FDIR
7579bfef9aSVivek Prakash.undef _FNAME
7679bfef9aSVivek Prakash.undef _F
7779bfef9aSVivek Prakash.endif # ${MKINFO} != "no"
7879bfef9aSVivek Prakash
7979bfef9aSVivek Prakash##### Clean rules
80*9152e1c5SLionel SambucCLEANDIRFILES+=	${INFOFILES}
8179bfef9aSVivek Prakash
8279bfef9aSVivek Prakash##### Pull in related .mk logic
8379bfef9aSVivek Prakash.include <bsd.obj.mk>
8479bfef9aSVivek Prakash.include <bsd.sys.mk>
85*9152e1c5SLionel Sambuc.include <bsd.clean.mk>
8679bfef9aSVivek Prakash
8779bfef9aSVivek Prakash${TARGETS}:	# ensure existence
88