Build and run in separate directory

Derek Atkins warlord at MIT.EDU
Wed Feb 15 08:51:13 EST 2006


Mike Alexander <mta at umich.edu> writes:

>> I am unclear why this change has any effect.  What are the values of
>> srcdir, top_srcdir, and top_builddir in intl-scm/Makefile.

I see the problem now; it's unclear just from the patch -- you need
to see the rest of the Makefile.am to understand the issue...

> That's the heart of the problem.  For the situation that causes 
> problems they are
>
> srcdir=../../../gnucash-1.9/intl-scm
> top_srcdir=../../../gnucash-1.9
> top_builddir=..
...

The original Makefile has this:

SCMFILES = $(shell find ${top_srcdir}/src -name test -prune -o -name '*.scm' -print )

# This needs to be generated in srcdir
guile-strings.c: $(SCMFILES)
	rm -f guile-strings.c
	cd ${srcdir} && rm -f guile-strings.c \
	&& ${GUILE} -s ./xgettext.scm $(SCMFILES)

So it builds the list relative to ${builddir} but then USES the list
from $(srcdir).  This is why it doesn't work if builddir and srcdir
are in different levels of the hierarchy.  It should build the list
from the same directory it's used in.

An alternate approach is:

guile-strings.c: $(SCMFILES)
	rm -f guile-strings.c ${srcdir}/guile-strings.c \
	&& ${GUILE} -s ${srcdir}/xgettext.scm $(SCMFILES)
   
I'm not sure which approach is better, honestly.

-derek

-- 
       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL: http://web.mit.edu/warlord/    PP-ASEL-IA     N1NWH
       warlord at MIT.EDU                        PGP key available


More information about the gnucash-devel mailing list