KCONFIG-MERGE(1)

โœจ kconfig-merge โœจ โ€” the manual page, but make it a group chat

okay so bestie, welcome to kconfig-merge(1) ๐Ÿ’– this is the standalone implementation of the Linux Kconfig parser, and yes she's iconic. The vibe here is the kconfig toolkit supporting the Kconfig language, implementing the parser and the configuration support that comes with your KConfig files โ€” all while respecting the Linux kernel KConfig convention. periodt. ๐Ÿ‘‘


๐ŸŒธ SYNOPSIS ๐ŸŒธ

kconfig-merge [options] <KConfig_file>

That's it. That's the whole entrance. <KConfig_file> is your main character, [options] is her entourage. ๐ŸŽ€


๐Ÿฆ‹ DESCRIPTION ๐Ÿฆ‹

So the kconfig toolkit is out here supporting the Kconfig language, and it implements the parser plus the configuration support that goes with your KConfig files, all respecting the Linux kernel KConfig convention. no cap. ๐Ÿ’…

At configuration time, we've got a whole little clique:

  • kconfig-mconf โ€” based on ncurses (menuconfig). the classic. ๐ŸŒˆ
  • kconfig-conf โ€” based on dialog (config). โœจ
  • kconfig-gconf โ€” based on GTK+ (gconfig). she's got a GUI, she's fancy. ๐Ÿ’œ

Associated tools:

  • kconfig-diff โ€” displays symbols diff between .config files. the way she compares thingsโ€ฆ obsessed. ๐Ÿ”ฅ

๐ŸŽ€ OPTIONS ๐ŸŽ€

  • --silentoldconfig โ€” only for kconfig-conf. reloads a given .config and regenerates the header and command files accordingly. lowkey a glow-up for your config. ๐Ÿ’–
  • --allnoconfig โ€” set all boolean configuration to no. nope nope nope, everyone's a no. ๐Ÿ™ˆ
  • --allyesconfig โ€” set all boolean configuration to yes. yes yes yes, everyone's a yes, we're all saying yes. ๐Ÿ‘‘
  • --randconfig โ€” generates a random configuration. chaos config, as a treat. ๐ŸŽฒโœจ

๐ŸŒˆ ENVIRONMENT ๐ŸŒˆ

๐Ÿ’œ Environment variables for '*config'

  • KCONFIG_CONFIG โ€” you can use this env var to specify a default kernel config file name, overriding the default name of ".config". name your own config bestie, you're free. ๐Ÿฆ‹
  • KCONFIG_OVERWRITECONFIG โ€” if you set KCONFIG_OVERWRITECONFIG in the environment, Kconfig will not break symlinks when .config is a symlink to somewhere else. she respects the link. ๐Ÿซถ
  • CONFIG_ โ€” if you set CONFIG_ in the environment, Kconfig will prefix all symbols with its value when saving the configuration, instead of using the default, "CONFIG_". rebranding era. ๐Ÿ’…

๐ŸŒธ Environment variables for '{allyes/allmod/allno/rand}config'

  • KCONFIG_ALLCONFIG โ€” the allyesconfig / allmodconfig / allnoconfig / randconfig variants can also use the environment variable KCONFIG_ALLCONFIG as a flag or a filename that contains config symbols that the user requires to be set to a specific value.

If KCONFIG_ALLCONFIG is used without a filename where KCONFIG_ALLCONFIG == "" or KCONFIG_ALLCONFIG == "1", "make *config" checks for a file named "all{yes/mod/no/def/random}.config" (corresponding to the *config command that was used) for symbol values that are to be forced. If this file is not found, it checks for a file named "all.config" to contain forced values.

This enables you to create "miniature" config (miniconfig) or custom config files containing just the config symbols that you are interested in. Then the kernel config system generates the full .config file, including symbols of your miniconfig file. โœจ it's giving build-from-subset, it's giving efficiency.

This 'KCONFIG_ALLCONFIG' file is a config file which contains (usually a subset of all) preset config symbols. These variable settings are still subject to normal dependency checks. so don't get cute, the deps still check you. ๐Ÿ‘€

Examples:

KCONFIG_ALLCONFIG=custom-notebook.config make allnoconfig or
KCONFIG_ALLCONFIG=mini.config make allnoconfig or
make KCONFIG_ALLCONFIG=mini.config allnoconfig

These examples will disable most options (allnoconfig) but enable or disable the options that are explicitly listed in the specified mini-config files. so: mostly off, except the ones you literally wrote down. ๐Ÿ’–

๐Ÿงš Environment variables for 'randconfig'

  • KCONFIG_SEED โ€” you can set this to the integer value used to seed the RNG, if you want to somehow debug the behaviour of the kconfig parser/frontends. If not set, the current time will be used. deterministic chaos, bestie. ๐Ÿ”ฎ
  • KCONFIG_PROBABILITY โ€” this variable can be used to skew the probabilities. See /usr/share/doc/kconfig-frontends/kconfig.txt.gz. ๐Ÿ’ซ

๐Ÿ‘‘ Environment variables for 'silentoldconfig'

  • KCONFIG_NOSILENTUPDATE โ€” if this variable has a non-blank value, it prevents silent kernel config updates (requires explicit updates). she said no sneaky updates. ๐Ÿ™…โ€โ™€๏ธ
  • KCONFIG_AUTOCONFIG โ€” this environment variable can be set to specify the path name of the "auto.conf" file. Its default value is "include/config/auto.conf". ๐ŸŽ€
  • KCONFIG_TRISTATE โ€” this environment variable can be set to specify the path name of the "tristate.conf" file. Its default value is "include/config/tristate.conf". ๐ŸŒธ
  • KCONFIG_AUTOHEADER โ€” this environment variable can be set to specify the path name of the "autoconf.h" (header) file. Its default value is "include/generated/autoconf.h". โญ

๐Ÿ’€ HISTORY ๐Ÿ’€

June 2017, Man page originally compiled by Philippe Thierry (phil at reseau-libre dot com). we stan a documented original. ๐Ÿซถ


and that's the whole page, bestie โ€” written by Philippe Thierry for the kconfig-merge Man Page, from way back in October 2017. iykyk. go merge some configs. ๐Ÿ’…โœจ๐Ÿ’–