From: Rusty Russell Date: Tue, 19 Aug 2008 07:49:52 +0000 (+1000) Subject: --direct for ccan_depends X-Git-Url: http://git.ozlabs.org/?p=ccan;a=commitdiff_plain;h=023f704e8089f64bd7a77bb7f95b8ea5355fe640;hp=40b0fa608877472b864bbc720dbd25ca4457509e --direct for ccan_depends --- 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] \n" - "Spits out all the ccan dependencies (recursively)"); + errx(1, "Usage: ccan_depends [--direct] [--compile] \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 #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 */