[VICTORY] (was Re: Linux building woes...)

goran.krampe at bluefish.se goran.krampe at bluefish.se
Wed Jul 7 21:13:21 UTC 2004


Hi Ian and all!

Now I have been battling autoconf/automake/m4 etc for a few days and MY
GOD it can drive you nuts. :) But... it seems I have managed to get
Ian's build process working with automake 1.8.5 and autoconf 2.59 -
these are AFAIK the latest releases of these packages.

I hacked and slashed and dug and messed around A LOT. Why did I start
this torture? After all - Ian's tar-balls (3.6 and 3.7b-5) build fine on
my box! Well - those tar's have the configure script included...

But then I wanted to build from Sourceforge CVS and noticed that it
doesn't have the configure script in CVS. Naturally. Anyway, I use Lunar
Linux and it didn't have automake 1.7.x available - which was the hint
Ned pointed out in order to be able to make the configure script.

First I made a Lunar module for automake 1.7.9 (the latest in the 1.7
series) and modified the Makefile to call "aclocal-1.7.9 -I
/usr/share/aclocal" instead of just "aclocal". That worked after messing
with a few softlinks here and there. I also spent a lot of time messing
with autoreconf but eventually dropped that. Well, it all felt like a
boring solution - it would be nicer if we could get automake 1.8.5 to
work of course!

After staring at weird M4 errors for hours and testing, trying to debug
Perl code (shudder) etc, I finally struck gold. In the end it turned out
that *the only thing* making 1.8.5 not working is this damn line in
configure.ac:

sinclude(acplugins.m4)

It is approximately in the middle of configure.ac and means "silent
include". The idea is that it includes the previously (by mkacinc)
assembled file acplugins.m4. But for some WEIRD reason this makes M4 go
bananas. It starts complaining about AC_ARG_WITH ?!, yadda yadda. I have
NO IDEA why. But whatever - I swiftly "solved" this with some manual
"inclusion" instead. I took configure.ac and split it up into
configure-1.ac and configure-2.ac. Then I changed the Makefile to this:

configure : .force
        cp configure-1.ac configure.ac
        ./mkacinc >> configure.ac
        cat configure-2.ac >> configure.ac
        aclocal
        autoconf
.force :

And... voila! It suddenly works just bloody fine. The configure script
produced in the end is identical to the once produced with 1.7.9 on my
box. I have tried this on Ian's 3.7b tar - and it works. And it also
works fine with SF CVS (HEAD).

Well - I will not commit anything to SF - it seems wiser to leave it up
to Ian to figure out how and if this change should be done. Obviously
sinclude() isn't really up to snuff. Haven't googled the subject
extensively yet.

regards, Göran

PS. What about that CVS move people? Are you all on vacation? :)



More information about the Squeak-dev mailing list