197769Sru# $FreeBSD: stable/11/share/mk/bsd.files.mk 311201 2017-01-03 23:25:55Z bdrewery $
297769Sru
397769Sru.if !target(__<bsd.init.mk>__)
497769Sru.error bsd.files.mk cannot be included directly.
597769Sru.endif
697769Sru
7267276Sjmmv.if !target(__<bsd.files.mk>__)
8267276Sjmmv__<bsd.files.mk>__:
9267276Sjmmv
1097769SruFILESGROUPS?=	FILES
1197769Sru
12311199Sbdrewery.for group in ${FILESGROUPS}
13287185Simp# Add in foo.yes and remove duplicates from all the groups
14287185Simp${${group}}:= ${${group}} ${${group}.yes}
15287185Simp${${group}}:= ${${group}:O:u}
1697769Srubuildfiles: ${${group}}
1797769Sru.endfor
1897769Sru
19296121Sbdrewery.if !defined(_SKIP_BUILD)
2097769Sruall: buildfiles
21296121Sbdrewery.endif
2297769Sru
23311199Sbdrewery.for group in ${FILESGROUPS}
2497769Sru.if defined(${group}) && !empty(${group})
25257095Srpauloinstallfiles: installfiles-${group}
2697769Sru
2797769Sru${group}OWN?=	${SHAREOWN}
2897769Sru${group}GRP?=	${SHAREGRP}
2997769Sru${group}MODE?=	${SHAREMODE}
3097769Sru${group}DIR?=	${BINDIR}
31311201SbdrewerySTAGE_SETS+=	${group:C,[/*],_,g}
32311201SbdrewerySTAGE_DIR.${group:C,[/*],_,g}= ${STAGE_OBJTOP}${${group}DIR}
3397769Sru
34298107Sgjb.if defined(NO_ROOT)
35298107Sgjb.if !defined(${group}TAGS) || ! ${${group}TAGS:Mpackage=*}
36298107Sgjb${group}TAGS+=		package=${${group}PACKAGE:Uruntime}
37298107Sgjb.endif
38298107Sgjb${group}TAG_ARGS=	-T ${${group}TAGS:[*]:S/ /,/g}
39298107Sgjb.endif
40298107Sgjb
41298107Sgjb
4297769Sru_${group}FILES=
4397769Sru.for file in ${${group}}
4497769Sru.if defined(${group}OWN_${file:T}) || defined(${group}GRP_${file:T}) || \
4597769Sru    defined(${group}MODE_${file:T}) || defined(${group}DIR_${file:T}) || \
46290026Sbdrewery    defined(${group}NAME_${file:T}) || defined(${group}NAME)
4797769Sru${group}OWN_${file:T}?=	${${group}OWN}
4897769Sru${group}GRP_${file:T}?=	${${group}GRP}
4997769Sru${group}MODE_${file:T}?=	${${group}MODE}
5097769Sru${group}DIR_${file:T}?=	${${group}DIR}
5197769Sru.if defined(${group}NAME)
5297769Sru${group}NAME_${file:T}?=	${${group}NAME}
5397769Sru.else
5497769Sru${group}NAME_${file:T}?=	${file:T}
5597769Sru.endif
56288210SbdrewerySTAGE_AS_SETS+=	${file:T}
57284345SsjgSTAGE_AS_${file:T}= ${${group}NAME_${file:T}}
58288210Sbdrewery# XXX {group}OWN,GRP,MODE
59288210SbdrewerySTAGE_DIR.${file:T}= ${STAGE_OBJTOP}${${group}DIR_${file:T}}
60288210Sbdrewerystage_as.${file:T}: ${file}
61284345Ssjg
62257095Srpauloinstallfiles-${group}: _${group}INS_${file:T}
6397769Sru_${group}INS_${file:T}: ${file}
64298107Sgjb	${INSTALL} ${${group}TAG_ARGS} -o ${${group}OWN_${.ALLSRC:T}} \
6597769Sru	    -g ${${group}GRP_${.ALLSRC:T}} -m ${${group}MODE_${.ALLSRC:T}} \
6697769Sru	    ${.ALLSRC} \
6797769Sru	    ${DESTDIR}${${group}DIR_${.ALLSRC:T}}/${${group}NAME_${.ALLSRC:T}}
6897769Sru.else
6997769Sru_${group}FILES+= ${file}
7097769Sru.endif
7197769Sru.endfor
7297769Sru.if !empty(_${group}FILES)
73284345Ssjgstage_files.${group}: ${_${group}FILES}
74284345Ssjg
75257095Srpauloinstallfiles-${group}: _${group}INS
7697769Sru_${group}INS: ${_${group}FILES}
7797769Sru.if defined(${group}NAME)
78298107Sgjb	${INSTALL} ${${group}TAG_ARGS} -o ${${group}OWN} -g ${${group}GRP} \
7997769Sru	    -m ${${group}MODE} ${.ALLSRC} \
8097769Sru	    ${DESTDIR}${${group}DIR}/${${group}NAME}
8197769Sru.else
82298107Sgjb	${INSTALL} ${${group}TAG_ARGS} -o ${${group}OWN} -g ${${group}GRP} \
83289391Sbdrewery	    -m ${${group}MODE} ${.ALLSRC} ${DESTDIR}${${group}DIR}/
8497769Sru.endif
8597769Sru.endif
8697769Sru
87144893Sharti.endif # defined(${group}) && !empty(${group})
8897769Sru.endfor
8997769Sru
9097769Srurealinstall: installfiles
9199343Sru.ORDER: beforeinstall installfiles
92267276Sjmmv
93284345Ssjg.if ${MK_STAGING} != "no"
94284345Ssjg.if !empty(STAGE_SETS)
95284345Ssjgbuildfiles: stage_files
96284345Ssjg.if !empty(STAGE_AS_SETS)
97284345Ssjgbuildfiles: stage_as
98284345Ssjg.endif
99284345Ssjg.endif
100284345Ssjg.endif
101284345Ssjg
102267276Sjmmv.endif # !target(__<bsd.files.mk>__)
103