]> git.ozlabs.org Git - ccan/blobdiff - tools/tools.h
tools: more intelligent caching for compile _info.
[ccan] / tools / tools.h
index f3e132d97a37110c92da61ba48d3f82e7c46f3e8..e78d13904c82b1c36c263ddb57a5fdb267779139 100644 (file)
 
 #define COVERAGE_CFLAGS "-fprofile-arcs -ftest-coverage"
 
+/* This compiles up the _info file into a temporary. */
+char *compile_info(const void *ctx, const char *dir);
+
 /* This actually compiles and runs the info file to get dependencies. */
 char **get_deps(const void *ctx, const char *dir, bool recurse,
-               char **infofile);
+               char *(*get_info)(const void *ctx, const char *dir));
 
 /* This is safer: just looks for ccan/ strings in info */
 char **get_safe_ccan_deps(const void *ctx, const char *dir, bool recurse);
@@ -53,7 +56,7 @@ bool move_file(const char *oldname, const char *newname);
 /* If set, say what we're compiling to. */
 extern bool compile_verbose;
 /* Compile multiple object files into a single. */
-char *link_objects(const void *ctx, const char *basename, bool in_pwd,
+char *link_objects(const void *ctx, const char *basename,
                   const char *objs, char **errmsg);
 /* Compile a single C file to an object file.  Returns false if fails. */
 bool compile_object(const void *ctx, const char *cfile, const char *ccandir,
@@ -66,9 +69,8 @@ bool compile_and_link(const void *ctx, const char *cfile, const char *ccandir,
                      const char *compiler, const char *cflags,
                      const char *libs, const char *outfile, char **output);
 
-/* If in_pwd is false, return a file int temp_dir, otherwise a local file. */
-char *maybe_temp_file(const void *ctx, const char *extension, bool in_pwd,
-                     const char *srcname);
+/* Returns a file in temp_dir() */
+char *temp_file(const void *ctx, const char *extension, const char *srcname);
 
 /* Default wait for run_command.  Should never time out. */
 extern const unsigned int default_timeout_ms;
@@ -76,4 +78,6 @@ extern const unsigned int default_timeout_ms;
 /* Talloc destructor which unlinks file. */
 int unlink_file_destructor(char *filename);
 
+/* Get ccan/ top dir, given a directory within it. */
+const char *find_ccan_dir(const char *base);
 #endif /* CCAN_TOOLS_H */