From 86afe4fc100b5a593254d63ae0c54e702eef1d58 Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Wed, 3 Feb 2016 17:41:30 +0000 Subject: [PATCH] dirs.mk, projects.py: Take prerequisites dir check from project.conf Signed-off-by: Jan Lindemann --- make/dirs.mk | 5 ++++- scripts/projects.py | 15 +++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/make/dirs.mk b/make/dirs.mk index f04043c8..358f3534 100644 --- a/make/dirs.mk +++ b/make/dirs.mk @@ -29,7 +29,9 @@ SUBDIR_TARGETS = $(filter $(ALLOWED_SUBDIR_TARGETS),$(MAKECMDGOALS)) endif ifneq ($(DONT_CHECK_PREREQ_DONE),true) -PREREQ_DIRS_DONE = $(addsuffix /dirs-all.done,$(filter-out $(TOPDIR) /opt/%,$(foreach p,$(PREREQ),$($(p)_DIR)))) +PREREQ += $(call proj_query, prereq build $(PROJECT)) +PREREQ_DIRS = $(foreach p, $(PREREQ), $(call proj_dir, $(p))) +PREREQ_DIRS_DONE = $(addsuffix /dirs-all.done,$(filter-out $(TOPDIR) /opt/%,$(PREREQ_DIRS))) endif all: dirs-all.done @@ -88,3 +90,4 @@ dirs.distclean: $(make_dirs) endif # SUBDIRS_TO_ITERATE + diff --git a/scripts/projects.py b/scripts/projects.py index f111ebd3..ce451337 100644 --- a/scripts/projects.py +++ b/scripts/projects.py @@ -101,8 +101,10 @@ def add_modules_from_project_txt(buf, visited, spec, section, key, add_self, sco spec = name if spec in buf: return - #if spec in visited: - # return + if spec in visited: + if add_self: + buf.append(spec) + return visited.add(spec) deps = get_value(name, section, key) debug("name = ", name, "section = ", section, "key = ", key, "deps = ", deps, "scope = ", scope, "visited = ", visited) @@ -219,6 +221,15 @@ def cmd_path(args_): r = r + ':' + proj_dir(m) + '/bin' print(r[1:]) +def cmd_prereq(args_): + parser = argparse.ArgumentParser(description='path') + parser.add_argument('flavour', help='Flavour') + parser.add_argument('module', nargs='*', help='Modules') + args=parser.parse_args(args_) + deps = get_modules_from_project_txt(args.module, 'pkg.required', + args.flavour, scope = 2, add_self=False, names_only=True) + print(' '.join(deps)) + def cmd_pkg_requires(args_): parser = argparse.ArgumentParser(description='pkg-requires') parser.add_argument('flavour', help='Flavour')