Home | History | Annotate | Line # | Download | only in mk
      1  1.46       rin #	$NetBSD: bsd.info.mk,v 1.46 2024/08/18 03:49:23 rin 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 realinstall:	infoinstall
      7   1.1        tv 
      8  1.23        tv ##### Default values
      9  1.23        tv INFOFLAGS?=
     10   1.1        tv 
     11  1.23        tv INFOFILES?=
     12  1.23        tv 
     13  1.23        tv ##### Build rules
     14  1.23        tv .if ${MKINFO} != "no"
     15  1.23        tv 
     16  1.46       rin .if defined(TEXINFO)
     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.39     joerg 	${TOOL_MAKEINFO} ${INFOFLAGS} --no-split --no-version-header -o ${.TARGET} ${.IMPSRC}
     27  1.46       rin .endif # defined(TEXINFO)
     28   1.1        tv 
     29  1.23        tv .endif # ${MKINFO} != "no"
     30   1.1        tv 
     31  1.23        tv ##### Install rules
     32  1.23        tv infoinstall::	# ensure existence
     33  1.37     lukem .PHONY:		infoinstall
     34  1.37     lukem 
     35  1.15   mycroft .if ${MKINFO} != "no"
     36   1.1        tv 
     37  1.26        pk INFODIRFILE=${DESTDIR}${INFODIR}/dir
     38  1.26        pk 
     39  1.26        pk # serialize access to ${INFODIRFILE}; needed for parallel makes
     40  1.15   mycroft __infoinstall: .USE
     41  1.36     lukem 	${_MKTARGET_INSTALL}
     42  1.23        tv 	${INSTALL_FILE} \
     43  1.18   mycroft 	    -o ${INFOOWN_${.ALLSRC:T}:U${INFOOWN}} \
     44  1.18   mycroft 	    -g ${INFOGRP_${.ALLSRC:T}:U${INFOGRP}} \
     45  1.18   mycroft 	    -m ${INFOMODE_${.ALLSRC:T}:U${INFOMODE}} \
     46  1.38     jwise 	    ${.ALLSRC} ${.TARGET}
     47  1.43  christos 	@[ -f ${INFODIRFILE} ] || touch ${INFODIRFILE}; 		\
     48  1.26        pk 	while ! ln ${INFODIRFILE} ${INFODIRFILE}.lock 2> /dev/null;	\
     49  1.26        pk 		do sleep 1; done;					\
     50  1.45    hgutch 	! [ -s ${INFODIRFILE} ] && rm -f ${INFODIRFILE} ||		\
     51  1.29     lukem 	${TOOL_INSTALL_INFO} -d ${INFODIRFILE} -r ${.TARGET} 2> /dev/null; \
     52  1.29     lukem 	${TOOL_INSTALL_INFO} -d ${INFODIRFILE} ${.TARGET};		\
     53  1.41  christos 	${TOOL_SORTINFO} < ${INFODIRFILE} > ${INFODIRFILE}.tmp;		\
     54  1.42  christos 	${MV} ${INFODIRFILE}.tmp ${INFODIRFILE};			\
     55  1.26        pk 	rm -f ${INFODIRFILE}.lock
     56  1.26        pk 
     57   1.1        tv 
     58  1.19  sommerfe .for F in ${INFOFILES:O:u}
     59  1.23        tv _FDIR:=		${INFODIR_${F}:U${INFODIR}}		# dir overrides
     60  1.23        tv _FNAME:=	${INFONAME_${F}:U${INFONAME:U${F:T}}}	# name overrides
     61  1.23        tv _F:=		${DESTDIR}${_FDIR}/${_FNAME}		# installed path
     62  1.23        tv 
     63  1.31     lukem .if ${MKUPDATE} == "no"
     64  1.25   mycroft ${_F}!		${F} __infoinstall			# install rule
     65  1.25   mycroft .if !defined(BUILD) && !make(all) && !make(${F})
     66  1.25   mycroft ${_F}!		.MADE					# no build at install
     67  1.25   mycroft .endif
     68  1.25   mycroft .else
     69  1.23        tv ${_F}:		${F} __infoinstall			# install rule
     70  1.15   mycroft .if !defined(BUILD) && !make(all) && !make(${F})
     71  1.23        tv ${_F}:		.MADE					# no build at install
     72  1.15   mycroft .endif
     73  1.25   mycroft .endif
     74  1.25   mycroft 
     75  1.25   mycroft infoinstall::	${_F}
     76  1.25   mycroft .PRECIOUS:	${_F}					# keep if install fails
     77  1.15   mycroft .endfor
     78  1.23        tv 
     79  1.23        tv .undef _FDIR
     80  1.23        tv .undef _FNAME
     81  1.23        tv .undef _F
     82  1.23        tv .endif # ${MKINFO} != "no"
     83  1.23        tv 
     84  1.23        tv ##### Clean rules
     85  1.46       rin .if defined(TEXINFO)
     86  1.40       apb CLEANDIRFILES+=	${INFOFILES}
     87  1.46       rin .endif
     88   1.1        tv 
     89  1.23        tv ##### Pull in related .mk logic
     90  1.23        tv .include <bsd.obj.mk>
     91  1.30     lukem .include <bsd.sys.mk>
     92  1.40       apb .include <bsd.clean.mk>
     93  1.23        tv 
     94  1.23        tv ${TARGETS}:	# ensure existence
     95