From 7821efba175445d586149fef1f3d5fd12473ce8f Mon Sep 17 00:00:00 2001 From: Ulf Magnusson Date: Mon, 4 Jun 2018 10:59:52 +0200 Subject: Add syncconfig.py, used for incremental builds This script calls through to Kconfiglib.sync_deps() and can be used to implement incremental builds. Having additional dependency mechanisms for changes to Kconfig files and environment variables is redundant, because those changes indirectly influence symbol values and will be caught as well. --- syncconfig.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100755 syncconfig.py diff --git a/syncconfig.py b/syncconfig.py new file mode 100755 index 0000000..7a97d01 --- /dev/null +++ b/syncconfig.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python + +# This script can be used to implement incremental builds, where changing a +# symbol will recompile just the source files that reference it. +# +# See the docstring for the Kconfig.sync_deps() function for more usage +# information. +# +# Usage: +# +# (Automatically) run the following command before each build: +# +# $ syncconfig [] +# +# This will indirectly catch any (relevant) changes to Kconfig files and +# environment variables as well, so it's redundant to have separate +# dependencies for those (except as a slight optimization). + +import sys + +import kconfiglib + +def main(): + if not 2 <= len(sys.argv) <= 3: + sys.exit("usage: {} [Kconfig] ".format(sys.argv[0])) + + if len(sys.argv) == 2: + kconfig_filename = "Kconfig" + sym_dir = sys.argv[1] + else: + kconfig_filename = sys.argv[1] + sym_dir = sys.argv[2] + + kconfiglib.Kconfig(kconfig_filename).sync_deps(sym_dir) + +if __name__ == "__main__": + main() -- cgit v1.2.3