Browse Source

--direct for ccan_depends

Rusty Russell 17 years ago
parent
commit
023f704e80
3 changed files with 24 additions and 8 deletions
  1. 11 4
      tools/ccan_depends.c
  2. 10 2
      tools/depends.c
  3. 3 2
      tools/tools.h

+ 11 - 4
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/"))

+ 10 - 2
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);
 }
 	

+ 3 - 2
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 */