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