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/"))
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);
}
#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 */