Alexandre Julliard : winegcc: Add support for building fake modules.
Alexandre Julliard
julliard at winehq.org
Tue Aug 18 10:00:09 CDT 2009
Module: wine
Branch: master
Commit: 2de0c16363c61504082bbabdcdddeaa99ebf806f
URL: http://source.winehq.org/git/wine.git/?a=commit;h=2de0c16363c61504082bbabdcdddeaa99ebf806f
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue Aug 18 11:26:43 2009 +0200
winegcc: Add support for building fake modules.
---
tools/winegcc/winegcc.c | 17 +++++++++++++++--
1 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c
index b337630..56d9c5f 100644
--- a/tools/winegcc/winegcc.c
+++ b/tools/winegcc/winegcc.c
@@ -556,6 +556,7 @@ static void build(struct options* opts)
const char *spec_o_name;
const char *output_name, *spec_file, *lang;
int generate_app_loader = 1;
+ int fake_module = 0;
unsigned int j;
/* NOTE: for the files array we'll use the following convention:
@@ -581,6 +582,8 @@ static void build(struct options* opts)
if (opts->shared || strendswith(output_file, ".so"))
generate_app_loader = 0;
+ if (strendswith(output_file, ".fake")) fake_module = 1;
+
/* normalize the filename a bit: strip .so, ensure it has proper ext */
if (strendswith(output_file, ".so"))
output_file[strlen(output_file) - 3] = 0;
@@ -802,8 +805,17 @@ static void build(struct options* opts)
strarray_add(spec_args, strmake("-m%u", 8 * opts->force_pointer_size ));
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_o_name);
+ if (fake_module)
+ {
+ strarray_add(spec_args, "--fake-module");
+ strarray_add(spec_args, "-o");
+ strarray_add(spec_args, output_file);
+ }
+ else
+ {
+ strarray_add(spec_args, "-o");
+ strarray_add(spec_args, spec_o_name);
+ }
if (spec_file)
{
strarray_add(spec_args, "-E");
@@ -850,6 +862,7 @@ static void build(struct options* opts)
spawn(opts->prefix, spec_args, 0);
strarray_free (spec_args);
+ if (fake_module) return; /* nothing else to do */
/* link everything together now */
strarray_addall(link_args, get_translator(opts));
More information about the wine-cvs
mailing list