Home | History | Annotate | Line # | Download | only in mk
      1 #	$NetBSD: bsd.inc.mk,v 1.34 2022/03/29 22:48:04 christos Exp $
      2 
      3 .include <bsd.init.mk>
      4 
      5 ##### Basic targets
      6 includes:	${INCS} incinstall inclinkinstall
      7 
      8 ##### Default values
      9 INCSYMLINKS?=
     10 
     11 ##### Install rules
     12 incinstall::	# ensure existence
     13 .PHONY:		incinstall
     14 
     15 __incinstall: .USE
     16 	@cmp -s ${.ALLSRC} ${.TARGET} > /dev/null 2>&1 || \
     17 	    (${_MKSHMSG_INSTALL} ${.TARGET}; \
     18 	     ${_MKSHECHO} "${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} \
     19 		-m ${NONBINMODE} ${.ALLSRC} ${.TARGET}" && \
     20 	     ${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} \
     21 		-m ${NONBINMODE} ${.ALLSRC} ${.TARGET})
     22 
     23 .for F in ${INCS:O:u}
     24 _FDIR:=		${INCSDIR_${F:C,/,_,g}:U${INCSDIR}}	# dir override
     25 _FNAME:=	${INCSNAME_${F:C,/,_,g}:U${INCSNAME:U${F}}} # name override
     26 _F:=		${DESTDIR}${_FDIR}/${_FNAME}		# installed path
     27 
     28 .if ${MKUPDATE} == "no"
     29 ${_F}!		${F} __incinstall			# install rule
     30 .else
     31 ${_F}:		${F} __incinstall			# install rule
     32 .endif
     33 
     34 incinstall::	${_F}
     35 .PRECIOUS:	${_F}					# keep if install fails
     36 .endfor
     37 
     38 .undef _FDIR
     39 .undef _FNAME
     40 .undef _F
     41 
     42 inclinkinstall:	.PHONY
     43 .if !empty(INCSYMLINKS)
     44 	@(set ${INCSYMLINKS}; \
     45 	 while test $$# -ge 2; do \
     46 		l=$$1; shift; \
     47 		t=${DESTDIR}$$1; shift; \
     48 		if  ttarg=$$(${TOOL_STAT} -qf '%Y' $$t) && \
     49 		    [ "$$l" = "$$ttarg" ]; then \
     50 			continue ; \
     51 		fi ; \
     52 		${_MKSHMSG_INSTALL} $$t; \
     53 		${_MKSHECHO} ${INSTALL_SYMLINK} $$l $$t; \
     54 		${INSTALL_SYMLINK} $$l $$t; \
     55 	 done; )
     56 .endif
     57