mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 12:03:31 +01:00
build.py: Add some hooks for different prerequisite types
This commit is contained in:
parent
b6a9c164b2
commit
186a291bd9
1 changed files with 11 additions and 8 deletions
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue