xref: /netbsd-src/share/mk/bsd.files.mk (revision 220b5c059a84c51ea44107ea8951a57ffaecdc8c)
1#	$NetBSD: bsd.files.mk,v 1.17 2001/11/28 20:19:08 tv Exp $
2
3.if !target(__fileinstall)
4# This file can be included multiple times.  It clears the definition of
5# FILES at the end so that this is possible.
6
7##### Basic targets
8.PHONY:		filesinstall
9realinstall:	filesinstall
10
11##### Default values
12FILESDIR?=	${BINDIR}
13FILESOWN?=	${BINOWN}
14FILESGRP?=	${BINGRP}
15FILESMODE?=	${NONBINMODE}
16
17##### Install rules
18filesinstall::	# ensure existence
19
20__fileinstall: .USE
21	${INSTALL_FILE} \
22	    -o ${FILESOWN_${.ALLSRC:T}:U${FILESOWN}} \
23	    -g ${FILESGRP_${.ALLSRC:T}:U${FILESGRP}} \
24	    -m ${FILESMODE_${.ALLSRC:T}:U${FILESMODE}} \
25	    ${.ALLSRC} ${.TARGET}
26
27.endif # !target(__fileinstall)
28
29.for F in ${FILES:O:u}
30_FDIR:=		${FILESDIR_${F}:U${FILESDIR}}		# dir override
31_FNAME:=	${FILESNAME_${F}:U${FILESNAME:U${F:T}}}	# name override
32_F:=		${DESTDIR}${_FDIR}/${_FNAME}		# installed path
33
34${_F}:		${F} __fileinstall			# install rule
35filesinstall::	${_F}
36.PRECIOUS: 	${_F}					# keep if install fails
37.PHONY:		${UPDATE:D:U${_F}}			# clobber unless UPDATE
38.if !defined(BUILD) && !make(all) && !make(${F})
39${_F}:		.MADE					# no build at install
40.endif
41.endfor
42
43.undef _FDIR
44.undef _FNAME
45.undef _F
46
47FILES:=		# reset to empty
48