1# $NetBSD: bsd.info.mk,v 1.27 2002/10/22 18:48:27 perry Exp $ 2 3.include <bsd.init.mk> 4 5##### Basic targets 6.PHONY: infoinstall cleaninfo 7cleandir: cleaninfo 8realinstall: infoinstall 9 10##### Default values 11MAKEINFO?= makeinfo 12INFOFLAGS?= 13INSTALL_INFO?= install-info 14 15INFOFILES?= 16 17##### Build rules 18.if ${MKINFO} != "no" 19 20INFOFILES= ${TEXINFO:C/\.te?xi(nfo)?$/.info/} 21 22realall: ${INFOFILES} 23.NOPATH: ${INFOFILES} 24 25.SUFFIXES: .txi .texi .texinfo .info 26 27.txi.info .texi.info .texinfo.info: 28 ${MAKEINFO} ${INFOFLAGS} --no-split -o $@ $< 29 30.endif # ${MKINFO} != "no" 31 32##### Install rules 33infoinstall:: # ensure existence 34.if ${MKINFO} != "no" 35 36INFODIRFILE=${DESTDIR}${INFODIR}/dir 37 38# serialize access to ${INFODIRFILE}; needed for parallel makes 39__infoinstall: .USE 40 ${INSTALL_FILE} \ 41 -o ${INFOOWN_${.ALLSRC:T}:U${INFOOWN}} \ 42 -g ${INFOGRP_${.ALLSRC:T}:U${INFOGRP}} \ 43 -m ${INFOMODE_${.ALLSRC:T}:U${INFOMODE}} \ 44 ${SYSPKGTAG} ${.ALLSRC} ${.TARGET} 45 @[ -f ${INFODIRFILE} ] && \ 46 while ! ln ${INFODIRFILE} ${INFODIRFILE}.lock 2> /dev/null; \ 47 do sleep 1; done; \ 48 ${INSTALL_INFO} -d ${INFODIRFILE} -r ${.TARGET} 2> /dev/null; \ 49 ${INSTALL_INFO} -d ${INFODIRFILE} ${.TARGET}; \ 50 rm -f ${INFODIRFILE}.lock 51 52 53.for F in ${INFOFILES:O:u} 54_FDIR:= ${INFODIR_${F}:U${INFODIR}} # dir overrides 55_FNAME:= ${INFONAME_${F}:U${INFONAME:U${F:T}}} # name overrides 56_F:= ${DESTDIR}${_FDIR}/${_FNAME} # installed path 57 58.if !defined(UPDATE) 59${_F}! ${F} __infoinstall # install rule 60.if !defined(BUILD) && !make(all) && !make(${F}) 61${_F}! .MADE # no build at install 62.endif 63.else 64${_F}: ${F} __infoinstall # install rule 65.if !defined(BUILD) && !make(all) && !make(${F}) 66${_F}: .MADE # no build at install 67.endif 68.endif 69 70infoinstall:: ${_F} 71.PRECIOUS: ${_F} # keep if install fails 72.endfor 73 74.undef _FDIR 75.undef _FNAME 76.undef _F 77.endif # ${MKINFO} != "no" 78 79##### Clean rules 80cleaninfo: 81.if !empty(INFOFILES) 82 rm -f ${INFOFILES} 83.endif 84 85##### Pull in related .mk logic 86.include <bsd.obj.mk> 87 88${TARGETS}: # ensure existence 89