]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - share/mk/bsd.confs.mk
Optionally bind ktls threads to NUMA domains
[FreeBSD/FreeBSD.git] / share / mk / bsd.confs.mk
1 # $FreeBSD$
2
3 .if !target(__<bsd.init.mk>__)
4 .  error bsd.conf.mk cannot be included directly.
5 .endif
6
7 .if !target(__<bsd.confs.mk>__)
8 .  if target(__<bsd.dirs.mk>__)
9 .    error bsd.dirs.mk must be included after bsd.confs.mk.
10 .  endif
11
12 __<bsd.confs.mk>__:
13
14 CONFGROUPS?=    CONFS
15
16 .  if !target(buildconfig)
17 .    for group in ${CONFGROUPS}
18 buildconfig: ${${group}}
19 .    endfor
20 .  endif
21
22 .  if !defined(_SKIP_BUILD)
23 all: buildconfig
24 .  endif
25
26 .  for group in ${CONFGROUPS}
27 .    if defined(${group}) && !empty(${group})
28
29 .      if !target(afterinstallconfig)
30 afterinstallconfig:
31 .      endif
32 .      if !target(beforeinstallconfig)
33 beforeinstallconfig:
34 .      endif
35 installconfig:  beforeinstallconfig realinstallconfig afterinstallconfig
36 .ORDER:         beforeinstallconfig realinstallconfig afterinstallconfig
37
38 ${group}OWN?=   ${SHAREOWN}
39 ${group}GRP?=   ${SHAREGRP}
40 ${group}MODE?=  ${CONFMODE}
41 ${group}DIR?=   ${CONFDIR}
42 STAGE_SETS+=    ${group:C,[/*],_,g}
43
44 .      if defined(NO_ROOT)
45 .        if !defined(${group}TAGS) || ! ${${group}TAGS:Mpackage=*}
46 .          if defined(${group}PACKAGE)
47 ${group}TAGS+=          package=${${group}PACKAGE:Uutilities}
48 .          else
49 ${group}TAGS+=          package=${PACKAGE:Uutilities}
50 .          endif
51 .        endif
52 ${group}TAGS+=          config
53 ${group}TAG_ARGS=       -T ${${group}TAGS:[*]:S/ /,/g}
54 .      endif
55
56
57 .      if ${${group}DIR:S/^\///} == ${${group}DIR}
58 # ${group}DIR specifies a variable that specifies a path
59 DIRS+=  ${${group}DIR}
60 _${group}DIR=   ${${group}DIR}
61 .      else
62 # ${group}DIR specifies a path
63 DIRS+=  ${group}DIR
64 _${group}DIR=   ${group}DIR
65 .      endif
66
67 STAGE_DIR.${group:C,[/*],_,g}= ${STAGE_OBJTOP}${${_${group}DIR}}
68
69 .      for cnf in ${${group}}
70 ${group}OWN_${cnf}?=    ${${group}OWN}
71 ${group}GRP_${cnf}?=    ${${group}GRP}
72 ${group}MODE_${cnf}?=   ${${group}MODE}
73 ${group}DIR_${cnf}?=    ${${group}DIR}
74 .        if defined(${group}NAME)
75 ${group}NAME_${cnf}?=   ${${group}NAME}
76 .        else
77 ${group}NAME_${cnf}?=   ${cnf:T}
78 .        endif
79
80
81 # Determine the directory for the current file.  Default to the parent group
82 # DIR, then check to see how to pass that variable on below.
83 ${group}DIR_${cnf}?=    ${${group}DIR}
84 .        if ${${group}DIR_${cnf}:S/^\///} == ${${group}DIR_${cnf}}
85 # DIR specifies a variable that specifies a path
86 _${group}DIR_${cnf}=    ${${group}DIR_${cnf}}
87 .        else
88 # DIR directly specifies a path
89 _${group}DIR_${cnf}=    ${group}DIR_${cnf}
90 .        endif
91 ${group}PREFIX_${cnf}=  ${DESTDIR}${${_${group}DIR_${cnf}}}
92
93 # Append DIR to DIRS if not already in place -- DIRS is already filtered, so
94 # this is primarily to ease inspection.
95 .        for d in ${DIRS}
96 _DIRS+= ${${d}}
97 .        endfor
98 .        if ${DIRS:M${_${group}DIR_${cnf}}} == ""
99 .          if ${_DIRS:M${${_${group}DIR_${cnf}}}} == ""
100 DIRS+=  ${_${group}DIR_${cnf}}
101 .          else
102 _${group}DIR_${cnf}=    ${group}DIR
103 .          endif
104 .        endif
105
106 .        if defined(${group}NAME)
107 ${group}NAME_${cnf}?=   ${${group}NAME}
108 .        else
109 ${group}NAME_${cnf}?=   ${cnf:T}
110 .        endif # defined(${group}NAME)
111
112 # Work around a bug with install(1) -C and /dev/null
113 .        if ${cnf} == "/dev/null"
114 INSTALL_COPY=
115 .        else
116 INSTALL_COPY=  -C
117 .        endif
118
119 STAGE_AS_SETS+= ${cnf:T}
120 STAGE_AS_${cnf:T}= ${${group}NAME_${cnf:T}}
121 # XXX {group}OWN,GRP,MODE
122 STAGE_DIR.${cnf:T}= ${STAGE_OBJTOP}${${_${group}DIR_${cnf}}}
123 stage_as.${cnf:T}: ${cnf}
124
125 realinstallconfig: installdirs-${_${group}DIR_${cnf}} _${group}INS_${cnf:T}
126 _${group}INS_${cnf:T}: ${cnf}
127         ${INSTALL} ${${group}TAG_ARGS} ${INSTALL_COPY} -o ${${group}OWN_${cnf}} \
128             -g ${${group}GRP_${cnf}} -m ${${group}MODE_${cnf}} \
129             ${.ALLSRC} ${${group}PREFIX_${cnf}}/${${group}NAME_${cnf}}
130 .      endfor # for cnf in ${${group}}
131
132 .    endif # defined(${group}) && !empty(${group})
133 .  endfor
134
135 .if ${MK_STAGING} != "no"
136 .  if !empty(STAGE_SETS)
137 buildconfig: stage_files
138 .    if !empty(STAGE_AS_SETS)
139 buildconfig: stage_as
140 .    endif
141 .  endif
142 .endif
143
144 .endif # !target(__<bsd.confs.mk>__)