#include <err.h>
#include <string.h>
#include <ctype.h>
+#include "build.h"
static const char *can_build(struct manifest *m)
{
return NULL;
}
-static void check_objs_build(struct manifest *m,
- bool keep,
- unsigned int *timeleft, struct score *score)
+void build_objects(struct manifest *m,
+ bool keep, struct score *score, const char *flags,
+ enum compile_type ctype)
{
struct ccan_file *i;
bool errors = false, warnings = false;
char *output;
char *fullfile = talloc_asprintf(m, "%s/%s", m->dir, i->name);
- i->compiled = maybe_temp_file(m, "", keep, fullfile);
- if (!compile_object(score, fullfile, ccan_dir, compiler, cflags,
- i->compiled, &output)) {
- talloc_free(i->compiled);
+ i->compiled[ctype] = maybe_temp_file(m, "", keep, fullfile);
+ if (!compile_object(score, fullfile, ccan_dir, compiler, flags,
+ i->compiled[ctype], &output)) {
+ talloc_free(i->compiled[ctype]);
score_file_error(score, i, 0,
"Compiling object files:\n%s",
output);
}
}
+static void check_objs_build(struct manifest *m,
+ bool keep,
+ unsigned int *timeleft, struct score *score)
+{
+ build_objects(m, keep, score, cflags, COMPILE_NORMAL);
+}
+
struct ccanlint objects_build = {
.key = "objects_build",
.name = "Module object files can be built",