xref: /freebsd/share/mk/bsd.files.mk (revision eba4cc15)
1af2dc868SRuslan Ermilov# $FreeBSD$
2af2dc868SRuslan Ermilov
3af2dc868SRuslan Ermilov.if !target(__<bsd.init.mk>__)
4af2dc868SRuslan Ermilov.error bsd.files.mk cannot be included directly.
5af2dc868SRuslan Ermilov.endif
6af2dc868SRuslan Ermilov
7ada17d7bSJulio Merino.if !target(__<bsd.files.mk>__)
8ada17d7bSJulio Merino__<bsd.files.mk>__:
9ada17d7bSJulio Merino
10af2dc868SRuslan ErmilovFILESGROUPS?=	FILES
11af2dc868SRuslan Ermilov
12d7d0effeSBryan Drewery.for group in ${FILESGROUPS}
1366d0a2d5SWarner Losh# Add in foo.yes and remove duplicates from all the groups
1466d0a2d5SWarner Losh${${group}}:= ${${group}} ${${group}.yes}
1566d0a2d5SWarner Losh${${group}}:= ${${group}:O:u}
16af2dc868SRuslan Ermilovbuildfiles: ${${group}}
17af2dc868SRuslan Ermilov.endfor
18af2dc868SRuslan Ermilov
19db74470bSBryan Drewery.if !defined(_SKIP_BUILD)
20af2dc868SRuslan Ermilovall: buildfiles
21db74470bSBryan Drewery.endif
22af2dc868SRuslan Ermilov
23d7d0effeSBryan Drewery.for group in ${FILESGROUPS}
24af2dc868SRuslan Ermilov.if defined(${group}) && !empty(${group})
25cb56d4a8SRui Pauloinstallfiles: installfiles-${group}
26af2dc868SRuslan Ermilov
27af2dc868SRuslan Ermilov${group}OWN?=	${SHAREOWN}
28af2dc868SRuslan Ermilov${group}GRP?=	${SHAREGRP}
29af2dc868SRuslan Ermilov${group}MODE?=	${SHAREMODE}
30af2dc868SRuslan Ermilov${group}DIR?=	${BINDIR}
31eba4cc15SBryan DrewerySTAGE_SETS+=	${group:C,[/*],_,g}
32eba4cc15SBryan DrewerySTAGE_DIR.${group:C,[/*],_,g}= ${STAGE_OBJTOP}${${group}DIR}
33af2dc868SRuslan Ermilov
34144c4421SBaptiste Daroussin.if defined(NO_ROOT)
35144c4421SBaptiste Daroussin.if !defined(${group}TAGS) || ! ${${group}TAGS:Mpackage=*}
36144c4421SBaptiste Daroussin${group}TAGS+=		package=${${group}PACKAGE:Uruntime}
37144c4421SBaptiste Daroussin.endif
38144c4421SBaptiste Daroussin${group}TAG_ARGS=	-T ${${group}TAGS:[*]:S/ /,/g}
39144c4421SBaptiste Daroussin.endif
40144c4421SBaptiste Daroussin
41144c4421SBaptiste Daroussin
42af2dc868SRuslan Ermilov_${group}FILES=
43af2dc868SRuslan Ermilov.for file in ${${group}}
44af2dc868SRuslan Ermilov.if defined(${group}OWN_${file:T}) || defined(${group}GRP_${file:T}) || \
45af2dc868SRuslan Ermilov    defined(${group}MODE_${file:T}) || defined(${group}DIR_${file:T}) || \
46b0be2b12SBryan Drewery    defined(${group}NAME_${file:T}) || defined(${group}NAME)
47af2dc868SRuslan Ermilov${group}OWN_${file:T}?=	${${group}OWN}
48af2dc868SRuslan Ermilov${group}GRP_${file:T}?=	${${group}GRP}
49af2dc868SRuslan Ermilov${group}MODE_${file:T}?=	${${group}MODE}
50af2dc868SRuslan Ermilov${group}DIR_${file:T}?=	${${group}DIR}
51af2dc868SRuslan Ermilov.if defined(${group}NAME)
52af2dc868SRuslan Ermilov${group}NAME_${file:T}?=	${${group}NAME}
53af2dc868SRuslan Ermilov.else
54af2dc868SRuslan Ermilov${group}NAME_${file:T}?=	${file:T}
55af2dc868SRuslan Ermilov.endif
56509301d9SBryan DrewerySTAGE_AS_SETS+=	${file:T}
577750ad47SMarcel MoolenaarSTAGE_AS_${file:T}= ${${group}NAME_${file:T}}
58509301d9SBryan Drewery# XXX {group}OWN,GRP,MODE
59509301d9SBryan DrewerySTAGE_DIR.${file:T}= ${STAGE_OBJTOP}${${group}DIR_${file:T}}
60509301d9SBryan Drewerystage_as.${file:T}: ${file}
617750ad47SMarcel Moolenaar
62cb56d4a8SRui Pauloinstallfiles-${group}: _${group}INS_${file:T}
63af2dc868SRuslan Ermilov_${group}INS_${file:T}: ${file}
64144c4421SBaptiste Daroussin	${INSTALL} ${${group}TAG_ARGS} -o ${${group}OWN_${.ALLSRC:T}} \
65af2dc868SRuslan Ermilov	    -g ${${group}GRP_${.ALLSRC:T}} -m ${${group}MODE_${.ALLSRC:T}} \
66af2dc868SRuslan Ermilov	    ${.ALLSRC} \
67af2dc868SRuslan Ermilov	    ${DESTDIR}${${group}DIR_${.ALLSRC:T}}/${${group}NAME_${.ALLSRC:T}}
68af2dc868SRuslan Ermilov.else
69af2dc868SRuslan Ermilov_${group}FILES+= ${file}
70af2dc868SRuslan Ermilov.endif
71af2dc868SRuslan Ermilov.endfor
72af2dc868SRuslan Ermilov.if !empty(_${group}FILES)
737750ad47SMarcel Moolenaarstage_files.${group}: ${_${group}FILES}
747750ad47SMarcel Moolenaar
75cb56d4a8SRui Pauloinstallfiles-${group}: _${group}INS
76af2dc868SRuslan Ermilov_${group}INS: ${_${group}FILES}
77af2dc868SRuslan Ermilov.if defined(${group}NAME)
78144c4421SBaptiste Daroussin	${INSTALL} ${${group}TAG_ARGS} -o ${${group}OWN} -g ${${group}GRP} \
79af2dc868SRuslan Ermilov	    -m ${${group}MODE} ${.ALLSRC} \
80af2dc868SRuslan Ermilov	    ${DESTDIR}${${group}DIR}/${${group}NAME}
81af2dc868SRuslan Ermilov.else
82144c4421SBaptiste Daroussin	${INSTALL} ${${group}TAG_ARGS} -o ${${group}OWN} -g ${${group}GRP} \
8361c20fc7SBryan Drewery	    -m ${${group}MODE} ${.ALLSRC} ${DESTDIR}${${group}DIR}/
84af2dc868SRuslan Ermilov.endif
85af2dc868SRuslan Ermilov.endif
86af2dc868SRuslan Ermilov
8784aac273SHartmut Brandt.endif # defined(${group}) && !empty(${group})
88af2dc868SRuslan Ermilov.endfor
89af2dc868SRuslan Ermilov
90af2dc868SRuslan Ermilovrealinstall: installfiles
91badb7c1cSRuslan Ermilov.ORDER: beforeinstall installfiles
92ada17d7bSJulio Merino
937750ad47SMarcel Moolenaar.if ${MK_STAGING} != "no"
947750ad47SMarcel Moolenaar.if !empty(STAGE_SETS)
957750ad47SMarcel Moolenaarbuildfiles: stage_files
967750ad47SMarcel Moolenaar.if !empty(STAGE_AS_SETS)
977750ad47SMarcel Moolenaarbuildfiles: stage_as
987750ad47SMarcel Moolenaar.endif
997750ad47SMarcel Moolenaar.endif
1007750ad47SMarcel Moolenaar.endif
101ee7b0571SSimon J. Gerraty
102ada17d7bSJulio Merino.endif # !target(__<bsd.files.mk>__)
103