"Dimitrie O. Paun" wrote:

> Well, it looks like it's time for discussions about the future of Wine.
> So, here is something that has been on my mind for quite a while now: the
> build system.
>
> In a nutshell, we should have a build system that allows building Wine in
> a variety of ways: different compilers, output formats, etc.
>
> In more detail, it seems to me that we (should) support:
>
> A. Build environment
>   Supported: Linux, FreeBSD, Solaris
>   Future: cygwin? (at least for some DLLs)
>   Why not: win32 (at least for some DLLs)
>
> B. Compilers / Runtime
>   Supported: gcc, cc (solaris) (Patrik?)
>   Future: cygwin, mingw, uwin (again, at least for some DLLs)
>   Why not: msvc, bcpp, etc (ditto)
>
> C. DLL formats
>   Supported: ELF, PE, elfdll (?)
>   Question: what is the status of elfdll, and what exactly does it do?
>
> D. Run environments
>   Supported: Linux, FreeBSD, Solaris
>   Future: MacOSX, BeOS
>   Why not: Windows (at least for some DLLs)
>
> The idea being, of course, to support as many combinations as possible
> (and where applicable, cross-platform as well). With such a system in
> place, we could, for example, compile comctl32 on Linux using gcc to
> produce a PE that should run in Windows. This can give us an idea about
> how well we've implemented a component for example.
>
> Now, not all DLLs can be compiled in all these different configurations.
> The entire point of this exercise is to come up with a system that is
> flexible, powerful, and easy to use that will allow us to declare what
> make sense where.
>
> But before we go into details, do people agree that such a system would be
> useful?
>

I have thought of this myself, and it wouldn't be all that hard to do.  All
you need to do is make use of autoconf for many of these issues.  The one
thing that stands out is that you need some sort of UNIX on top of win32
layer to actually run ./configure.  In addition, all the makefiles are fairly
unix specific.  I suppose with a bit of magic this could be done in a fairly
clean way and would not effect the day-to-day hacking of wine for most
people.

The key is that if you make it harder for me to develop Wine on Linux because
you want to support other platforms I am going to be kind of pissed.  I would
say that most developers feel the same about this.

Maybe the first step would be to allow parts of Wine to be cross-compiled on
a Linux system making real Win32 .DLL files.  One issue with this is that
many packages allow you to do something like:

cd packagesourcetree
mkdir CROSS
cd CROSS
../configure (with appropriate options for cross compiling)
make

Is it possible to do this with the wine sourcetree?  That is, can you have
the built files in a seperate dir from the sources?  If not then this is the
first thing to fix as having two complete copies of the sourcetree just to
allow building for different targets is going to make your life a living
hell.

-Dave


Reply via email to