X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=tools%2Fccanlint%2Ftests%2Fobjects_build.c;h=5e6daf7827a1c5104d5e9dd81c49f671e834ea5f;hp=cbb3189513c034094eec05d522c0e78fa247ec0e;hb=9e207bca5bf5e0a1e3653a91649414fab793c801;hpb=af5b1a18948345c5f9f9abf4eda3ab9fe0aa9a9f diff --git a/tools/ccanlint/tests/objects_build.c b/tools/ccanlint/tests/objects_build.c index cbb31895..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,6 +22,17 @@ 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, struct score *score, const char *flags, enum compile_type ctype) @@ -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] = 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,13 +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, unsigned int *timeleft, struct score *score) { - build_objects(m, score, cflags, COMPILE_NORMAL); + const char *flags; + + flags = cflags_list(m); + build_objects(m, score, flags, COMPILE_NORMAL); } struct ccanlint objects_build = {