1# $FreeBSD$ 2 3.if !target(__<bsd.init.mk>__) 4.error bsd.incs.mk cannot be included directly. 5.endif 6 7.if !defined(NO_INCS) && ${MK_TOOLCHAIN} != "no" 8 9INCSGROUPS?= INCS 10 11.if !target(buildincludes) 12.for group in ${INCSGROUPS} 13buildincludes: ${${group}} 14.endfor 15.endif 16 17all: buildincludes 18 19.if !target(installincludes) 20.for group in ${INCSGROUPS} 21.if defined(${group}) && !empty(${group}) 22 23${group}OWN?= ${BINOWN} 24${group}GRP?= ${BINGRP} 25${group}MODE?= ${NOBINMODE} 26${group}DIR?= ${INCLUDEDIR} 27STAGE_SETS+= ${group} 28STAGE_DIR.${group}= ${STAGE_OBJTOP}${${group}DIR} 29 30_${group}INCS= 31.for header in ${${group}} 32.if defined(${group}OWN_${header:T}) || defined(${group}GRP_${header:T}) || \ 33 defined(${group}MODE_${header:T}) || defined(${group}DIR_${header:T}) || \ 34 defined(${group}NAME_${header:T}) 35${group}OWN_${header:T}?= ${${group}OWN} 36${group}GRP_${header:T}?= ${${group}GRP} 37${group}MODE_${header:T}?= ${${group}MODE} 38${group}DIR_${header:T}?= ${${group}DIR} 39.if defined(${group}NAME) 40${group}NAME_${header:T}?= ${${group}NAME} 41.else 42${group}NAME_${header:T}?= ${header:T} 43.endif 44STAGE_AS_SETS+= ${group} 45STAGE_AS_${header:T}= ${${group}NAME_${header:T}} 46stage_as.${group}: ${header} 47 48installincludes: _${group}INS_${header:T} 49_${group}INS_${header:T}: ${header} 50 ${INSTALL} -C -o ${${group}OWN_${.ALLSRC:T}} \ 51 -g ${${group}GRP_${.ALLSRC:T}} -m ${${group}MODE_${.ALLSRC:T}} \ 52 ${.ALLSRC} \ 53 ${DESTDIR}${${group}DIR_${.ALLSRC:T}}/${${group}NAME_${.ALLSRC:T}} 54.else 55_${group}INCS+= ${header} 56.endif 57.endfor 58.if !empty(_${group}INCS) 59stage_files.${group}: ${_${group}INCS} 60 61installincludes: _${group}INS 62_${group}INS: ${_${group}INCS} 63.if defined(${group}NAME) 64 ${INSTALL} -C -o ${${group}OWN} -g ${${group}GRP} -m ${${group}MODE} \ 65 ${.ALLSRC} ${DESTDIR}${${group}DIR}/${${group}NAME} 66.else 67 ${INSTALL} -C -o ${${group}OWN} -g ${${group}GRP} -m ${${group}MODE} \ 68 ${.ALLSRC} ${DESTDIR}${${group}DIR} 69.endif 70.endif 71 72.endif # defined(${group}) && !empty(${group}) 73.endfor 74 75.if defined(INCSLINKS) && !empty(INCSLINKS) 76installincludes: 77 @set ${INCSLINKS}; \ 78 while test $$# -ge 2; do \ 79 l=$$1; \ 80 shift; \ 81 t=${DESTDIR}$$1; \ 82 shift; \ 83 ${ECHO} $$t -\> $$l; \ 84 ln -fs $$l $$t; \ 85 done; true 86.endif 87.endif # !target(installincludes) 88 89realinstall: installincludes 90.ORDER: beforeinstall installincludes 91 92.if ${MK_STAGING} != "no" 93.if !target(stage_includes) 94.if !empty(STAGE_SETS) 95buildincludes: stage_files 96.if !empty(STAGE_AS_SETS) 97buildincludes: stage_as 98.endif 99.endif 100.endif 101.endif 102 103.endif # !defined(NO_INCS) && ${MK_TOOLCHAIN} != "no" 104