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