xref: /netbsd/share/mk/bsd.files.mk (revision bf9ec67e)
1#	$NetBSD: bsd.files.mk,v 1.19 2002/04/24 08:18:52 lukem Exp $
2
3.if !target(__fileinstall)
4##### Basic targets
5.PHONY:		filesinstall
6realinstall:	filesinstall
7
8##### Default values
9FILESDIR?=	${BINDIR}
10FILESOWN?=	${BINOWN}
11FILESGRP?=	${BINGRP}
12FILESMODE?=	${NONBINMODE}
13
14##### Install rules
15filesinstall::	# ensure existence
16
17__fileinstall: .USE
18	${INSTALL_FILE} \
19	    -o ${FILESOWN_${.ALLSRC:T}:U${FILESOWN}} \
20	    -g ${FILESGRP_${.ALLSRC:T}:U${FILESGRP}} \
21	    -m ${FILESMODE_${.ALLSRC:T}:U${FILESMODE}} \
22	    ${.ALLSRC} ${.TARGET}
23
24.endif # !target(__fileinstall)
25
26.for F in ${FILES:O:u}
27_FDIR:=		${FILESDIR_${F}:U${FILESDIR}}		# dir override
28_FNAME:=	${FILESNAME_${F}:U${FILESNAME:U${F:T}}}	# name override
29_F:=		${DESTDIR}${_FDIR}/${_FNAME}		# installed path
30
31.if !defined(UPDATE)
32${_F}!		${F} __fileinstall			# install rule
33.if !defined(BUILD) && !make(all) && !make(${F})
34${_F}!		.MADE					# no build at install
35.endif
36.else
37${_F}:		${F} __fileinstall			# install rule
38.if !defined(BUILD) && !make(all) && !make(${F})
39${_F}:		.MADE					# no build at install
40.endif
41.endif
42
43filesinstall::	${_F}
44.PRECIOUS: 	${_F}					# keep if install fails
45.endfor
46
47.undef _FDIR
48.undef _FNAME
49.undef _F
50