Let winebuild take care of calling the assembler.
Pass -v and -save-temps options through to winebuild too.
diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c
index db5d99c..93153fd 100644
--- a/tools/winegcc/winegcc.c
+++ b/tools/winegcc/winegcc.c
@@ -373,48 +373,6 @@
return copts.output_name;
}
-static void assemble(struct options* opts)
-{
- int i;
-
- for (i = 0; i < opts->files->size; i++ )
- {
- if (opts->files->base[i][0] != '-')
- {
- strarray* as_args = strarray_alloc();
- strarray_addall(as_args, get_translator(proc_as));
-
- if (opts->output_name)
- {
- strarray_add(as_args, "-o");
- strarray_add(as_args, opts->output_name);
- }
- strarray_add(as_args, opts->files->base[i]);
- spawn(opts->prefix, as_args, 0);
- strarray_free(as_args);
- }
- }
-}
-
-static const char* assemble_to_object(struct options* opts, const char* file)
-{
- struct options copts;
- char* base_name;
-
- /* make a copy so we don't change any of the initial stuff */
- /* a shallow copy is exactly what we want in this case */
- base_name = get_basename(file);
- copts = *opts;
- copts.output_name = get_temp_file(base_name, ".o");
- copts.files = strarray_alloc();
- strarray_add(copts.files, file);
- assemble(&copts);
- strarray_free(copts.files);
- free(base_name);
-
- return copts.output_name;
-}
-
/* check if there is a static lib associated to a given dll */
static char *find_static_lib( const char *dll )
{
@@ -430,7 +388,7 @@
strarray *lib_dirs, *files;
strarray *spec_args, *link_args;
char *output_file;
- const char *spec_s_name, *spec_o_name;
+ const char *spec_o_name;
const char *output_name, *spec_file, *lang;
const char* winebuild = getenv("WINEBUILD");
int generate_app_loader = 1;
@@ -586,10 +544,12 @@
free( fullname );
}
- /* run winebuild to generate the .spec.c file */
+ /* run winebuild to generate the .spec.o file */
spec_args = strarray_alloc();
- spec_s_name = get_temp_file(output_name, ".spec.s");
+ spec_o_name = get_temp_file(output_name, ".spec.o");
strarray_add(spec_args, winebuild);
+ if (verbose) strarray_add(spec_args, "-v");
+ if (keep_generated) strarray_add(spec_args, "--save-temps");
strarray_add(spec_args, "--as-cmd");
strarray_add(spec_args, AS);
strarray_add(spec_args, "--ld-cmd");
@@ -597,7 +557,7 @@
strarray_addall(spec_args, strarray_fromstring(DLLFLAGS, " "));
strarray_add(spec_args, opts->shared ? "--dll" : "--exe");
strarray_add(spec_args, "-o");
- strarray_add(spec_args, spec_s_name);
+ strarray_add(spec_args, spec_o_name);
if (spec_file)
{
strarray_add(spec_args, "-E");
@@ -643,9 +603,6 @@
spawn(opts->prefix, spec_args, 0);
- /* assemble the .spec.s file into a .spec.o file */
- spec_o_name = assemble_to_object(opts, spec_s_name);
-
/* link everything together now */
link_args = strarray_alloc();
strarray_addall(link_args, get_translator(opts->processor));