X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=tools%2Fccanlint%2Ftests%2Fobjects_build.c;h=58f364373a5f63b5624cd0a55bf39d65bbcd931c;hp=b86c53beeff096a2c27f1b7be76e10ff2ea8f890;hb=HEAD;hpb=dc8042b42500f79f613b1197df6cdf739615a89f diff --git a/tools/ccanlint/tests/objects_build.c b/tools/ccanlint/tests/objects_build.c index b86c53be..58f36437 100644 --- a/tools/ccanlint/tests/objects_build.c +++ b/tools/ccanlint/tests/objects_build.c @@ -1,6 +1,7 @@ #include #include #include +#include #include #include #include @@ -14,13 +15,24 @@ #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, struct score *score, const char *flags, enum compile_type ctype) @@ -35,7 +47,7 @@ void build_objects(struct manifest *m, list_for_each(&m->c_files, i, list) { char *output; - char *fullfile = tal_fmt(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, @@ -57,13 +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, - unsigned int *timeleft, struct score *score) + unsigned int *timeleft UNNEEDED, + 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 = { @@ -72,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);