From 27b8937c5ed206e515c7b933f9593d7bc7f350e0 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 1 Mar 2011 16:04:49 +1030 Subject: [PATCH] ccanlint: --compiler and --cflags options. --- tools/ccanlint/ccanlint.c | 24 ++++++++++++++++++------ tools/ccanlint/ccanlint.h | 2 +- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/tools/ccanlint/ccanlint.c b/tools/ccanlint/ccanlint.c index 231ae7c0..b8dd467a 100644 --- a/tools/ccanlint/ccanlint.c +++ b/tools/ccanlint/ccanlint.c @@ -43,8 +43,8 @@ static struct btree *info_exclude; static unsigned int timeout; /* These are overridden at runtime if we can find config.h */ -const char *compiler = CCAN_COMPILER; -const char *cflags = CCAN_CFLAGS; +char *compiler = NULL; +char *cflags = NULL; const char *config_header; @@ -552,20 +552,28 @@ static void read_config_header(void) if (!get_token(line, "define")) continue; sym = get_symbol_token(lines, line); - if (streq(sym, "CCAN_COMPILER")) { + if (streq(sym, "CCAN_COMPILER") && !compiler) { compiler = demangle_string(lines[i]); + if (!compiler) + errx(1, "%s:%u:could not parse CCAN_COMPILER", + fname, i+1); if (verbose > 1) printf("%s: compiler set to '%s'\n", fname, compiler); - } else if (streq(sym, "CCAN_CFLAGS")) { + } else if (streq(sym, "CCAN_CFLAGS") && !cflags) { cflags = demangle_string(lines[i]); + if (!cflags) + errx(1, "%s:%u:could not parse CCAN_CFLAGS", + fname, i+1); if (verbose > 1) printf("%s: compiler flags set to '%s'\n", fname, cflags); } } - if (!compiler || !cflags) - errx(1, "Problem parsing %s", fname); + if (!compiler) + compiler = CCAN_COMPILER; + if (!cflags) + compiler = CCAN_CFLAGS; } int main(int argc, char *argv[]) @@ -605,6 +613,10 @@ int main(int argc, char *argv[]) opt_register_arg("--target ", opt_set_charp, NULL, &target, "only run one test (and its prerequisites)"); + opt_register_arg("--compiler ", opt_set_charp, + NULL, &compiler, "set the compiler"); + opt_register_arg("--cflags ", opt_set_charp, + NULL, &cflags, "set the compiler flags"); opt_register_noarg("-?|-h|--help", opt_usage_and_exit, "\nA program for checking and guiding development" " of CCAN modules.", diff --git a/tools/ccanlint/ccanlint.h b/tools/ccanlint/ccanlint.h index 33db1257..0c73716a 100644 --- a/tools/ccanlint/ccanlint.h +++ b/tools/ccanlint/ccanlint.h @@ -222,7 +222,7 @@ extern bool safe_mode; extern const char *ccan_dir; /* Compiler and CFLAGS, from config.h if available. */ -extern const char *compiler, *cflags; +extern char *compiler, *cflags; /* Contents of config.h (or NULL if not found) */ extern const char *config_header; -- 2.39.2