X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=tools%2Fccanlint%2Fcompulsory_tests%2Fbuild.c;h=5bea548c46814af97cb3afaf76ef673a2145eec0;hb=451d97ad85e65061223f04dceaca0454c7b2201a;hp=7c73f0d4f834c98519dc68ff18420cb935d4d6cc;hpb=04b2feefda59d3193ef500bfc8ea12ec4a4c0b55;p=ccan-lca-2011.git diff --git a/tools/ccanlint/compulsory_tests/build.c b/tools/ccanlint/compulsory_tests/build.c index 7c73f0d..5bea548 100644 --- a/tools/ccanlint/compulsory_tests/build.c +++ b/tools/ccanlint/compulsory_tests/build.c @@ -13,6 +13,7 @@ #include #include #include +#include "build.h" static const char *can_build(struct manifest *m) { @@ -33,12 +34,27 @@ static char *obj_list(const struct manifest *m) return list; } +char *build_module(struct manifest *m, bool keep, char **errstr) +{ + char *name = link_objects(m, m->basename, false, obj_list(m), errstr); + if (name) { + if (keep) { + char *realname = talloc_asprintf(m, "%s.o", m->dir); + /* We leave this object file around, all built. */ + if (!move_file(name, realname)) + err(1, "Renaming %s to %s", name, realname); + name = realname; + } + } + return name; +} + static void do_build(struct manifest *m, bool keep, unsigned int *timeleft, struct score *score) { - char *filename, *errstr; + char *errstr; if (list_empty(&m->c_files)) { /* No files? No score, but we "pass". */ @@ -47,19 +63,12 @@ static void do_build(struct manifest *m, return; } - filename = link_objects(m, m->basename, false, obj_list(m), &errstr); - if (!filename) { - score->error = "The object file didn't build"; + m->compiled = build_module(m, keep, &errstr); + if (!m->compiled) { score_file_error(score, NULL, 0, errstr); return; } - if (keep) { - char *realname = talloc_asprintf(m, "%s.o", m->dir); - /* We leave this object file around, all built. */ - if (!move_file(filename, realname)) - err(1, "Renaming %s to %s", filename, realname); - } score->pass = true; score->score = score->total; }