xref: /freebsd/usr.sbin/sysconf/sysconf-src.8 (revision b4a465e566a1850e232b454efe99e05c1ea93f67)
1*3fe5961aSDevin Teske.\" Copyright (c) 2013-2026 Devin Teske <dteske@FreeBSD.org>
2*3fe5961aSDevin Teske.\" Copyright (c) 2021-2026 Faraz Vahedi <kfv@FreeBSD.org>
3*3fe5961aSDevin Teske.\"
4*3fe5961aSDevin Teske.\" SPDX-License-Identifier: BSD-2-Clause
5*3fe5961aSDevin Teske.\"
6*3fe5961aSDevin Teske.Dd August 2, 2026
7*3fe5961aSDevin Teske.Dt SYSCONF-SRC 8
8*3fe5961aSDevin Teske.Os
9*3fe5961aSDevin Teske.Sh NAME
10*3fe5961aSDevin Teske.Nm "sysconf src"
11*3fe5961aSDevin Teske.Nd configure the src-env.conf / make.conf / src.conf triad
12*3fe5961aSDevin Teske.Sh SYNOPSIS
13*3fe5961aSDevin Teske.Nm sysconf
14*3fe5961aSDevin Teske.Cm src
15*3fe5961aSDevin Teske.Op Fl ceFinNqsvVx
16*3fe5961aSDevin Teske.Op Fl j Ar jail | Fl R Ar dir
17*3fe5961aSDevin Teske.Op Fl f Ar file
18*3fe5961aSDevin Teske.Ar name Ns Op Ns Oo +|- Oc Ns = Ns Ar value
19*3fe5961aSDevin Teske.Ar ...
20*3fe5961aSDevin Teske.Nm sysconf
21*3fe5961aSDevin Teske.Cm src
22*3fe5961aSDevin Teske.Op Fl eFnNqvV
23*3fe5961aSDevin Teske.Op Fl f Ar file
24*3fe5961aSDevin Teske.Fl a
25*3fe5961aSDevin Teske.Nm sysconf
26*3fe5961aSDevin Teske.Cm src
27*3fe5961aSDevin Teske.Op Fl E
28*3fe5961aSDevin Teske.Fl l | L
29*3fe5961aSDevin Teske.Sh DESCRIPTION
30*3fe5961aSDevin TeskeThe
31*3fe5961aSDevin Teske.Cm src
32*3fe5961aSDevin Tesketarget of
33*3fe5961aSDevin Teske.Xr sysconf 8
34*3fe5961aSDevin Teskeis the
35*3fe5961aSDevin Teske.Pa /usr/src
36*3fe5961aSDevin Teskebuild audience:
37*3fe5961aSDevin Teskeit consults the same triad
38*3fe5961aSDevin Teske.Xr make 1
39*3fe5961aSDevin Teskeuses when building the source tree
40*3fe5961aSDevin Teske.Po
41*3fe5961aSDevin Teske.Pa src-env.conf ,
42*3fe5961aSDevin Teskethen
43*3fe5961aSDevin Teske.Pa make.conf ,
44*3fe5961aSDevin Teskethen
45*3fe5961aSDevin Teske.Pa src.conf
46*3fe5961aSDevin Teske.Pc ,
47*3fe5961aSDevin Teskehonoring
48*3fe5961aSDevin Teske.Ev SRC_ENV_CONF ,
49*3fe5961aSDevin Teske.Ev __MAKE_CONF ,
50*3fe5961aSDevin Teskeand
51*3fe5961aSDevin Teske.Ev SRCCONF
52*3fe5961aSDevin Teskewhen set.
53*3fe5961aSDevin TeskeSee
54*3fe5961aSDevin Teske.Xr bsdconf_format 3
55*3fe5961aSDevin Teskeand
56*3fe5961aSDevin Teske.Xr src.conf 5 .
57*3fe5961aSDevin TeskeShared options are in
58*3fe5961aSDevin Teske.Xr sysconf 8 ;
59*3fe5961aSDevin Teskeauthoritative-file and removal policy in
60*3fe5961aSDevin Teske.Xr sysconf-targets 8 ;
61*3fe5961aSDevin Teske.Ql +=
62*3fe5961aSDevin Teskeand
63*3fe5961aSDevin Teske.Ql -=
64*3fe5961aSDevin Teskesemantics match
65*3fe5961aSDevin Teske.Xr sysconf-make 8 .
66*3fe5961aSDevin Teske.Pp
67*3fe5961aSDevin TeskeNew directives are written to
68*3fe5961aSDevin Teske.Pa src.conf
69*3fe5961aSDevin Teske.Pq or the path in Ev SRCCONF ;
70*3fe5961aSDevin Teskean existing definition is rewritten in the file that last set it.
71*3fe5961aSDevin TeskeThere is no separate
72*3fe5961aSDevin Teske.Ql src-env
73*3fe5961aSDevin Teskekeyword;
74*3fe5961aSDevin Teskeuse
75*3fe5961aSDevin Teske.Cm src
76*3fe5961aSDevin Teskeor
77*3fe5961aSDevin Teske.Fl f
78*3fe5961aSDevin Teskefor surgical edits of
79*3fe5961aSDevin Teske.Pa src-env.conf .
80*3fe5961aSDevin Teske.Pp
81*3fe5961aSDevin Teske.Ql WITH_*
82*3fe5961aSDevin Teskeand
83*3fe5961aSDevin Teske.Ql WITHOUT_*
84*3fe5961aSDevin Teskeare presence knobs
85*3fe5961aSDevin Teske.Po
86*3fe5961aSDevin Teske.Xr src.conf 5
87*3fe5961aSDevin Teskeignores the value; empty
88*3fe5961aSDevin Teske.Ql name=
89*3fe5961aSDevin Teskeis the preferred spelling
90*3fe5961aSDevin Teske.Pc .
91*3fe5961aSDevin TeskePrefer
92*3fe5961aSDevin Teske.Fl s
93*3fe5961aSDevin Teske.Ar name
94*3fe5961aSDevin Teskeover
95*3fe5961aSDevin Teske.Ar name Ns =
96*3fe5961aSDevin Teskewhen only presence matters;
97*3fe5961aSDevin Teske.Fl s
98*3fe5961aSDevin Teskeleaves an already-defined knob
99*3fe5961aSDevin Teske.Pq any value
100*3fe5961aSDevin Teskeunchanged and echoes
101*3fe5961aSDevin Teske.Ql (present) (unchanged) .
102*3fe5961aSDevin TeskeAn explicit
103*3fe5961aSDevin Teske.Ar name Ns =
104*3fe5961aSDevin Teske.Pq including empty
105*3fe5961aSDevin Teskealways writes the requested value, and a change of placeholder echoes
106*3fe5961aSDevin Teske.Ql name: old -> new .
107*3fe5961aSDevin Teske.Fl s
108*3fe5961aSDevin Teskeappends to the preferred write file and does not remove an inverse
109*3fe5961aSDevin Teske.Ql WITH_
110*3fe5961aSDevin Teskeor
111*3fe5961aSDevin Teske.Ql WITHOUT_
112*3fe5961aSDevin Teskefor the same option.
113*3fe5961aSDevin TeskeReads show
114*3fe5961aSDevin Teske.Ql name (present)
115*3fe5961aSDevin Teskefor any assigned value;
116*3fe5961aSDevin Teskewith
117*3fe5961aSDevin Teske.Fl e ,
118*3fe5961aSDevin Teskethe real assignment
119*3fe5961aSDevin Teske.Po
120*3fe5961aSDevin Teskee.g.
121*3fe5961aSDevin Teske.Ql name=
122*3fe5961aSDevin Teskeor
123*3fe5961aSDevin Teske.Ql name=t
124*3fe5961aSDevin Teske.Pc ;
125*3fe5961aSDevin Teskewith
126*3fe5961aSDevin Teske.Fl n ,
127*3fe5961aSDevin Teskethat same value alone
128*3fe5961aSDevin Teske.Pq empty when the assignment is Ql name= .
129*3fe5961aSDevin TeskeWriting
130*3fe5961aSDevin Teske.Ql WITH_ Ns Ar foo Ns =no
131*3fe5961aSDevin Teskewarns as on the
132*3fe5961aSDevin Teske.Cm make
133*3fe5961aSDevin Tesketarget
134*3fe5961aSDevin Teske.Pq see Xr sysconf-make 8 ;
135*3fe5961aSDevin Teske.Pa /usr/src
136*3fe5961aSDevin Teskemake evaluates such assignments via
137*3fe5961aSDevin Teske.Pa bsd.opts.mk
138*3fe5961aSDevin Teskeand
139*3fe5961aSDevin Teske.Pa src.opts.mk .
140*3fe5961aSDevin Teske.Pp
141*3fe5961aSDevin Teske.Va WITHOUT_MODULES
142*3fe5961aSDevin Teskeis not a presence knob:
143*3fe5961aSDevin Teskeits value is a module reject list, so
144*3fe5961aSDevin Teske.Fl s
145*3fe5961aSDevin Teskeis rejected and reads print the module list rather than
146*3fe5961aSDevin Teske.Ql (present) .
147*3fe5961aSDevin TeskeSet it with a normal assignment
148*3fe5961aSDevin Teske.Pq e.g. Va WITHOUT_MODULES Ns = Ns Ar plip .
149*3fe5961aSDevin Teske.Pp
150*3fe5961aSDevin TeskeThis target has no defaults file;
151*3fe5961aSDevin Teske.Fl d ,
152*3fe5961aSDevin Teske.Fl D ,
153*3fe5961aSDevin Teskeand
154*3fe5961aSDevin Teske.Fl A
155*3fe5961aSDevin Teskeare errors.
156*3fe5961aSDevin Teske.Sh ENVIRONMENT
157*3fe5961aSDevin Teske.Bl -tag -width "SRC_ENV_CONF"
158*3fe5961aSDevin Teske.It Ev SRC_ENV_CONF
159*3fe5961aSDevin TeskePath of
160*3fe5961aSDevin Teske.Pa src-env.conf
161*3fe5961aSDevin Teske.Pq default Pa /etc/src-env.conf ;
162*3fe5961aSDevin Teskeverbatim,
163*3fe5961aSDevin Teskenot subject to
164*3fe5961aSDevin Teske.Fl R .
165*3fe5961aSDevin Teske.It Ev __MAKE_CONF
166*3fe5961aSDevin TeskePath of
167*3fe5961aSDevin Teske.Pa make.conf
168*3fe5961aSDevin Teske.Pq default Pa /etc/make.conf ;
169*3fe5961aSDevin Teskeverbatim,
170*3fe5961aSDevin Teskenot subject to
171*3fe5961aSDevin Teske.Fl R .
172*3fe5961aSDevin Teske.It Ev SRCCONF
173*3fe5961aSDevin TeskePath of
174*3fe5961aSDevin Teske.Pa src.conf
175*3fe5961aSDevin Teske.Pq default Pa /etc/src.conf ;
176*3fe5961aSDevin Teskeverbatim,
177*3fe5961aSDevin Teskenot subject to
178*3fe5961aSDevin Teske.Fl R .
179*3fe5961aSDevin TeskeAlso the preferred write file for new directives.
180*3fe5961aSDevin Teske.El
181*3fe5961aSDevin Teske.Sh FILES
182*3fe5961aSDevin Teske.Bl -tag -width "/etc/src-env.conf" -compact
183*3fe5961aSDevin Teske.It Pa /etc/src-env.conf
184*3fe5961aSDevin TeskeFirst file of the triad.
185*3fe5961aSDevin Teske.It Pa /etc/make.conf
186*3fe5961aSDevin TeskeMiddle file of the triad.
187*3fe5961aSDevin Teske.It Pa /etc/src.conf
188*3fe5961aSDevin TeskeLast file and preferred write target.
189*3fe5961aSDevin Teske.El
190*3fe5961aSDevin Teske.Sh EXAMPLES
191*3fe5961aSDevin Teske.Dl sysconf src -s WITHOUT_LLDB
192*3fe5961aSDevin Teske.Dl sysconf src WITHOUT_LLDB=
193*3fe5961aSDevin Teske.Dl sysconf src WITHOUT_LLDB
194*3fe5961aSDevin Teske.Dl sysconf src -x WITHOUT_LLDB
195*3fe5961aSDevin Teske.Dl sysconf src -V CFLAGS
196*3fe5961aSDevin Teske.Sh SEE ALSO
197*3fe5961aSDevin Teske.Xr make 1 ,
198*3fe5961aSDevin Teske.Xr bsdconf_format 3 ,
199*3fe5961aSDevin Teske.Xr src.conf 5 ,
200*3fe5961aSDevin Teske.Xr sysconf 8 ,
201*3fe5961aSDevin Teske.Xr sysconf-make 8 ,
202*3fe5961aSDevin Teske.Xr sysconf-targets 8
203*3fe5961aSDevin Teske.Sh HISTORY
204*3fe5961aSDevin TeskeThe
205*3fe5961aSDevin Teske.Nm sysconf
206*3fe5961aSDevin Teskeutility first appeared in
207*3fe5961aSDevin Teske.Fx 16.0 .
208*3fe5961aSDevin Teske.Sh AUTHORS
209*3fe5961aSDevin Teske.An Devin Teske Aq Mt dteske@FreeBSD.org
210*3fe5961aSDevin Teske.An Faraz Vahedi Aq Mt kfv@FreeBSD.org
211