summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/ccan_depends.c15
-rw-r--r--tools/depends.c12
-rw-r--r--tools/tools.h5
3 files changed, 24 insertions, 8 deletions
diff --git a/tools/ccan_depends.c b/tools/ccan_depends.c
index 5e9f812e..ca8c4a61 100644
--- a/tools/ccan_depends.c
+++ b/tools/ccan_depends.c
@@ -10,20 +10,27 @@ int main(int argc, char *argv[])
char **deps;
unsigned int i;
bool compile = false;
+ bool recurse = true;
+ if (argv[1] && streq(argv[1], "--direct")) {
+ argv++;
+ argc--;
+ recurse = false;
+ }
if (argv[1] && streq(argv[1], "--compile")) {
argv++;
argc--;
compile = true;
}
if (argc != 2)
- errx(1, "Usage: ccan_depends [--compile] <dir>\n"
- "Spits out all the ccan dependencies (recursively)");
+ errx(1, "Usage: ccan_depends [--direct] [--compile] <dir>\n"
+ "Spits out all the ccan dependencies (recursively unless --direct)");
if (compile)
- deps = get_deps(talloc_autofree_context(), argv[1]);
+ deps = get_deps(talloc_autofree_context(), argv[1], recurse);
else
- deps = get_safe_ccan_deps(talloc_autofree_context(), argv[1]);
+ deps = get_safe_ccan_deps(talloc_autofree_context(), argv[1],
+ recurse);
for (i = 0; deps[i]; i++)
if (strstarts(deps[i], "ccan/"))
diff --git a/tools/depends.c b/tools/depends.c
index 7eac9da4..d215441e 100644
--- a/tools/depends.c
+++ b/tools/depends.c
@@ -173,13 +173,21 @@ get_all_deps(const void *ctx, const char *dir,
return deps;
}
-char **get_deps(const void *ctx, const char *dir)
+char **get_deps(const void *ctx, const char *dir, bool recurse)
{
+ if (!recurse) {
+ unsigned int num;
+ return get_one_deps(ctx, dir, &num);
+ }
return get_all_deps(ctx, dir, get_one_deps);
}
-char **get_safe_ccan_deps(const void *ctx, const char *dir)
+char **get_safe_ccan_deps(const void *ctx, const char *dir, bool recurse)
{
+ if (!recurse) {
+ unsigned int num;
+ return get_one_safe_deps(ctx, dir, &num);
+ }
return get_all_deps(ctx, dir, get_one_safe_deps);
}
diff --git a/tools/tools.h b/tools/tools.h
index e43643dd..a7612c7a 100644
--- a/tools/tools.h
+++ b/tools/tools.h
@@ -1,13 +1,14 @@
#ifndef CCAN_TOOLS_H
#define CCAN_TOOLS_H
+#include <stdbool.h>
#define CFLAGS "-O3 -Wall -Wundef -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes -Wmissing-declarations -Werror -Iccan/ -I."
/* This actually compiles and runs the _info.c file to get dependencies. */
-char **get_deps(const void *ctx, const char *dir);
+char **get_deps(const void *ctx, const char *dir, bool recurse);
/* This is safer: just looks for ccan/ strings in _info.c */
-char **get_safe_ccan_deps(const void *ctx, const char *dir);
+char **get_safe_ccan_deps(const void *ctx, const char *dir, bool recurse);
#endif /* CCAN_TOOLS_H */