X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=tools%2Fccanlint%2Ftests%2Fobjects_build.c;h=5e6daf7827a1c5104d5e9dd81c49f671e834ea5f;hp=8fc11266be6cef94199f4ef30e4de92bf47a6805;hb=9e207bca5bf5e0a1e3653a91649414fab793c801;hpb=60824f8a0f758dc7808eb31cc83434ea78f44ed1 diff --git a/tools/ccanlint/tests/objects_build.c b/tools/ccanlint/tests/objects_build.c index 8fc11266..5e6daf78 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 @@ -22,8 +22,19 @@ static const char *can_build(struct manifest *m) 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,17 @@ 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) { - 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 = {