Commit 8502a66a authored by Rusty Russell's avatar Rusty Russell

tools/configurator: allow overriding of which cc we will run.

This is for cross-configuring, where we might want to run
`qemu-user-... gcc` or even more exotic things.
Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
parent ec1f7161
...@@ -670,13 +670,15 @@ int main(int argc, const char *argv[]) ...@@ -670,13 +670,15 @@ int main(int argc, const char *argv[])
const char *default_args[] const char *default_args[]
= { "", DEFAULT_COMPILER, DEFAULT_FLAGS, NULL }; = { "", DEFAULT_COMPILER, DEFAULT_FLAGS, NULL };
const char *outflag = DEFAULT_OUTPUT_EXE_FLAG; const char *outflag = DEFAULT_OUTPUT_EXE_FLAG;
const char *configurator_cc = NULL;
const char *orig_cc;
if (argc > 0) if (argc > 0)
progname = argv[0]; progname = argv[0];
while (argc > 1) { while (argc > 1) {
if (strcmp(argv[1], "--help") == 0) { if (strcmp(argv[1], "--help") == 0) {
printf("Usage: configurator [-v] [-O<outflag>] [<compiler> <flags>...]\n" printf("Usage: configurator [-v] [-O<outflag>] [--configurator-cc=<compiler-for-tests>] [<compiler> <flags>...]\n"
" <compiler> <flags> will have \"<outflag> <outfile> <infile.c>\" appended\n" " <compiler> <flags> will have \"<outflag> <outfile> <infile.c>\" appended\n"
"Default: %s %s %s\n", "Default: %s %s %s\n",
DEFAULT_COMPILER, DEFAULT_FLAGS, DEFAULT_COMPILER, DEFAULT_FLAGS,
...@@ -701,6 +703,10 @@ int main(int argc, const char *argv[]) ...@@ -701,6 +703,10 @@ int main(int argc, const char *argv[])
argc--; argc--;
argv++; argv++;
verbose += 2; verbose += 2;
} else if (strncmp(argv[1], "--configurator-cc=", 18) == 0) {
configurator_cc = argv[1] + 18;
argc--;
argv++;
} else { } else {
break; break;
} }
...@@ -709,6 +715,10 @@ int main(int argc, const char *argv[]) ...@@ -709,6 +715,10 @@ int main(int argc, const char *argv[])
if (argc == 1) if (argc == 1)
argv = default_args; argv = default_args;
orig_cc = argv[1];
if (configurator_cc)
argv[1] = configurator_cc;
cmd = connect_args(argv, outflag, OUTPUT_FILE " " INPUT_FILE); cmd = connect_args(argv, outflag, OUTPUT_FILE " " INPUT_FILE);
for (i = 0; i < sizeof(tests)/sizeof(tests[0]); i++) for (i = 0; i < sizeof(tests)/sizeof(tests[0]); i++)
run_test(cmd, &tests[i]); run_test(cmd, &tests[i]);
...@@ -723,7 +733,7 @@ int main(int argc, const char *argv[]) ...@@ -723,7 +733,7 @@ int main(int argc, const char *argv[])
printf("#ifndef _GNU_SOURCE\n"); printf("#ifndef _GNU_SOURCE\n");
printf("#define _GNU_SOURCE /* Always use GNU extensions. */\n"); printf("#define _GNU_SOURCE /* Always use GNU extensions. */\n");
printf("#endif\n"); printf("#endif\n");
printf("#define CCAN_COMPILER \"%s\"\n", argv[1]); printf("#define CCAN_COMPILER \"%s\"\n", orig_cc);
cmd = connect_args(argv + 1, "", ""); cmd = connect_args(argv + 1, "", "");
printf("#define CCAN_CFLAGS \"%s\"\n", cmd); printf("#define CCAN_CFLAGS \"%s\"\n", cmd);
free(cmd); free(cmd);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment