Radically improve autogen.sh - cannot build trunk.

Neil Williams linux at codehelp.co.uk
Sun Nov 6 10:43:50 EST 2005


On Sunday 06 November 2005 1:54 pm, Christian Stimming wrote:
(inadvertently sent off-list - new copy for the list)

> sorry that it's you again who runs into all kinds of trouble with this
> change. 

AFAICT I'm the only one developing on OSX and the only one developing on 
Debian unstable. Both are "progressive" rather than "frozen" installations - 
rolling library versions ever onwards. Debian unstable is never frozen so 
there's no "break" as there is between FC3 and FC4. Fink follows the same 
model and gnucash needs to avoid all the OSX code it can - the BSD code in 
OSX stinks!

(IMHO BSD in OSX == bull s**t development)

> Then main discussion of that change happened on IRC

I hate IRC - it's all the things I dislike about the telephone with none of 
the benefits of email. It's intrusive (you have to be online when others are 
online), it's invasive (it interrupts me in the middle of other things 
instead of waiting until I'm ready) and it's non-archived (so nobody can 
catch up with the IRC thread).

It might be half-usable if there was a public archive of ALL gnucash IRC 
conversations but even that is not particularly useful because there's no way 
of breaking the logs into logical conversations.

> occasionally  
> during the last weeks, so I assumed that after cleaning up this script good
> enough then it should work for all circumstances. 

Making an assumption based on a GNU environment does not mean you can expect 
it to work in a non-GNU environment. OSX is non-GNU and needs to be beaten 
into submission before it will behave in a GNU manner. Even then, there are 
surprises. n.b. assumption is the mother of all foulups. (And I've made 
enough!)
:-)

> * As for ./autogen.sh calling ./configure: autogen and configure are two
> orthogonal things; autogen is meant *only* for creating the helper stuff
> when you got your code from CVS^H^H^H SVN, whereas configure is meant for
> each and every built, regardless whether is came from SVN or from a
> tarball. Having autogen.sh automatically calling configure IMHO mixes up
> these two steps that aren't necessarily conditioned on each other.

My only problem with that on Debian is this build-within-a-build in cashutil 
branch. I need to be able to hook cashutil/configure onto the end 
of ./configure in a wrapper script that passes on the --prefix and nothing 
else.

The old autogen.sh in the cashutil branch does this nicely now. Take a look at 
r11860.

> Therefore I strongly proposed (on IRC) and propose to remove that automatic
> calling convention and instead have each developer call this in two steps
> from now on.

Unfortunately, I would prefer a wrapper script - of any kind - that at least 
ties the two configure scripts together. It makes no sense to allow 
--enable-cashutil if the cashutil configure is not run.

I might be able to tack it onto configure using an internal variable that 
executes a string just before AC_OUTPUT. I'll try that later. In the 
meantime, please take a look at the cashutil branch and see if you can follow 
what I'm doing and how to move to the new script.

> The point is that autogen.sh has really zero command options, whereas
> configure has plenty of them. Passing the configure options to autogen IMHO
> messes up the understanding which options should be passed to where.

Fine, it's the wrapper I need - autogen.sh was the obvious candidate with the 
old arrangement and now if it isn't being passed --prefix then there's no 
point in using autogen.sh as the wrapper - but I would like something else to 
replace that functionality.

> * As for undefined macros and potentially the wrong autotools versions: The
> previous autogen.sh script totally blurred up the actual autotool versions
> that will be called.

Maybe, but it also allowed easier customisation of specific problems like OSX.

> Have you tried to find out which part of the 
> macros/autogen.sh is actually being used at gnucash and which is not, and
> which automake/aclocal/whatever version will really be called? The new
> autogen.sh will directly put you, the developer, at the decision line. The
> script will call that aclocal/automake/whatever that's available under that
> name, *unless* you define AUTOMAKE=automake-1.2.3 before calling that
> script. Please look into the script.

I have and it did not allow me to build gnucash on a system that had built it 
under the old script. I had to actually uninstall certain auto tools which 
has meant a MAJOR PITA for me because I am now completely unable to update 
gnucash1.8 because the auto tools are too recent. I cannot build 1.8 with the 
auto tools that G2 now needs.

IMHO, that is *not* an improvement to the overall situation.

> So if you need to use some non-default 
> versions of the autotools on darwin, simply define the appropriate env
> variables before calling autogen.sh.

Just like the 'sed' patch I've committed to trunk today, OSX needs to always 
use the GNU versions and things will break when the BSD versions get in the 
way. Unfortunately, OSX insists on calling the BSD version unless you 
*specifically* call the GNU version - it doesn't always respect GNU 
conventions of environment variables, you appear to have to hardcode these 
things sometimes.

We've even got to the stage now that gnucash is advising OSX users to *modify 
their PATH*! That's the bad old days of MS-DOS and Windows 3.1!!!

Please don't say we're going back to autoexec.bat and config.sys!!!
:-)

Peter knows OSX better than I do, but personally I find it irksome that 
building gnucash on OSX requires hacks like changing ~/.bashrc and 
uninstalling packages that worked previously.

-- 

Neil Williams
=============
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/

-------------- 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/20051106/cda5316d/attachment.bin


More information about the gnucash-devel mailing list