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