X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=tools%2Fccan_depends.c;h=f81a42b861fae905c4cbba2c1816b6cde4bb23ba;hp=982d13b32b9f90e3d555efffc44fa16c8ee0d486;hb=HEAD;hpb=37ca11df87fa3cc97aca321a76e564e4058d6900 diff --git a/tools/ccan_depends.c b/tools/ccan_depends.c index 982d13b3..f81a42b8 100644 --- a/tools/ccan_depends.c +++ b/tools/ccan_depends.c @@ -1,21 +1,54 @@ #include "tools.h" -#include #include #include -#include "string/string.h" +#include +#include int main(int argc, char *argv[]) { char **deps; unsigned int i; + bool compile = false; + bool recurse = true; + bool ccan = true; + const char *style = "depends"; + if (argv[1] && streq(argv[1], "--direct")) { + argv++; + argc--; + recurse = false; + } + if (argv[1] && streq(argv[1], "--compile")) { + argv++; + argc--; + compile = true; + } + if (argv[1] && streq(argv[1], "--non-ccan")) { + argv++; + argc--; + ccan = false; + } + if (argv[1] && streq(argv[1], "--tests")) { + argv++; + argc--; + style = "testdepends"; + } if (argc != 2) - errx(1, "Usage: ccan_depends \n" - "Spits out all the ccan dependencies (recursively)"); + errx(1, "Usage: ccan_depends [--direct] [--compile] [--non-ccan] [--tests] \n" + "Spits out all the ccan dependencies (recursively unless --direct)"); - deps = get_deps(NULL, argv[1]); - for (i = 0; deps[i]; i++) - if (strstarts(deps[i], "ccan/")) - printf("%s\n", deps[i]); + /* We find depends without compiling by looking for ccan/ */ + if (!ccan && !compile) + errx(1, "--non-ccan needs --compile"); + + if (compile) + deps = get_deps(NULL, argv[1], style, recurse, compile_info); + else + deps = get_safe_ccan_deps(NULL, argv[1], style, recurse); + + if (deps) + for (i = 0; deps[i]; i++) + if (strstarts(deps[i], "ccan/") == ccan) + printf("%s\n", deps[i]); return 0; }