1*3fe5961aSDevin Teske /* 2*3fe5961aSDevin Teske * Copyright (c) 2013-2026 Devin Teske <dteske@FreeBSD.org> 3*3fe5961aSDevin Teske * Copyright (c) 2021-2026 Faraz Vahedi <kfv@FreeBSD.org> 4*3fe5961aSDevin Teske * 5*3fe5961aSDevin Teske * SPDX-License-Identifier: BSD-2-Clause 6*3fe5961aSDevin Teske */ 7*3fe5961aSDevin Teske 8*3fe5961aSDevin Teske #include "bsdconf_formats.h" 9*3fe5961aSDevin Teske 10*3fe5961aSDevin Teske /* 11*3fe5961aSDevin Teske * BSDCONF_FORMAT_SRC: /usr/src build audience 12*3fe5961aSDevin Teske * 13*3fe5961aSDevin Teske * Make(1) syntax, matching make.conf(5) / src.conf(5). The FreeBSD source 14*3fe5961aSDevin Teske * tree consults three configuration files in order (see src.sys.env.mk, 15*3fe5961aSDevin Teske * sys.mk, and src.sys.mk): src-env.conf, make.conf, then src.conf. New 16*3fe5961aSDevin Teske * directives are written to src.conf (def->path); later files override 17*3fe5961aSDevin Teske * earlier ones for `=' and accumulate for `+='. Environment overrides 18*3fe5961aSDevin Teske * (SRC_ENV_CONF, __MAKE_CONF, SRCCONF) are applied by sysconf(8). 19*3fe5961aSDevin Teske * 20*3fe5961aSDevin Teske * sys.mk / local.sys.mk and `.if' / control flow are intentionally out of 21*3fe5961aSDevin Teske * scope: conf files may contain them, but this format does not evaluate 22*3fe5961aSDevin Teske * them (see LIMITATIONS in sysconf(8)). 23*3fe5961aSDevin Teske */ 24*3fe5961aSDevin Teske static const struct bsdconf_source bsdconf_src_sources[] = { 25*3fe5961aSDevin Teske { BSDCONF_SOURCE_FILE, "/etc/src-env.conf" }, 26*3fe5961aSDevin Teske { BSDCONF_SOURCE_FILE, "/etc/make.conf" }, 27*3fe5961aSDevin Teske { BSDCONF_SOURCE_FILE, "/etc/src.conf" }, 28*3fe5961aSDevin Teske { BSDCONF_SOURCE_FILE, NULL }, 29*3fe5961aSDevin Teske }; 30*3fe5961aSDevin Teske 31*3fe5961aSDevin Teske const struct bsdconf_format_def bsdconf_format_src_def = { 32*3fe5961aSDevin Teske .keyword = "src", 33*3fe5961aSDevin Teske .path = "/etc/src.conf", 34*3fe5961aSDevin Teske .sources = bsdconf_src_sources, 35*3fe5961aSDevin Teske .processing = BSDCONF_BREAK_ON_EQUALS | BSDCONF_CASE_SENSITIVE | 36*3fe5961aSDevin Teske BSDCONF_OPERATOR_EQUALS, 37*3fe5961aSDevin Teske .put = BSDCONF_PUT_UNQUOTED | BSDCONF_PUT_ALLOW_EMPTY, 38*3fe5961aSDevin Teske }; 39