196462Sru# $FreeBSD: stable/11/share/mk/bsd.incs.mk 311201 2017-01-03 23:25:55Z bdrewery $
296462Sru
396462Sru.if !target(__<bsd.init.mk>__)
496462Sru.error bsd.incs.mk cannot be included directly.
596462Sru.endif
696462Sru
7274662Simp.if ${MK_INCLUDES} != "no"
8155264Sru
996462SruINCSGROUPS?=	INCS
1096462Sru
11298107Sgjb.if defined(NO_ROOT)
12298107Sgjb.if !defined(TAGS) || ! ${TAGS:Mpackage=*}
13298107SgjbTAGS+=		package=${PACKAGE:Uruntime}
14298107Sgjb.endif
15298107SgjbTAG_ARGS=	-T ${TAGS:[*]:S/ /,/g}
16298107Sgjb.endif
17298107Sgjb
1896668Sru.if !target(buildincludes)
19311199Sbdrewery.for group in ${INCSGROUPS}
2096668Srubuildincludes: ${${group}}
2196462Sru.endfor
2296462Sru.endif
2396462Sru
24296121Sbdrewery.if !defined(_SKIP_BUILD)
2596668Sruall: buildincludes
26296121Sbdrewery.endif
2796462Sru
2896668Sru.if !target(installincludes)
29311199Sbdrewery.for group in ${INCSGROUPS}
3096462Sru.if defined(${group}) && !empty(${group})
3196462Sru
3296462Sru${group}OWN?=	${BINOWN}
3396462Sru${group}GRP?=	${BINGRP}
3496462Sru${group}MODE?=	${NOBINMODE}
35282420Sbapt${group}DIR?=	${INCLUDEDIR}${PRIVATELIB:D/private/${LIB}}
36311201SbdrewerySTAGE_SETS+=	${group:C,[/*],_,g}
37311201SbdrewerySTAGE_DIR.${group:C,[/*],_,g}= ${STAGE_OBJTOP}${${group}DIR}
38311201SbdrewerySTAGE_SYMLINKS_DIR.${group:C,[/*],_,g}= ${STAGE_OBJTOP}
3996462Sru
4096462Sru_${group}INCS=
4196462Sru.for header in ${${group}}
4296462Sru.if defined(${group}OWN_${header:T}) || defined(${group}GRP_${header:T}) || \
4396462Sru    defined(${group}MODE_${header:T}) || defined(${group}DIR_${header:T}) || \
44284345Ssjg    defined(${group}NAME_${header:T}) || defined(${group}NAME)
4596462Sru${group}OWN_${header:T}?=	${${group}OWN}
4696462Sru${group}GRP_${header:T}?=	${${group}GRP}
4796462Sru${group}MODE_${header:T}?=	${${group}MODE}
4896462Sru${group}DIR_${header:T}?=	${${group}DIR}
4996462Sru.if defined(${group}NAME)
5096462Sru${group}NAME_${header:T}?=	${${group}NAME}
5196462Sru.else
5296462Sru${group}NAME_${header:T}?=	${header:T}
5396462Sru.endif
54288210SbdrewerySTAGE_AS_SETS+= ${header:T}
55284345SsjgSTAGE_AS_${header:T}= ${${group}NAME_${header:T}}
56288210Sbdrewery# XXX {group}OWN,GRP,MODE
57288210SbdrewerySTAGE_DIR.${header:T}= ${STAGE_OBJTOP}${${group}DIR_${header:T}}
58288210Sbdrewerystage_as.${header:T}: ${header}
59288210Sbdrewerystage_includes: stage_as.${header:T}
60284345Ssjg
6196668Sruinstallincludes: _${group}INS_${header:T}
6296462Sru_${group}INS_${header:T}: ${header}
6396462Sru	${INSTALL} -C -o ${${group}OWN_${.ALLSRC:T}} \
6496462Sru	    -g ${${group}GRP_${.ALLSRC:T}} -m ${${group}MODE_${.ALLSRC:T}} \
6596462Sru	    ${.ALLSRC} \
6696462Sru	    ${DESTDIR}${${group}DIR_${.ALLSRC:T}}/${${group}NAME_${.ALLSRC:T}}
6796462Sru.else
6896462Sru_${group}INCS+= ${header}
6996462Sru.endif
7096462Sru.endfor
7196462Sru.if !empty(_${group}INCS)
72284345Ssjgstage_files.${group}: ${_${group}INCS}
73284345Ssjgstage_includes: stage_files.${group}
74284345Ssjg
7596668Sruinstallincludes: _${group}INS
7696462Sru_${group}INS: ${_${group}INCS}
7796462Sru.if defined(${group}NAME)
78298107Sgjb	${INSTALL} ${TAG_ARGS:D${TAG_ARGS},development} -C -o ${${group}OWN} -g ${${group}GRP} -m ${${group}MODE} \
7996462Sru	    ${.ALLSRC} ${DESTDIR}${${group}DIR}/${${group}NAME}
8096462Sru.else
81298107Sgjb	${INSTALL} ${TAG_ARGS:D${TAG_ARGS},development} -C -o ${${group}OWN} -g ${${group}GRP} -m ${${group}MODE} \
82289391Sbdrewery	    ${.ALLSRC} ${DESTDIR}${${group}DIR}/
8396462Sru.endif
8496462Sru.endif
8596462Sru
86144893Sharti.endif # defined(${group}) && !empty(${group})
8796462Sru.endfor
8896462Sru
8996462Sru.if defined(INCSLINKS) && !empty(INCSLINKS)
9096668Sruinstallincludes:
91284684Sbapt.for s t in ${INCSLINKS}
92298107Sgjb	@${ECHO} "${DESTDIR}${t} -> ${s}" ; \
93298107Sgjb	${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},development} ${s} ${DESTDIR}${t}
94284684Sbapt.endfor
9596462Sru.endif
96144893Sharti.endif # !target(installincludes)
9796668Sru
9896668Srurealinstall: installincludes
9999343Sru.ORDER: beforeinstall installincludes
100155264Sru
101284345Ssjg.if ${MK_STAGING} != "no" && !defined(_SKIP_BUILD)
102284345Ssjg.if !defined(NO_STAGE_INCLUDES)
103288964SsjgSTAGE_TARGETS+= stage_includes
104284345Ssjg.if !empty(INCSLINKS)
105288964SsjgSTAGE_TARGETS+= stage_symlinks
106284345SsjgSTAGE_SYMLINKS.INCS= ${INCSLINKS}
107284345Ssjg.endif
108284345Ssjg.endif
109284345Ssjg.endif
110284345Ssjg
111289278Sbdrewery.endif # ${MK_INCLUDES} != "no"
112