diff --git a/documentation/winelib-mfc.sgml b/documentation/winelib-mfc.sgml index 7f46226fdb..47c8d73721 100644 --- a/documentation/winelib-mfc.sgml +++ b/documentation/winelib-mfc.sgml @@ -4,42 +4,42 @@ Introduction - To use the MFC in a Winelib application you will first have to - recompile the MFC with Winelib. In theory it should be possible to - write a wrapper for the Windows MFC as described in - . But in practice - it does not seem to be a realistic approach for the MFC: + To use the MFC in a Winelib application you will first have to + recompile the MFC with Winelib. In theory it should be possible to + write a wrapper for the Windows MFC as described in + . But in practice + it does not seem to be a realistic approach for the MFC: - the huge number of APIs makes writing the wrapper a big task in + the huge number of APIs makes writing the wrapper a big task in itself. - furthermore the MFC contain a huge number of APIs which are tricky + furthermore the MFC contain a huge number of APIs which are tricky to deal with when making a wrapper. - even once you have written the wrapper you will need to modify + even once you have written the wrapper you will need to modify the MFC headers so that the compiler does not choke on them. - a big part of the MFC code is actually in your application in - the form of macros. This means even more of the MFC headers have - to actually work to in order for you to be able to compile an + a big part of the MFC code is actually in your application in + the form of macros. This means even more of the MFC headers have + to actually work to in order for you to be able to compile an MFC based application. - This is why this guide includes a section dedicated to helping you + This is why this guide includes a section dedicated to helping you compile the MFC with Winelib. @@ -47,53 +47,54 @@ Legal issues - (Extracted from the HOWTO-Winelib written by Wilbur Dale + (Extracted from the HOWTO-Winelib written by Wilbur Dale <wilbur.dale@lumin.nl>) - The purpose of this section is to make you aware of potential legal - problems. Be sure to read your licenses and to consult your lawyers. - In any case you should not consider the remainder of this section to + The purpose of this section is to make you aware of potential legal + problems. Be sure to read your licenses and to consult your lawyers. + In any case you should not consider the remainder of this section to be authoritative since it has not been written by a lawyer. Well, let's try to have a look at the situation anyway. - During the compilation of your program, you will be combining code - from several sources: your code, Winelib code, Microsoft MFC code, - and possibly code from other vendor sources. As a result, you must - ensure that the licenses of all code sources are obeyed. What you are - allowed and not allowed to do can vary depending on how you compile - your program and if you will be distributing it. For example, if you - are releasing your code under the GPL, you cannot link your code to - MFC code because the GPL requires that you provide ALL sources to your - users. The MFC license forbids you from distributing the MFC source so - you cannot both distribute your program and comply with the GPL - license. On the other hand, if your code is released under the LGPL, - you cannot statically link your program to the MFC and distribute it, - but you can dynamically link your LGPL code and the MFC library and - distribute it. + During the compilation of your program, you will be combining code + from several sources: your code, Winelib code, Microsoft MFC code, + and possibly code from other vendor sources. As a result, you must + ensure that the licenses of all code sources are obeyed. What you are + allowed and not allowed to do can vary depending on how you combine + the code and if you will be distributing it. For example, if you + are releasing your code under the GPL or LGPL, you cannot use MFC + because these licenses do not allow covered code to depend on + libraries with non-compatible licenses. + There is a workaround - in the license for your + code you can make an exception for the MFC library. + For details see + The GNU GPL FAQ. - Wine/Winelib is distributed under an X11-like license. It places few - restrictions on the use and distribution of Wine/Winelib code. I doubt - the Wine license will cause you any problems. On the other hand, MFC - is distributed under a very restrictive license and the restrictions - vary from version to version and between service packs. There are + Wine/Winelib is distributed under the GNU Lesser General Public + License. See the license for restrictions on the modification and + distribution of Wine/Winelib code. In general it is possible to + satisfy these restrictions in any type of application. + On the other hand, MFC + is distributed under a very restrictive license and the restrictions + vary from version to version and between service packs. There are basically three aspects you must be aware of when using the MFC. - First you must legally get MFC source code on your computer. The MFC - source code comes as a part of Visual Studio. The license for + First you must legally get MFC source code on your computer. The MFC + source code comes as a part of Visual Studio. The license for Visual Studio implies it is a single product that can not - be broken up into its components. So the cleanest way to get MFC on - your system is to buy Visual Studio and install it on a dual boot + be broken up into its components. So the cleanest way to get MFC on + your system is to buy Visual Studio and install it on a dual boot Linux box. Then you must check that you are allowed to recompile MFC on a - non-Microsoft operating system! This varies with the version of MFC. + non-Microsoft operating system! This varies with the version of MFC. The MFC license from Visual Studio 6.0 reads in part:
@@ -108,7 +109,7 @@
So it appears you cannot even compile MFC for Winelib using this - license. Fortunately the Visual Studio 6.0 service pack 3 license + license. Fortunately the Visual Studio 6.0 service pack 3 license reads (the Visual Studio 5.0 license is similar):
@@ -124,12 +125,12 @@ So under this license it appears you can compile MFC for Winelib. - Finally you must check whether you have the right to distribute an - MFC library. Check the relevant section of the license on - redistributables and your redistribution rights. The - license seems to specify that you only have the right to distribute - binaries of the MFC library if it has no debug information and if - you distribute it with an application that provides significant + Finally you must check whether you have the right to distribute an + MFC library. Check the relevant section of the license on + redistributables and your redistribution rights. The + license seems to specify that you only have the right to distribute + binaries of the MFC library if it has no debug information and if + you distribute it with an application that provides significant added functionality to the MFC library. @@ -220,8 +221,8 @@ - Specific winemaker options, - the configure options, + Specific winemaker options, + the configure options, the initialization problem...