running from build dir

Chris Shoemaker c.shoemaker at cox.net
Wed Dec 22 13:35:47 EST 2004


On Wed, Dec 22, 2004 at 05:05:29PM +0000, Neil Williams wrote:
> 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!)

Are you sure that is holds when editting .c files, too?  My
understanding is that make install is sufficient for modified scm
files, but modified .c requires make.  I think Derek implied exactly
this is this thread.

> 
> 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 

Perhaps Shift+F9 is equivalent to 'make'?

> 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.

Thanks for explaining your work-flow.  I've learned so much by
understanding how other people work.

I don't know much about Anjuta, but I'm a bit wary of heavy-weight
IDEs, because I use some pretty ancient hardware.  Do you find Anjuta
resource-friendly?  My current environment is along the lines of
emacs+gdb+etags.  I find it quite functional, although not always
intuitive.

> 
> > 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.
> 

So I've learned.  Is it considered undesirable for the installed
binaries to be sensitive to their location?  If this were a pure C
app, I would suggest a dependence on an environment variable(s) for
finding all the needed files.  Is this more difficult with Scheme, or
is there some other reason to prefer fixing paths at install-time?

-chris



More information about the gnucash-devel mailing list