mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-29 00:02:48 +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
|
return path
|
||||||
raise Exception("module " + name + " not found below " + proj_base)
|
raise Exception("module " + name + " not found below " + proj_base)
|
||||||
|
|
||||||
def read_deps(cur):
|
def read_deps(cur, prereq_type):
|
||||||
path = find_proj_path(cur)
|
path = find_proj_path(cur)
|
||||||
os.chdir(path)
|
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()
|
r = Set()
|
||||||
for d in p.stdout.read().split():
|
for d in p.stdout.read().split():
|
||||||
r.add(d)
|
r.add(d)
|
||||||
|
|
@ -36,18 +36,18 @@ def read_deps(cur):
|
||||||
r.remove(cur)
|
r.remove(cur)
|
||||||
return r
|
return r
|
||||||
|
|
||||||
def build_tree(cur):
|
def build_tree(cur, prereq_type):
|
||||||
if cur in all_deps:
|
if cur in all_deps:
|
||||||
return 0
|
return 0
|
||||||
all_deps.add(cur)
|
all_deps.add(cur)
|
||||||
deps = read_deps(cur)
|
deps = read_deps(cur, prereq_type)
|
||||||
for d in deps:
|
for d in deps:
|
||||||
build_tree(d)
|
build_tree(d, prereq_type)
|
||||||
dep_tree[cur] = deps
|
dep_tree[cur] = deps
|
||||||
return len(deps)
|
return len(deps)
|
||||||
|
|
||||||
def calculate_order(cur):
|
def calculate_order(cur, prereq_type):
|
||||||
build_tree(cur)
|
build_tree(cur, prereq_type)
|
||||||
while len(all_deps):
|
while len(all_deps):
|
||||||
for d in all_deps:
|
for d in all_deps:
|
||||||
if not len(dep_tree[d]):
|
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)
|
raise Exception("failed to make target " + target + " in module " + module)
|
||||||
|
|
||||||
def build(module, target):
|
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"]:
|
if target in ["clean", "distclean"]:
|
||||||
for m in reversed(order):
|
for m in reversed(order):
|
||||||
run_make(m, target)
|
run_make(m, target)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue