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