diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2013-04-02 10:33:20 +0200 |
---|---|---|
committer | Johannes Berg <johannes@sipsolutions.net> | 2013-04-02 10:33:20 +0200 |
commit | be3ec52dae8beff6052c8aff517c97b30418f0c4 (patch) | |
tree | 7e8eb29f134cf3ecfab54878533eb89b37042cfb /gentree.py | |
parent | 585124fc36c62839d3369c0d87c6dafc7baf8388 (diff) |
add kernel version dependencies
Some drivers/subsystems/... can only build on certain newer
kernels, or were never tested elsewhere. Insert their version
dependencies into the output Kconfig.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Diffstat (limited to 'gentree.py')
-rwxr-xr-x | gentree.py | 24 |
1 files changed, 24 insertions, 0 deletions
@@ -39,6 +39,20 @@ def read_copy_list(kerneldir, copyfile): ret.append((kerneldir, srcitem, dstitem)) return ret +def read_dependencies(depfilename): + ret = {} + depfile = open(depfilename) + for item in depfile: + item = item.strip() + if not item or item[0] == '#': + continue + sym, dep = item.split() + if not sym in ret: + ret[sym] = [dep, ] + else: + raise Exception("Listing the same symbol (%s) multiple times is pointless" % sym) + return ret + def check_output_dir(d, clean): if clean: shutil.rmtree(d, ignore_errors=True) @@ -156,6 +170,8 @@ def main(): copy_list.append((os.path.join(source_dir, 'compat'), 'compat/', 'compat/')) copy_list.append((os.path.join(source_dir, 'compat'), 'include/', 'include/')) + deplist = read_dependencies(os.path.join(source_dir, 'dependencies')) + # validate output directory check_output_dir(args.outdir, args.clean) @@ -300,6 +316,14 @@ def main(): configtree.disable_symbols(disable_kconfig) git_debug_snapshot(args, "disable impossible kconfig symbols") + for sym in tuple(deplist.keys()): + new = [] + for dep in deplist[sym]: + new.append('!BACKPORT_KERNEL_%s' % dep.replace('.', '_')) + deplist[sym] = new + configtree.add_dependencies(deplist) + git_debug_snapshot(args, "add kernel version dependencies") + regexes = [] for some_symbols in [disable_makefile[i:i + 50] for i in range(0, len(disable_makefile), 50)]: r = '(CONFIG_(' + '|'.join([s for s in some_symbols]) + '))' |