Otherwise it describes what we need.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
if (strcmp(argv[1], "ported") == 0) {
#ifdef __x86_64__
if (strcmp(argv[1], "ported") == 0) {
#ifdef __x86_64__
+ printf("Only x86-64 supported\n");
static const char *can_build(struct manifest *m)
{
static const char *can_build(struct manifest *m)
{
/* FIXME: In safe mode, we'd need complex guesstiparsing. */
if (safe_mode)
return NULL;
/* FIXME: In safe mode, we'd need complex guesstiparsing. */
if (safe_mode)
return NULL;
- if (get_ported(m, m->dir, true, get_or_compile_info))
+ msg = get_ported(m, m->dir, true, get_or_compile_info);
+ if (!msg)
- return "'_info ported' says not supported";
+ return tal_fmt(m, "'_info ported' says '%s'", msg);
}
static void check_info_ported(struct manifest *m,
}
static void check_info_ported(struct manifest *m,
-static bool get_one_ported(const void *ctx, const char *dir,
- char *(*get_info)(const void *ctx, const char *dir))
+static char *get_one_ported(const void *ctx, const char *dir,
+ char *(*get_info)(const void *ctx, const char *dir))
{
char **ported = get_one_prop(ctx, dir, "ported", get_info);
/* No news is good news. */
if (!ported || tal_count(ported) == 0)
{
char **ported = get_one_prop(ctx, dir, "ported", get_info);
/* No news is good news. */
if (!ported || tal_count(ported) == 0)
if (tal_count(ported) != 1)
errx(1, "%s/_info ported gave %zu lines, not one",
dir, tal_count(ported));
if (tal_count(ported) != 1)
errx(1, "%s/_info ported gave %zu lines, not one",
dir, tal_count(ported));
-
- if (streq(ported[0], "1"))
- return true;
- else if (streq(ported[0], "0"))
- return false;
- errx(1, "%s/_info ported gave invalid output '%s'", dir, ported[0]);
+
+ if (streq(ported[0], ""))
+ return NULL;
+ else
+ return ported[0];
-bool get_ported(const void *ctx, const char *dir, bool recurse,
+char *get_ported(const void *ctx, const char *dir, bool recurse,
char *(*get_info)(const void *ctx, const char *dir))
{
char *(*get_info)(const void *ctx, const char *dir))
{
- if (!get_one_ported(ctx, dir, get_info))
- return false;
+ char *msg;
+
+ msg = get_one_ported(ctx, dir, get_info);
+ if (msg)
+ return msg;
continue;
subdir = path_join(ctx, find_ccan_dir(dir), deps[i]);
continue;
subdir = path_join(ctx, find_ccan_dir(dir), deps[i]);
- if (!get_one_ported(ctx, subdir, get_info))
- return false;
+ msg = get_one_ported(ctx, subdir, get_info);
+ if (msg)
+ return msg;
}
char **get_libs(const void *ctx, const char *dir, const char *style,
}
char **get_libs(const void *ctx, const char *dir, const char *style,
char **get_cflags(const void *ctx, const char *dir,
char *(*get_info)(const void *ctx, const char *dir));
char **get_cflags(const void *ctx, const char *dir,
char *(*get_info)(const void *ctx, const char *dir));
-bool get_ported(const void *ctx, const char *dir, bool recurse,
- char *(*get_info)(const void *ctx, const char *dir));
+char *get_ported(const void *ctx, const char *dir, bool recurse,
+ char *(*get_info)(const void *ctx, const char *dir));
/* From tools.c */
/* If set, print all commands run, all output they give and exit status. */
/* From tools.c */
/* If set, print all commands run, all output they give and exit status. */