Subject: Re: [Bitcoin-development] Change to multiple executables?

From: Pieter Wuille <[email-masked]>
Date: Wed, 10 Aug 2011 12:43:36 +0200

On Wed, Aug 10, 2011 at 12:14:49PM +0200, Matt Corallo wrote:
> On Wed, 2011-08-10 at 09:36 +0000, John Smith wrote:
> > All,
> > 
> > In the current mainline client everything is lugged into one
> > executable (with an optional daemon-only one). I think this is a bad
> > idea for various reasons, and would propose something like:
> >       * bitcoind: bitcoin daemon
> >       * bitcoin(-qt): bitcoin GUI executable
> >       * bitcoincl: bitcoin RPC command line
> > By default, all three would be built. In non-GUI mode, only bitcoind
> > and bitcoincl are built (the names are obviously open for
> > discussion). 
> 
> All this said, I totally agree with the more clear split of the source
> into separate library-ish components (I'm working on part of that now).
> However, I don't like the idea of splitting into more executables.  

I do agree about splitting off bitcoincl - it's kinda confusing now how
the client behaves as a rpc daemon or UI when no RPC command-line
parameters are present, and as a command-line client otherwise.

I am less sure UI and RPC should be split (though being able to select
both independently from eachother at compile time would be nice). I
often run the UI and switch to RPC calls to inspect some details.
Not sure how common this usage pattern is, though.

> If you are suggesting this so that bitcoin-qt can be distributed being
> built off of bitcoind, I would say go ahead and pull-request bitcoin-qt.
> I'm of the opinion that it should be merged whether we have autotools or
> not (we already have 5 makefiles, whats a few more options in those?)
> and jgarzik seemed to indicate that he would agree (Gavin?, sipa?
> tcatm?).

The problem is that bitcoin-qt is built using qmake, and the rest using
makefiles... so it's more than just adding an additional makefile.

That said, it seems bitcoin-qt is mature enough to replace wxbitcoin
to me, and would definitely like to see it in mainline. How streamlined
is the process of building bitcoin-qt on windows and osx? Maybe we can
switch everything to qmake (for now, as long as no maintained autotools 
is present)?

-- 
Pieter