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