From 186a291bd9eea8039b4de8c30526200fbc8cb8e8 Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Tue, 1 May 2012 15:24:45 +0000 Subject: [PATCH] build.py: Add some hooks for different prerequisite types --- scripts/build.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/scripts/build.py b/scripts/build.py index 98018d8e..ee58930d 100644 --- a/scripts/build.py +++ b/scripts/build.py @@ -25,10 +25,10 @@ def find_proj_path(name): return path raise Exception("module " + name + " not found below " + proj_base) -def read_deps(cur): +def read_deps(cur, prereq_type): path = find_proj_path(cur) os.chdir(path) - p = subprocess.Popen("LD_LIBRARY_PATH= make echo-prereq | sed '/PREREQ_BUILD *=/ !d; s/.*=//'", shell=True, stdout=subprocess.PIPE) + p = subprocess.Popen("LD_LIBRARY_PATH= make echo-prereq | sed '/PREREQ_" + prereq_type + " *=/ !d; s/.*=//'", shell=True, stdout=subprocess.PIPE) r = Set() for d in p.stdout.read().split(): r.add(d) @@ -36,18 +36,18 @@ def read_deps(cur): r.remove(cur) return r -def build_tree(cur): +def build_tree(cur, prereq_type): if cur in all_deps: return 0 all_deps.add(cur) - deps = read_deps(cur) + deps = read_deps(cur, prereq_type) for d in deps: - build_tree(d) + build_tree(d, prereq_type) dep_tree[cur] = deps return len(deps) -def calculate_order(cur): - build_tree(cur) +def calculate_order(cur, prereq_type): + build_tree(cur, prereq_type) while len(all_deps): for d in all_deps: if not len(dep_tree[d]): @@ -70,7 +70,10 @@ def run_make(module, target): raise Exception("failed to make target " + target + " in module " + module) def build(module, target): - calculate_order(module) + #prereq_type="BUILD" + prereq_type="RUN" + calculate_order(module, prereq_type) + print order if target in ["clean", "distclean"]: for m in reversed(order): run_make(m, target)