[Haskell-cafe] Re: Hackage on Linux

Brandon S Allbery KF8NH allbery at ece.cmu.edu
Sun Aug 29 13:06:53 EDT 2010


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 8/29/10 08:05 , Ivan Lazar Miljenovic wrote:
> On 29 August 2010 21:46, Andrew Coppin <andrewcoppin at btinternet.com> wrote:
>>>  a) No standard place to find C include files.
>>>  b) No standard place to find libraries.
>>>  c) No standard way to find if common open source libraries are
>>>     installed and where.
>>
>> As best as I can tell, the Unix Standard Way(tm) to do this kind of thing is
>> to put files into "well known" locations so that they can be easily found.
>> (The fact that tools like autoconf need to exist tells you something about
>> how tricky this can be.)
> 
> No, autoconf has nothing to do with where the "well known" locations
> are.  It's having to deal with different versions, etc. of libraries.

Not entirely true; it also deals (or used to deal) with the fact that you
may have stuff in /opt/SUNWsft (Solaris), /opt/kde (SuSE), /usr/local,
/opt/local (MacPorts), /sw (Fink), etc.  Then again, that's what pkg-config
deals with these days, leaving autoconf to deal with different APIs/ABIs
(different versions, different build options) as long as the software you're
building is up to date.

>> Regardless, you'd think Cabal could provide some way to make it "easy" to
>> state where the files it needs actually are. Currently it does not.
> 
> Well, it uses ghc-pkg to record where the various libraries, etc. are.
>  Otherwise, it could be that none of the Cabal developers are really
> that familiar with the "best practices" of developing Windows software
> (and clobbering the registry whilst your at it).

Note that Cabal is no better at tracking location of non-Haskell resources
on Unix.  (In fact, isn't that what started this topic?)

> By the way, is it possible to have a globally installed library in
> Windows (for C, etc.) that can be used no matter which IDE or editor
> you use?  Or does each IDE manage all that on its own?

DLLs can be put into C:\WINDOWS\SYSTEM32 or equivalent (e.g. Windows NT
liked to install itself in C:\WINNT instead of C:\WINDOWS).  LIB files are
less standard and I'm under the impression that every IDE uses its own
notion of where to put them (and may not use the registry in a non-opaque way).

BTW, if there *is* some standard registry tree that can be used for this, it
should be possible to provide a Windows version of pkg-config that would
hide most of this.  Replacing autoconf is harder, though it might be
possible to work from configure.in (or even configure.am when automake is
involved).

- -- 
brandon s. allbery     [linux,solaris,freebsd,perl]      allbery at kf8nh.com
system administrator  [openafs,heimdal,too many hats]  allbery at ece.cmu.edu
electrical and computer engineering, carnegie mellon university      KF8NH
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.10 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkx6k60ACgkQIn7hlCsL25UeugCdGEYqFmU0GstywKpFaTwDTGHn
1+cAoNNz8A7sM/XM2GCQdeFSTY/ML5hY
=eK9N
-----END PGP SIGNATURE-----


More information about the Haskell-Cafe mailing list