Initial Contribution

msm-2.6.38: tag AU_LINUX_ANDROID_GINGERBREAD.02.03.04.00.142

Signed-off-by: Bryan Huntsman <bryanh@codeaurora.org>
diff --git a/chromeos/scripts/splitconfig b/chromeos/scripts/splitconfig
new file mode 100755
index 0000000..262fa20
--- /dev/null
+++ b/chromeos/scripts/splitconfig
@@ -0,0 +1,49 @@
+#!/usr/bin/env python
+
+import os
+import re
+import sys
+
+allconfigs = {}
+
+# Parse config files
+for config in os.listdir("."):
+    # Only config.*
+    if not config.startswith("config."):
+        continue
+    # Ignore emacs backups
+    if config.endswith("~"):
+        continue
+    # Nothing that is disabled, or remnant
+    if re.search("\.(default|disabled|stub)$", config):
+        continue
+
+    allconfigs[config] = set()
+
+    for line in open(config):
+        m = re.match("#*\s*CONFIG_(\w+)[\s=](.*)$", line)
+        if not m:
+            continue
+        option, value = m.groups()
+        allconfigs[config].add((option, value))
+
+# Split out common config options
+common = allconfigs.values()[0].copy()
+for config in allconfigs.keys():
+    common &= allconfigs[config]
+for config in allconfigs.keys():
+    allconfigs[config] -= common
+allconfigs["config.common"] = common
+
+# Generate new splitconfigs
+for config in allconfigs.keys():
+    f = open(config, "w")
+    command = os.path.basename(sys.argv[0])
+    print >>f, "#\n# Config options generated by %s\n#" % command
+    for option, value in sorted(list(allconfigs[config])):
+        if value == "is not set":
+            print >>f, "# CONFIG_%s %s" % (option, value)
+        else:
+            print >>f, "CONFIG_%s=%s" % (option, value)
+
+    f.close()