Hello, On Tue, Aug 15, 2006 at 06:39:44PM -0700, Richard Haney wrote:
uname -s = CYGWIN_NT-5.1
You are trying to make win32 libraries with a mix of Cygwin and MinGW tools. While it is certainly possible build win32 libraries/binaries with such a setup, it is a little bit tricky, [...]
Among the executables (".exe"s as well as scripts) in /bin and in /cygdrive/c/Dev-Cpp/bin , the only ones that could clash are the two versions of rm.exe that I mentioned. The /usr/bin and /usr/local/bin directories are not used. In fact, some tools from that directories *are* used, (e.g. /usr/bin/install)
I chose to re-order those directories in PATH because of the conflict with versions of rm.exe , Aha, I see! Otherwise you can't remove files created by Cygwin's bash [and other utilites] (at least because of different pathname conventions used by Cygwin and win32).
So, I'm wondering about what bugs/limitations may be lurking in msys, which I have not tried much. Unlike Cygwin, Msys does not try to provide complete *NIX-like environment. Instead it creates a *minimal* environment for running configure scripts. Some people prefer Cygwin for this reason, but IMHO if you need a *NIX-like environment running some kind of *NIX natively is much better option :).
If you insist on using Cygwin+MinGW, you need at least to
1) give the configure script proper --build and --host arguments, e.g.,
--build=i586-mingw32msvc --host=i586-mingw32msvc
So why not i686 in place of i586 , since configure seems to think my computer is a i686 (whatever that is, precisely)? This is just what
gcc -dumpmachine prints on my system. On your system it might be different, but it should contain "mingw32" string somewhere.
3. The "--disable-shared" option for configure seems desirable in a cygwin/mingw environment, and in fact it seems a good idea for a distributed version of CLN to make "--disable-shared" an automatic default in such an environment. If you give appropriate --host and --build arguments (or just use Msys) --disable-shared option will be automagically added. This option is already specified for MinGW, and people already asked why shared libraries are disabled (see mail by Ralf Wildenhues).
Also, the "msvc" seems to stand for "Microsoft Visual C/C++", or does that refer to a Microsoft DLL with the same string "msvc" in its name? AFAIK "msvc" is due to name of m$'ish C runtime libraries (msvcrt.dll and friends) which are used by executables produced by MinGW version of GNU compilers.
Are there only a limited list of possible values for --build=... and --host=... ? Auto* tools use system names of form CPU-VENDOR-OS (so called "canonical name"). But in reality, such a naming scheme appears to be [to put it mildly] somewhat sloppy.
Where are they defined (and/or described in human-readable form)? These name are defined in the config.guess script (which is called by the configure), but the logic is [unnecessary] complicated. Basically, the canonical name is determined from the output of uname(1) and compiler's idea about target processor/OS name (as in gcc -dumpmachine).
Best regards, Alexei. -- All science is either physics or stamp collecting.