1 #include "talloc/talloc.h"
5 static char ** __attribute__((format(printf, 2, 3)))
6 lines_from_cmd(const void *ctx, char *format, ...)
13 cmd = talloc_vasprintf(ctx, format, ap);
18 err(1, "Executing '%s'", cmd);
20 buffer = grab_fd(ctx, fileno(p));
22 err(1, "Reading from '%s'", cmd);
25 return split(ctx, buffer, "\n", NULL);
28 static char *build_info(const void *ctx, const char *dir)
30 char *file, *cfile, *cmd;
32 cfile = talloc_asprintf(ctx, "%s/%s", dir, "_info.c");
33 file = talloc_asprintf(cfile, "%s/%s", dir, "_info");
34 cmd = talloc_asprintf(file, "gcc " CFLAGS " -o %s %s", file, cfile);
36 errx(1, "Failed to compile %s", file);
41 char **get_deps(const void *ctx, const char *dir)
45 cmd = talloc_asprintf(ctx, "%s depends", build_info(ctx, dir));
46 deps = lines_from_cmd(cmd, cmd);
48 err(1, "Could not run '%s'", cmd);