winemaker fixes

Francois Gouget fgouget at free.fr
Tue Mar 2 16:12:34 CST 2004


On Tue, 2 Mar 2004, Dimitrie O. Paun wrote:

> On Tue, 2 Mar 2004, Francois Gouget wrote:
[...]
> >    We must specify '-lmsvcrt' if using the msvcrt.
>
> Please don't, it's not needed. If you want to use msvcrt, please
> pass the -mno-cygwin switch. if that doesn' work, it's a bug
> in winegcc.

At link time too? Ah, ok. I'll submit an updated patch.


> > There is still work to do:
> >
> > 1. Linking with uuid is broken. I suspect winegcc finds the Unix
> > /lib/libuuid.so first and links with that instead of with our libuuid.a
> > library.
>
> That shouldn't happen. Can you please run winegcc with the -v flag,
> and send the output my way please?

I get undefined references to things like IID_IUnknown despite a -luuid
which is why I reported a problem. However I have just realised that
these cases probably all involve building dlls so it's probably not an
issue at this stage.

So don't worry about this one I'll let you know if it persists once we
have dll support.


> > 2. wrc does not find 'windows.h' (yes, some RC files #include Win32
> > headers). wrc should know about the location of the headers like winegcc
> > (since our Makefile don't know anything about where the Wine headers are
> > anymore).
>
> I've verified the source and it should. Maybe you can produce a
> --debug=FF trace?

Here goes:

$ cat foo.rc
#include <windows.h>
$ wrc  --debug=255 -fofoo.res foo.rc
FYI: Starting preprocess
Added define ((null), 0) <__FLAT__> to <1>
Added define ((null), 0) <__WIN32__> to <1>
Added define ((null), 0) <RC_INVOKED> to <1>
Added define ((null), 0) <__WRC_PATCH__> to <9>
Added define ((null), 0) <__WRC_MICRO__> to <9>
Added define ((null), 0) <__WRC_MINOR__> to <1>
Added define ((null), 0) <__WRC__> to <1>
Added define ((null), 0) <__DATE__> to <"Mar 02 2004">
Added define ((null), 0) <__TIME__> to <"23:03:31">
Added define ((null), 0) <__FILE__> to <>
Added define ((null), 0) <__LINE__> to <>
Starting parse
Entering state 0
Reducing stack by rule 1 (line 181), -> pp_file
Stack now 0
Entering state 1
Reading a token: --(end of buffer or a NUL)
--accepting rule at line 309 ("#")
--accepting rule at line 314 ("include ")
Next token is token tINCLUDE ()
Shifting token tINCLUDE, Entering state 10
Reading a token: --accepting rule at line 339 ("<")
--accepting rule at line 578 ("windows.h")
--accepting rule at line 579 (">")
Next token is token tIQSTRING ()
Shifting token tIQSTRING, Entering state 43
Reading a token: --(end of buffer or a NUL)
--accepting rule at line 342 ("
")
Next token is token tNL ()
Shifting token tNL, Entering state 88
Reducing stack by rule 4 (line 187), tINCLUDE tIQSTRING tNL -> preprocessor
foo.rc:1:1: Error: Unable to open include file windows.h


> > 4. We have lost the autoconf integration.
>
> We should encapsulate our macros so they can conveniently be
> used by people in their configure.ac scripts. I think that's
> the proper way to get autoconf integration.

I meant that we should be able to generate Makefile.in files that
reference a global Make.rules.in file or something like that.


> > 5. Nothing works if Wine has not been installed. This is quite
> > impractical for Wine developers.
>
> It's true, but there are many reasons you need to install Wine
> to be able to use Winelib. I doubt it will change in the near
> future.

Setting PATH, LD_LIBRARY_PATH and WINEDLLPATH appropriately was all that
was needed. Not so anymore :-(


> > 6. winegcc is not rebuilt if the '--prefix' changes.
>
> Maybe AJ can fix the Makefile. I think winegcc.o should depend on
> the Makefile.

Could the prefix value used by winegcc go into config.h? Then I believe
we would not have this problem. Many other projects embed this kind of
information in the binaries. How do they handle it?


-- 
Francois Gouget         fgouget at free.fr        http://fgouget.free.fr/
              Linux: Because rebooting is for adding new hardware



More information about the wine-devel mailing list