From: Keith M. <kei...@to...> - 2007-07-04 09:26:08
|
Hugh McMaster wrote: > $ ./configure --host=i686-pc-mingw32 --build=i686-pc-cygwin \ > CC='gcc -mno-cygwin ' host_alias=i686-pc-mingw32 > > This command will invoke the MinGW compiler under Cygwin. Under Cygwin, `gcc -mno-cygwin' is sufficient to ensure that the MinGW compiler is used, in place of Cygwin's own; for C++ code, you will also need CXX='g++ -mno-cygwin', and I guess for FORTRAN, F77='g77 -mno-cygwin'; (I'm far from certain of the latter). `--host=x --build=y' is the standard autoconf way to initiate a cross-compile. The purist in me says that, if you use this method of specifying the host compiler, then you should *not* need to use `-mno-cygwin' at all. I did try it once upon a time[1], and IIRC, this is in fact the case. Conversely, if you use CC='gcc -mno-cygwin', and friends, you should not need `--host', (nor `host_alias'), nor `--build', IIRC. `host_alias=i686-pc-mingw32' is completely redundant here; configure sets it internally anyway, to identically the same value as you give with `--host'. An important point to note: if you do adopt the `--host/--build' invocation syntax, then the value you specify with `--host' must *exactly* match the prefix by which your MinGW tool chain is identified, within your Cygwin file system; in Hugh's example above, this would imply that the MinGW gcc is installed into a PATH directory, with the name `i686-pc-mingw32-gcc.exe', (and similarly for `i686-pc-mingw32-g++.exe', `i686-pc-mingw32-ld.exe', etc.); on my Cygwin installation, no such tool chain exists, yet `-mno-cygwin' does invoke the MinGW compile mode[2]. [1] When I ran this experiment, I did *not* use the MinGW components provided with the Cygwin install; I installed the MinGW tool chain from our own tarballs, then linked the executables to their properly named cross-tool equivalents, in a directory added to Cygwin's PATH. (Please search the archives, if you are interested in further detail). [2] Using the Cygwin provided MinGW components, *not* the cross-tool chain of [1]. Regards, Keith. |