running from build dir

Neil Williams linux at codehelp.co.uk
Wed Dec 22 12:05:29 EST 2004


On Wednesday 22 December 2004 11:48 am, Chris Shoemaker wrote:
> > I just "make install" every time.  Note that if you only change
> > source files (not headers) then you only need to make install
> > in the directories you've changed rather than "make install" in
> > the full source tree.  If nothing else it saves a bit of time.
>
> I see.  That's a good tip.  I've been working as if this is also true
> for "make".  Is that so?

Better to skip the make and go for make install from the directory where you 
made your changes. I even skip between directories and run two or three make 
installs in gnucash/src/engine and gnucash/src/gnome in less time than it 
takes to do a full make install from gnucash/. I also cheat - I edit the 
local Makefile.am to remove test files in directories beneath the current one 
from the build until I actually need to test. (top tip: remember to put them 
back!)

So I use Shift+F9 from Anjuta to build within the IDE according to the 
relevant Makefile relating to the file being edited. That makes sure I 
haven't made some stupid typo. Then in a terminal (within Anjuta or 
separate), a quick make install, cd /opt/gnucash/local/bin and ./gnucash - or 
usually ./gnucash --nofile after a tip from Derek.

> I definitely need to find ways to save time. 
> Even on my fastest machine, compile/install cycles take almost 10
> minutes.  :(  If it's possible, I'd like to improve this situation.

It shouldn't take more than 30 seconds to a minute for a make install in a sub 
directory of src/. No need to do make either, just go straight for make 
install.

I then leave cron to do the magic of a full make install overnight, each 
night.

> I like the idea of running out of my build dir, to avoid "make
> install".

No need, run make install from a sub-dir and it'll update the previous make 
install. You run make install once (after an autogen.sh) and then start 
editing. 

> I guess it kind of works the way I have it.  Other than the 
> obvious limitation on CWD, do you think this is a reasonable devel
> setup?  It _seems_ to work.

There are installation quirks that could catch you out - especially if you 
need to read external files. You need to be sure those are being installed, 
updated and are available to your code.

> I'd like to understand this better.  I recognize the need to find the
> guile executable, and have the environment all setup, but that's all
> standard install issues.  Are there some subtle or unique
> directory-finding requirements once the Scheme is being interpreted?

Yes. e.g. the hierarchy druid loads it's example account files from a location 
determined from the --prefix and therefore set in the rest of the build. 
Changes in things like that mean that only a make install will tell you if 
your changes will work.

-- 

Neil Williams
=============
http://www.dclug.org.uk/
http://www.nosoftwarepatents.com/
http://sourceforge.net/projects/isbnsearch/
http://www.williamsleesmill.me.uk/
http://www.biglumber.com/x/web?qs=0x8801094A28BCB3E3

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.gnucash.org/pipermail/gnucash-devel/attachments/20041222/1c2bace9/attachment.bin


More information about the gnucash-devel mailing list