mirror of
https://github.com/freebsd/freebsd-src
synced 2024-11-03 03:53:44 +00:00
c59c3bf34d
Merge commit '368b06ce6b0135d6de13f7265f6dcbaeb791b3bb'
91 lines
2.2 KiB
Makefile
91 lines
2.2 KiB
Makefile
# SPDX-License-Identifier: BSD-2-Clause
|
|
#
|
|
# $Id: inc.mk,v 1.9 2024/02/17 17:26:57 sjg Exp $
|
|
#
|
|
# @(#) Copyright (c) 2008, Simon J. Gerraty
|
|
#
|
|
# This file is provided in the hope that it will
|
|
# be of use. There is absolutely NO WARRANTY.
|
|
# Permission to copy, redistribute or otherwise
|
|
# use this file is hereby granted provided that
|
|
# the above copyright notice and this notice are
|
|
# left intact.
|
|
#
|
|
# Please send copies of changes and bug-fixes to:
|
|
# sjg@crufty.net
|
|
#
|
|
|
|
.include <init.mk>
|
|
|
|
.if !empty(LIBOWN)
|
|
INC_INSTALL_OWN ?= -o ${LIBOWN} -g ${LIBGRP}
|
|
.endif
|
|
INCMODE ?= 444
|
|
INC_COPY ?= -C
|
|
INCSDIR ?= ${INCDIR}
|
|
|
|
STAGE_INCSDIR?= ${STAGE_OBJTOP}${INCSDIR}
|
|
|
|
# accommodate folk used to freebsd
|
|
INCGROUPS ?= ${INCSGROUPS:UINCS}
|
|
INCGROUPS := ${INCGROUPS:O:u}
|
|
|
|
.if !target(buildincludes)
|
|
.for group in ${INCGROUPS}
|
|
buildincludes: ${${group}}
|
|
.endfor
|
|
.endif
|
|
buildincludes:
|
|
includes: buildincludes
|
|
|
|
.if !target(incinstall)
|
|
.for group in ${INCGROUPS}
|
|
.if !empty(${group})
|
|
.if ${group} != "INC"
|
|
${group}_INSTALL_OWN ?= ${INC_INSTALL_OWN}
|
|
${group}DIR ?= ${INCDIR}
|
|
.endif
|
|
# incase we are staging
|
|
STAGE_DIR.${group} ?= ${STAGE_OBJTOP}${${group}DIR}
|
|
|
|
.for header in ${${group}:O:u}
|
|
${group}_INSTALL_OWN.${header:T} ?= ${${group}_INSTALL_OWN}
|
|
${group}DIR.${header:T} ?= ${${group}DIR}
|
|
inc_mkdir_list += ${${group}DIR.${header:T}}
|
|
|
|
.if defined(${group}NAME.${header:T})
|
|
STAGE_AS_SETS += ${group}
|
|
STAGE_AS_${header} = ${${group}NAME.${header:T}}
|
|
stage_as.${group}: ${header}
|
|
|
|
incinstall: incinstall.${group}.${header:T}
|
|
incinstall.${group}.${header:T}: ${header} inc_mkdirs
|
|
${INSTALL} ${INC_COPY} ${${group}_INSTALL_OWN.${header:T}} -m ${INCMODE} ${.ALLSRC:Ninc_mkdirs} ${DESTDIR}${${group}DIR}/${${group}NAME.${header:T}}
|
|
|
|
.else
|
|
STAGE_SETS += ${group}
|
|
stage_files.${group}: ${header}
|
|
incinstall.${group}: ${header}
|
|
incinstall: incinstall.${group}
|
|
.endif
|
|
|
|
.endfor # header
|
|
|
|
incinstall.${group}: inc_mkdirs
|
|
${INSTALL} ${INC_COPY} ${${group}_INSTALL_OWN} -m ${INCMODE} \
|
|
${.ALLSRC:Ninc_mkdirs:O:u} ${DESTDIR}${${group}DIR}
|
|
|
|
.endif # !empty
|
|
.endfor # group
|
|
|
|
inc_mkdirs:
|
|
@for d in ${inc_mkdir_list:O:u}; do \
|
|
test -d ${DESTDIR}$$d || \
|
|
${INSTALL} -d ${INC_INSTALL_OWN} -m 775 ${DESTDIR}$$d; \
|
|
done
|
|
|
|
.endif # !target(incinstall)
|
|
|
|
beforeinstall:
|
|
realinstall: incinstall
|
|
.ORDER: beforeinstall incinstall
|