From: shelarcy <she...@gm...> - 2009-04-09 05:01:43
|
Hi, On Wed, 08 Apr 2009 20:52:58 +0900, <E....@br...> wrote: > Wed Apr 8 11:41:20 BST 2009 Eric Kow <E....@br...> > * Remove targets for building wxcore. Why this changes doesn't care about "make bindist"? Windows user doesn't have unix shell (e.g. msys or cygwin) in default. And current Cabal doesn't care about installing C library binary before building Haskell project. So, breaking binary distribution causes serious problem. You can see this problem following thread. http://www.haskell.org/pipermail/hopengl/2009-March/000795.html http://www.haskell.org/pipermail/libraries/2009-April/011493.html > So what this patch bundle aims to do is to move us in the direction of only > using the configure and make stuff to build wxc, install wxc and generate the > wxcore Haskell files with wxdirect. > > I don't know yet if this is the right way to about things. All I noticed is > that wxcore really does build with the Simple method once you have generated > the hs files. I guess the idea would be that we would have to generate the > files and then release them on hackage. I also don't know if the generated > .hs files are platform-independent. If they are not, would it be difficult > to make them so? > > Anyway, if this works as expected then we can tell people: > > - install wxWidgets (configure, etc) > - install wxc (configure, etc) > - cabal install wx I agree this change is useful. But that is not good for all Windows users. I think we must modify your patch to support binary distribution. Best Regards, -- shelarcy <shelarcy hotmail.co.jp> http://page.freett.com/shelarcy/ |
From: Eric Y. K. <eri...@gm...> - 2009-04-09 08:39:07
|
On Thu, Apr 09, 2009 at 14:01:27 +0900, shelarcy wrote: > > * Remove targets for building wxcore. > > Why this changes doesn't care about "make bindist"? It's not deliberate. It shouldn't be too difficult to revise make bindist to also include the new purely cabalised wxcore. > Windows user doesn't have unix shell (e.g. msys or cygwin) in default. > And current Cabal doesn't care about installing C library binary > before building Haskell project. So, breaking binary distribution > causes serious problem. One thing we could consider doing is shipping a .pc file for wxc http://en.wikipedia.org/wiki/Pkg-config Cabal has support for it, so we could get the wxcore cabal file to require the wxc with the pkgconfig-depends flag > > - install wxWidgets (configure, etc) > > - install wxc (configure, etc) > > - cabal install wx > > I agree this change is useful. But that is not good for all Windows users. > I think we must modify your patch to support binary distribution. Do you have a clear picture what needs to be done? I don't really. -- Eric Kow <http://www.nltg.brighton.ac.uk/home/Eric.Kow> PGP Key ID: 08AC04F9 |
From: shelarcy <she...@gm...> - 2009-04-10 09:40:18
|
On Thu, 09 Apr 2009 17:38:59 +0900, Eric Y. Kow <eri...@gm...> wrote: >> > - install wxWidgets (configure, etc) >> > - install wxc (configure, etc) >> > - cabal install wx >> >> I agree this change is useful. But that is not good for all Windows users. >> I think we must modify your patch to support binary distribution. > > Do you have a clear picture what needs to be done? I don't really. I think we need not remove wxcore-install-files, (WXCORE-LIB) and other make targets. We just modify all and install targets, and add wxcore-gen and wxcore-install targets. For example: all: wxcore-gen install: wxc-install-files wxcore: wxcore-gen $(WXCORE-LIBS) wxcore-gen: wxd wxc wxcore-dirs $(WXCORE-GEN-HS) wxcore-install wxcore-install-files wxcore-register Then we can build bindist by following command. ./configure make make install (Windows doesn't require this command.) make wxcore make wxcore-install make wx make bindist We use above solution for removing wx package from make process before. We can use it for current problem, too. Alternative solution is that "make bindist" copies wxcore/dist and wx/dist file to make binary distribution. I don't know this is easy or not. Best Regards, -- shelarcy <shelarcy hotmail.co.jp> http://page.freett.com/shelarcy/ |
From: Eric K. <eri...@gm...> - 2009-04-10 15:38:47
|
Is this the right approach? Wed Apr 8 11:38:47 BST 2009 Eric Kow <E....@br...> * Move wxcore.cabal to wxcore and use Simple build method. The assumption here is that the automatically generated files have already been built. Fri Apr 10 15:50:29 BST 2009 Eric Kow <E....@br...> * Split wxcore-only into wxcore-gen and wxcore-libs. Fri Apr 10 15:50:48 BST 2009 Eric Kow <E....@br...> * Do not build wxcore in the default target (let that be a separate cabal step). |
From: shelarcy <she...@gm...> - 2009-04-10 16:25:45
|
On Sat, 11 Apr 2009 00:38:41 +0900, Eric Kow <eri...@gm...> wrote: > Is this the right approach? > > Wed Apr 8 11:38:47 BST 2009 Eric Kow <E....@br...> > * Move wxcore.cabal to wxcore and use Simple build method. > The assumption here is that the automatically generated files have already > been built. > > Fri Apr 10 15:50:29 BST 2009 Eric Kow <E....@br...> > * Split wxcore-only into wxcore-gen and wxcore-libs. > > Fri Apr 10 15:50:48 BST 2009 Eric Kow <E....@br...> > * Do not build wxcore in the default target (let that be a separate cabal step). Yes. We can make binary distribution now. But you forgot to add wxcore-install. This means that we must build wxcore twice when we want to build binary distribution. So, I added more 1 patch for adding wxcore-install target. Best Regards, -- shelarcy <shelarcy hotmail.co.jp> http://page.freett.com/shelarcy/ |
From: shelarcy <she...@gm...> - 2009-04-12 05:18:19
|
I pushed these changes now, thanks. On Sat, 11 Apr 2009 01:25:25 +0900, shelarcy <she...@gm...> wrote: >> Is this the right approach? >> >> Wed Apr 8 11:38:47 BST 2009 Eric Kow <E....@br...> >> * Move wxcore.cabal to wxcore and use Simple build method. >> The assumption here is that the automatically generated files have already >> been built. >> >> Fri Apr 10 15:50:29 BST 2009 Eric Kow <E....@br...> >> * Split wxcore-only into wxcore-gen and wxcore-libs. >> >> Fri Apr 10 15:50:48 BST 2009 Eric Kow <E....@br...> >> * Do not build wxcore in the default target (let that be a separate cabal step). > > Yes. We can make binary distribution now. > > But you forgot to add wxcore-install. This means that we must build > wxcore twice when we want to build binary distribution. So, I added > more 1 patch for adding wxcore-install target. -- shelarcy <shelarcy hotmail.co.jp> http://page.freett.com/shelarcy/ |
From: Eric Y. K. <eri...@gm...> - 2009-04-12 08:42:24
|
On Sun, Apr 12, 2009 at 14:17:58 +0900, shelarcy wrote: > I pushed these changes now, thanks. Hooray! I really hope this reduces the wxhaskell install pain for people or at least makes it less mysterious. Now the problem I have is that when I cabal install my wxHaskell-using software, I get a lot of stuff like this: "_wxHtmlWindow_SetBorders", referenced from: _s1PdP_info in libHSwxcore-0.11.1.3.a(WxcClassesAL.o) "_ELJPreviewFrame_Initialize", referenced from: _s3Y8j_info in libHSwxcore-0.11.1.3.a(WxcClassesMZ.o) ld: symbol(s) not found What I'm guessing is missing is some kind of instruction telling GHC to link with the wxc library. What do you think is the right way to deal with this kind of problem? -- Eric Kow <http://www.nltg.brighton.ac.uk/home/Eric.Kow> PGP Key ID: 08AC04F9 |
From: shelarcy <she...@gm...> - 2009-04-12 14:06:37
|
On Sun, 12 Apr 2009 17:42:11 +0900, Eric Y. Kow <eri...@gm...> wrote: > Now the problem I have is that when I cabal install my wxHaskell-using > software, I get a lot of stuff like this: > > "_wxHtmlWindow_SetBorders", referenced from: > _s1PdP_info in libHSwxcore-0.11.1.3.a(WxcClassesAL.o) > "_ELJPreviewFrame_Initialize", referenced from: > _s3Y8j_info in libHSwxcore-0.11.1.3.a(WxcClassesMZ.o) > ld: symbol(s) not found > > What I'm guessing is missing is some kind of instruction telling GHC to link > with the wxc library. > > What do you think is the right way to deal with this kind of problem? Our auto-generated config/wxcore-pkg has extra-libraries field. But wxcore/wxcore.cabal doen't have that. So, we should add extra-libraries and extra-lib-dirs fields for linking wxc library. http://www.haskell.org/ghc/docs/6.10.2/html/Cabal/authors.html#buildinfo And I think we need to add configure file for searching installed wxc library, too. http://www.haskell.org/ghc/docs/6.10.2/html/Cabal/authors.html#system-dependent Best Regards, -- shelarcy <shelarcy hotmail.co.jp> http://page.freett.com/shelarcy/ |
From: Eric Y. K. <eri...@gm...> - 2009-04-12 17:17:28
|
On Sun, Apr 12, 2009 at 23:06:18 +0900, shelarcy wrote: > So, we should add extra-libraries and extra-lib-dirs fields for linking > wxc library. > > http://www.haskell.org/ghc/docs/6.10.2/html/Cabal/authors.html#buildinfo Hmm... well, I think I've run out of wxhaskell time. Is this something you could do? I guess one option might be to put down all the places where the wxc library could plausibly live, although I'm not sure if that's an OK thing to do. > And I think we need to add configure file for searching installed wxc > library, too. > > http://www.haskell.org/ghc/docs/6.10.2/html/Cabal/authors.html#system-dependent Or perhaps hard-code something into Setup.lhs It may be time to call in the Cabal folks and ask for advice. Thanks! Looking forward to the new, more transparent install process. -- Eric Kow <http://www.nltg.brighton.ac.uk/home/Eric.Kow> PGP Key ID: 08AC04F9 |
From: <E....@br...> - 2009-04-09 19:11:41
|
Here are three new patches which makes wxcore require wxc. Does this move us closer to doing the right thing? I'm still not sure what we need to do to account for bindist, though? Previously sent --------------- Wed Apr 8 11:38:47 BST 2009 Eric Kow <E....@br...> * Move wxcore.cabal to wxcore and use Simple build method. The assumption here is that the automatically generated files have already been built. Wed Apr 8 11:40:33 BST 2009 Eric Kow <E....@br...> * Do not build wxcore objects (let cabal do that). Wed Apr 8 11:41:20 BST 2009 Eric Kow <E....@br...> * Remove targets for building wxcore. New patches ----------- Thu Apr 9 18:34:23 BST 2009 Eric Kow <E....@br...> * Generate a pkg-config file for our wxc. Thu Apr 9 20:05:25 BST 2009 Eric Kow <E....@br...> * Install libwxc.pc file in pkgconfig dir. Thu Apr 9 20:09:09 BST 2009 Eric Kow <E....@br...> * Express dependency on wxc in wxcore.cabal via pkgconfig. |
From: shelarcy <she...@gm...> - 2009-04-10 10:05:33
|
On Thu, 09 Apr 2009 17:38:59 +0900, Eric Y. Kow <eri...@gm...> wrote: > One thing we could consider doing is shipping a .pc file for wxc > http://en.wikipedia.org/wiki/Pkg-config > > Cabal has support for it, so we could get the wxcore cabal file to > require the wxc with the pkgconfig-depends flag Unfortunately pkg-config doesn't solve our problem. If Windows user installs pkg-config, pkg-config solves problem. But Windows doesn't not install pkg-config in defaut. GHC doesn't include pkg-config. And GTK+ project's pkg-cofig binary requires to install glib dll. Windows user must install unix shell or GTK+ when Windows user want to use pkg-config. This is not friendly for Windows user. On Fri, 10 Apr 2009 17:41:22 +0900, <E....@br...> wrote: > Here are three new patches which makes wxcore require wxc. > Does this move us closer to doing the right thing? > > I'm still not sure what we need to do to account for bindist, though? > > (snip) > > New patches > ----------- > Thu Apr 9 18:34:23 BST 2009 Eric Kow <E....@br...> > * Generate a pkg-config file for our wxc. > > Thu Apr 9 20:05:25 BST 2009 Eric Kow <E....@br...> > * Install libwxc.pc file in pkgconfig dir. > > Thu Apr 9 20:09:09 BST 2009 Eric Kow <E....@br...> > * Express dependency on wxc in wxcore.cabal via pkgconfig. So, new patches are not solution for our problem. We still need to supply bindist. Best Regards, -- shelarcy <shelarcy hotmail.co.jp> http://page.freett.com/shelarcy/ |