Commit 023f704e authored by Rusty Russell's avatar Rusty Russell

--direct for ccan_depends

parent 40b0fa60
......@@ -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/"))
......
......@@ -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);
}
#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 */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment