On 03.04.2009 15:33, Stefan Reinauer wrote: > I figured we really want to have settings.h, so I added support for it > to romcc. >
Awesome, thanks! > This patch implements --include=file.h for romcc. > Please add --include to the romcc usage messsage as well. > Signed-off-by: Stefan Reinauer <[email protected]> > > Index: util/romcc/romcc.c > =================================================================== > --- util/romcc/romcc.c (revision 4046) > +++ util/romcc/romcc.c (working copy) > @@ -3,8 +3,8 @@ > #undef RELEASE_DATE > #undef VERSION > #define VERSION_MAJOR "0" > -#define VERSION_MINOR "70" > -#define RELEASE_DATE "23 October 2007" > +#define VERSION_MINOR "71" > +#define RELEASE_DATE "03 April 2009" > #define VERSION VERSION_MAJOR "." VERSION_MINOR > > #include <stdarg.h> > @@ -24925,7 +24925,7 @@ > } > } > > -static void compile(const char *filename, > +static void compile(const char *filename, const char *includefile, > struct compiler_state *compiler, struct arch_state *arch) > { > int i; > @@ -24998,7 +24998,10 @@ > /* Enter the globl definition scope */ > start_scope(&state); > register_builtins(&state); > + > compile_file(&state, filename, 1); > + if (includefile) > + compile_file(&state, includefile, 1); > This looks strange. Do we really want to compile the include file _after_ compiling the .c file? Wouldn't that make all #defines ineffective? > > /* Stop if all we want is preprocessor output */ > if (state.compiler->flags & COMPILER_PP_ONLY) { > @@ -25065,6 +25068,7 @@ > int main(int argc, char **argv) > { > const char *filename; > + const char *includefile = NULL; > struct compiler_state compiler; > struct arch_state arch; > int all_opts; > @@ -25114,6 +25118,14 @@ > else if (strncmp(argv[1], "-m", 2) == 0) { > result = arch_encode_flag(&arch, argv[1]+2); > } > + else if (strncmp(argv[1], "--include=", 10) == 0) { > + if (includefile) { > + arg_error("Only one --include option > may be specified.\n"); > + } else { > + includefile = argv[1] + 10; > + result = 0; > + } > + } > if (result < 0) { > arg_error("Invalid option specified: %s\n", > argv[1]); > @@ -25133,7 +25145,7 @@ > if (!filename) { > arg_error("No filename specified\n"); > } > - compile(filename, &compiler, &arch); > + compile(filename, includefile, &compiler, &arch); > > return 0; > } > Regards, Carl-Daniel -- http://www.hailfinger.org/ -- coreboot mailing list: [email protected] http://www.coreboot.org/mailman/listinfo/coreboot

