Cross-compiling the tests with MinGW

Francois Gouget fgouget at free.fr
Thu Dec 12 16:21:48 CST 2002


Changelog:

 * documentation/testing.sgml

   Document how to cross-compile the tests with MinGW


Index: documentation/testing.sgml
===================================================================
RCS file: /home/wine/wine/documentation/testing.sgml,v
retrieving revision 1.3
diff -u -r1.3 testing.sgml
--- documentation/testing.sgml	5 Dec 2002 19:13:42 -0000	1.3
+++ documentation/testing.sgml	12 Dec 2002 21:58:27 -0000
@@ -256,18 +256,53 @@
       <sect2>
         <title>Cross compiling with MinGW on Linux</title>
         <para>
-          Details are still pretty sketchy but it would go something like
-          this on a Debian machine:
+          Here is how to generate Windows executables for the tests straight
+          from the comfort of Linux.
+        </para>
+        <itemizedlist>
+          <listitem><para>
+            First you need to get the MinGW cross-compiler. On Debian all
+            you need to do is type <command>apt-get install mingw32</>.
+          </para></listitem>
+          <listitem><para>
+            If you had already run <command>configure</>, then delete
+            <filename>config.cache</> and re-run <command>configure</>.
+            You can then run <command>make crosstest</>. To sum up:
 <screen>
-<prompt>$ </>apt-get install mingw32
-<prompt>$ </>cd ~/wine
-<prompt>$ </>./configure
-<prompt>$ </>make crosstest
+<prompt>$ </><userinput>rm config.cache</>
+<prompt>$ </><userinput>./configure</>
+<prompt>$ </><userinput>make crosstest</>
 </screen>
-        </para>
-        <para>
-          You should then have Windows executables for the tests.
-        </para>
+          </para></listitem>
+          <listitem><para>
+            If you get an error when compiling <filename>winsock.h</> then
+            you probably need to apply the following patch:
+            <ulink url="http://www.winehq.com/hypermail/wine-patches/2002/12/0157.html">http://www.winehq.com/hypermail/wine-patches/2002/12/0157.html</>
+          </para></listitem>
+          <listitem><para>
+            You may also get the following link error:
+<screen>
+i586-mingw32msvc-gcc generated.cross.o testlist.cross.o -o urlmon_crosstest.exe  -lurlmon -lm
+/usr/lib/gcc-lib/i586-mingw32msvc/3.2/../../../../i586-mingw32msvc/bin/ld: cannot find -lurlmon
+</screen>
+          </para><para>
+            If that happens or if you get the same error with another library,
+            then do the following:
+<screen>
+<prompt>$ </><userinput>pwd</>
+~/wine/dlls/urlmon/tests
+<prompt>$ </><userinput>cd ..</>
+<prompt>$ </><userinput>make urlmon.spec.def</>
+LD_LIBRARY_PATH="../../library:../../unicode:$LD_LIBRARY_PATH" ../../tools/winebuild/winebuild -fPIC -D__WINE__  -o urlmon.spec.def --def urlmon.spec
+<prompt>$ </><userinput>make urlmon.spec.def</>
+<prompt>$ </><userinput>/usr/i586-mingw32msvc/bin/dlltool --output-lib liburlmon.a --input-def urlmon.spec.def</>
+</screen>
+          </para><para>
+            Then put the <filename>liburlmon.a</> library in a place where it
+            will be found by MinGW, or run the MinGW link command manually
+            adding '-L..'.
+          </para></listitem>
+        </itemizedlist>
       </sect2>
     </sect1>



-- 
Francois Gouget         fgouget at free.fr        http://fgouget.free.fr/
                           La terre est une bêta...




More information about the wine-patches mailing list