mingw-cross-env-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Mingw-cross-env-list] what belongs in mingw-cross-env/usr/i686-pc-m


From: Volker Grabsch
Subject: Re: [Mingw-cross-env-list] what belongs in mingw-cross-env/usr/i686-pc-mingw32/bin?
Date: Tue, 10 Nov 2009 02:39:18 +0100
User-agent: Mutt/1.5.13 (2006-08-11)

Mark Brand <address@hidden> schrieb:
> One such case is a Qt application using some feature that only works
> with shared Qt, like WebKit.  The user will have to edit qt.mk for a
> shared build. Now, suppose we have patched the source code for the
> build.  The user will need the patched versions of these DLLs to distribute.
> 
> I might also have a need for DLLs with debug info from time to time.

These are very good examples, thanks for that!

> With default build options, packages tend to "install" their DLLs to
> "bin". I agree that this does not make sense.  Would it be better to put
> them in "lib",

Installing them into lib/ would be more "unix-like". Note, however,
that the DLLs will not be found there. But if they are in the same
directory as the EXE file, Windows will find them.

As MinGW and similar projects put their EXE files into bin/, it's
sensible to put the DLL files there, too. This avoids much trouble.

> or maybe some new directory?

This might make sense. However, that directory would have to be
used by EXE files as well as DLL files. As far as I know, there
is no existing standard or consensus about such a directory.

That's why I think that "usr/i686-pc-mingw32/bin/" is not perfect,
but is the candidate which fits best.

> >     * Command line utilities are usually not needed. The
> >       only exceptions are GCC, Binutils, Pkg-config, Gettext
> >       and Qt, but these are built natively, not cross, and
> >       that the. They usually also get a symlink to usr/bin:
> >
> >           usr/bin/i686-pc-mingw32-TOOL   ->   /usr/i686-pc-mingw32/bin/TOOL
> 
> Here I'm not so sure.  For example, the FreeTDS package has some some
> command  line tools that are useful to have on Windows and may even be
> embedded in some applications. It's quite possible that the most
> convenient way to get these in binary form for Windows is to build them
> in mingw-cross-env.

Okay, that's an interesting point. So if there are EXE files
which are needed by the library at runtime? This sounds very
strange to me, but if there's really such a thing, it should
be built by mingw-cross-env and installed to "usr/i686-pc-mingw32/bin/".

Currently, I don't allow any command line tools to be built
in package FreeTDS. Please correct me if that as a misjudgement
and tell me which EXE files are needed and thus should be generated
in mingw-cross-env by default.

> >     * Code generators are worthless when cross-compiled. They
> >       need to be compiled natively, and they aren't installed,
> >       because they aren't needed any longer after the build.
> 
> Agreed, except for code generators like Qt's moc that we keep in bin
> because it's needed to build Qt applications.

Okay, I thought about _interally used_ code generators. Of course,
moc is also a code generator, but for the current discussion we
should consider it as "Command line utility".

> Again, this is about convenience for the user.  It doesn't mean
> that these same binary DLLs should necessarily be distributed to end users.

If it's just about users who tweak mingw-cross-env, I don't see
any need to standardize their directory structures, as there is
no exchange to be expected.

So although this discussion if quite interesting, in the end of
the day I guess it simply won't matter where you put the DLLs.
:-)

> > Note, however, that there's a related question of where to
> > put externally downloaded DLL files. I don't think they need
> > to go into mingw-cross-env's usr/ directory. But if there
> > appears to be a good reason for doing that, our "bin" directory
> > (i.e. usr/i686-pc-mingw32/bin/) would be the candidate which
> > fits best.
> 
> I guess the question boils down to this: Where should target platform
> exe and dll files be "installed" in mingw-cross-env?  I agree that this
> should be rare, but there seem to be a enough realistic scenarios to
> motivate a policy.  The answer to this question probably also applies to
> mingwm10.dll.

If there's really a need for a policy, I'd vote for:

    usr/i686-pc-mingw32/bin
    
for the reasons mentioned above.


Greets,

    Volker

-- 
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR




reply via email to

[Prev in Thread] Current Thread [Next in Thread]