Home | History | Annotate | Line # | Download | only in mk
bsd.info.mk revision 1.23
      1 #	$NetBSD: bsd.info.mk,v 1.23 2001/11/02 05:21:50 tv Exp $
      2 
      3 .include <bsd.init.mk>
      4 
      5 ##### Basic targets
      6 .PHONY:		infoinstall cleaninfo
      7 cleandir:	cleaninfo
      8 realinstall:	infoinstall
      9 
     10 ##### Default values
     11 MAKEINFO?=	makeinfo
     12 INFOFLAGS?=
     13 INSTALL_INFO?=	install-info
     14 
     15 INFOFILES?=
     16 
     17 ##### Build rules
     18 .if ${MKINFO} != "no"
     19 
     20 INFOFILES=	${TEXINFO:C/\.te?xi(nfo)?$/.info/}
     21 
     22 realall:	${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
     33 infoinstall::	# ensure existence
     34 .if ${MKINFO} != "no"
     35 
     36 __infoinstall: .USE
     37 	${INSTALL_FILE} \
     38 	    -o ${INFOOWN_${.ALLSRC:T}:U${INFOOWN}} \
     39 	    -g ${INFOGRP_${.ALLSRC:T}:U${INFOGRP}} \
     40 	    -m ${INFOMODE_${.ALLSRC:T}:U${INFOMODE}} \
     41 	    ${.ALLSRC} ${.TARGET}
     42 	@${INSTALL_INFO} --remove --info-dir=${DESTDIR}${INFODIR} ${.TARGET} 2>/dev/null
     43 	${INSTALL_INFO} --info-dir=${DESTDIR}${INFODIR} ${.TARGET}
     44 
     45 .for F in ${INFOFILES:O:u}
     46 _FDIR:=		${INFODIR_${F}:U${INFODIR}}		# dir overrides
     47 _FNAME:=	${INFONAME_${F}:U${INFONAME:U${F:T}}}	# name overrides
     48 _F:=		${DESTDIR}${_FDIR}/${_FNAME}		# installed path
     49 
     50 ${_F}:		${F} __infoinstall			# install rule
     51 infoinstall::	${_F}
     52 .PRECIOUS:	${_F}					# keep if install fails
     53 .PHONY:		${UPDATE:U${_F}}			# clobber unless UPDATE
     54 .if !defined(BUILD) && !make(all) && !make(${F})
     55 ${_F}:		.MADE					# no build at install
     56 .endif
     57 .endfor
     58 
     59 .undef _FDIR
     60 .undef _FNAME
     61 .undef _F
     62 .endif # ${MKINFO} != "no"
     63 
     64 ##### Clean rules
     65 cleaninfo:
     66 .if !empty(INFOFILES)
     67 	rm -f ${INFOFILES}
     68 .endif
     69 
     70 ##### Pull in related .mk logic
     71 .include <bsd.obj.mk>
     72 
     73 ${TARGETS}:	# ensure existence
     74