-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 31.08.2013 17:14, [email protected] wrote:
>
> #1
>
> I'm sure that there is a good reason to have two very similiar root type
> directories such as MinGW and msys, but I can't see it. But, I am new to
> MinGW. To me two different pseudo root directories.
>
> Can someone explain why the two are necessary and on would not suffice?
> Or point me to a document which explains it?
>
> C:\MinGW and
> C:\<inGW\msys\1.0
>
> Also some directory has a link or is a link. /usr?
>
Welcome to the land of crazy!
First, some clarifications:
MinGW is a toolchain (compiler, linker, import libraries for MS
runtimes, headers). It works on W32 and produces pure W32 code, just
like MSVC does. There are two independent projects that make these
toolchains:
* mingw.org - they make mingw.org toolchains (their mailing list is
mingw-users at sourceforge.net)
* mingw-w64 - they make mingw-w64 toolchains (this is mingw-w64 mailing
list you're writing to).
I won't try to explain to you which toolchain is better (spoiler:
mingw-w64 is).
However, you need something to a buildsystem to drive the toolchain (run
it with appropriate arguments to compile things and produce binaries).
MSVC uses Visual Studio and Microsoft make (nmake, if i remember
correctly?) or some other crazy stuff.
The decision on which buildsystem to use falls upon package developers,
not on mingw developers. Most free software packages are built by GNU
autotools (which produce GNU makefiles, which are interpreted by GNU make).
GNU Autotools use POSIX shell to run. GNU Makefiles produced by GNU
Autotools almost always use POSIX shell in some places. And while GNU
Make itself can be built for W32 (and thus may not have any POSIX
dependencies), these makefiles require a POSIX shell, and to produce
them ('configure' the package) you need a POSIX shell.
MSYS provides a POSIX environment (including a POSIX shell, compatible
versions of GNU Autotools, and a POSIXly version of GNU Make) on W32.
Thus, unless the package you are compiling uses some kind of alternative
buildsystem without any POSIX dependencies (CMake, SCons, plain
makefiles with no shell code, <insert your example here>), you need both
MinGW and MSYS.
There are two projects that make MSYS:
* mignw.org - they make the original MSYS (MSYS1)
* some random people on the net (mostly it's just alexey) affiliated
mostly with mingw-w64 project - they make MSYS2
(also, there's the Cygwin project, which has its own POSIX-only
environment, and its own toolchains, but to produce W32 binaries there
you have to cross-compile from Cygwin to W32; if you know what
"cross-compiling" is, and you're ok with it, then stop reading here and
go download&install Cygwin, and ask questions on Cygwin mailing list).
Your MSYS is from mingw.org (i can tell from the way directories are
laid out).
I don't know which flavor of MinGW toolchains you're using though.
At this point you should decide whether you really want to use mingw-w64
toolchain or a mingw.org toolchain. If it's mingw.org, then stop reading
and go to their mailing list and ask your questions there. If it's
mingw-w64, then read on.
Since MSYS is a separate, POSIX environment, it has its own stuff - a
special toolchain (i686-pc-msys) that produces MSYS binaries, its own
set of GNU Autotools scripts. Also, all non-portable (POSIX-only) stuff
lives in MSYS - such as bash.
Inside MSYS environment you have a virtual root directory and lots of
POSIXly things. Namely, for compatibility with real POSIX OSes, MSYS has
a /usr directory (which is just an alias for the root directory).
/usr is an alias, not a link. In fact, MSYS doesn't use any symlinks at
all. Cygwin has its own symlink emulation (which is not compatible with
W32) by default (but you can make it use W32 symlinks on newer versions
of Winodws). MSYS2 and Cygwin tend to have more complex directory layouts.
To keep MinGW stuff from conflicting with MSYS stuff, these two are kept
in separate roots, and MinGW root is (usually) mounted in MSYS as /mingw.
Also, when you run bash, /mingw/bin is put into your PATH before
/usr/bin, unless you set MSYSTEM=MSYS. This means that MinGW stuff has
priority over MSYS stuff. This is also the reason why MinGW make (if you
have it) is (or should be) re-named, so that you use /usr/bin/make.exe,
not /mingw/bin/make.exe, because usually it's the msys-make that you
want. On the other hand, is not renamed, so you'll be using
/mingw/bin/gcc.exe, not /usr/bin/gcc.exe, because you definitely don't
want to use msys-gcc!
When you configure W32 packages, you are advised to use --prefix=/mingw,
and install them into /mingw prefix.
OK, that should be enough. Once you decide which flavor of POSIX
environment to use (MSYS, Cygwin or MSYS2), we'll be able to talk details.
> # 2 Can different users use MinGW. When installed it uses the current
> user's name to creaste /home/usr, but, I'd like to have another user
> with its own /home/<user-name> directory. ... ls shows the owner of
> files different depending on the person loggged in, but wouldn't allow
> me to create a /home/user-name, as I recall. There is no /etc/passwd.
> How can I find out about this to gain a good understanding?
Depends on which environment you are using. In Cygwin and MSYS2 there
is, in fact, /etc/passwd.
In MSYS1, AFAIR, most of these things are stripped out and, for example,
it fakes ownership (so you see that files are owned by "you", no matter
which user you are logged under).
MSYS1, AFAIR, doesn't bother with permissions checks, so all users can
use it freely. Not sure why you can't create /home/user-name.
Cygwin and MSYS2 are more picky. MSYS2 was not tested for running under
different users (at least not by me). Don't know about Cygwin, ask on
Cygwin ML.
- --
O< ascii ribbon - stop html email! - www.asciiribbon.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (MingW32)
iQEcBAEBAgAGBQJSIfk3AAoJEOs4Jb6SI2CwMBQH/R8I0PU8i+2XV3CygjuCt/jP
MtdT5RktcnKiPDQHPzAgHFd83X4g2ReFUhXs2SqaWxl9bZm+UGObzv209bHTsX9F
/U8uAQJJLQRbQG+w2LisY1sdug82C/uzAcaCtW2Xy0b55YBM3050/M2xukEkN1mC
5H6dccRzXuHuG1cMSCZ+CZn87qgbMPZ5rRupMhxgnHVfz9ippbb6x1Npfr/eFjKO
Edytc7aRW00GMlGDmRGp+nBc7JHYHT+QF1MZkaMeKDKp/Yx49+InmJuXh2yqTN4N
VnJJQe5XQ27wuqBmxIcAHBTZrixkF848vKf4BlV+1pwAtPW/EtDke1lDbjHqRFk=
=PnNW
-----END PGP SIGNATURE-----
------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public