X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=tools%2Fccanlint%2Ftests%2Fobjects_build.c;h=58f364373a5f63b5624cd0a55bf39d65bbcd931c;hp=8fc11266be6cef94199f4ef30e4de92bf47a6805;hb=HEAD;hpb=60824f8a0f758dc7808eb31cc83434ea78f44ed1 diff --git a/tools/ccanlint/tests/objects_build.c b/tools/ccanlint/tests/objects_build.c index 8fc11266..58f36437 100644 --- a/tools/ccanlint/tests/objects_build.c +++ b/tools/ccanlint/tests/objects_build.c @@ -1,7 +1,7 @@ #include #include -#include #include +#include #include #include #include @@ -15,15 +15,26 @@ #include #include "build.h" -static const char *can_build(struct manifest *m) +static const char *can_build(struct manifest *m UNNEEDED) { if (safe_mode) return "Safe mode enabled"; return NULL; } +static char *cflags_list(const struct manifest *m) +{ + unsigned int i; + char *ret = tal_strdup(m, cflags); + + char **flags = get_cflags(m, m->dir, get_or_compile_info); + for (i = 0; flags[i]; i++) + tal_append_fmt(&ret, " %s", flags[i]); + return ret; +} + void build_objects(struct manifest *m, - bool keep, struct score *score, const char *flags, + struct score *score, const char *flags, enum compile_type ctype) { struct ccan_file *i; @@ -36,12 +47,12 @@ void build_objects(struct manifest *m, list_for_each(&m->c_files, i, list) { char *output; - char *fullfile = talloc_asprintf(m, "%s/%s", m->dir, i->name); + char *fullfile = path_join(m, m->dir, i->name); - i->compiled[ctype] = maybe_temp_file(m, "", keep, fullfile); + i->compiled[ctype] = temp_file(m, "", fullfile); if (!compile_object(score, fullfile, ccan_dir, compiler, flags, i->compiled[ctype], &output)) { - talloc_free(i->compiled[ctype]); + tal_free(i->compiled[ctype]); score_file_error(score, i, 0, "Compiling object files:\n%s", output); @@ -58,14 +69,18 @@ void build_objects(struct manifest *m, if (!errors) { score->pass = true; score->score = score->total - warnings; - } + } else + build_failed = true; } static void check_objs_build(struct manifest *m, - bool keep, - unsigned int *timeleft, struct score *score) + unsigned int *timeleft UNNEEDED, + struct score *score) { - build_objects(m, keep, score, cflags, COMPILE_NORMAL); + const char *flags; + + flags = cflags_list(m); + build_objects(m, score, flags, COMPILE_NORMAL); } struct ccanlint objects_build = { @@ -74,7 +89,7 @@ struct ccanlint objects_build = { .compulsory = true, .check = check_objs_build, .can_run = can_build, - .needs = "depends_exist" + .needs = "depends_exist info_ported" }; REGISTER_TEST(objects_build);