Please support out-of-tree builds

Bug #333079 reported by Andreas Rottmann
10
Affects Status Importance Assigned to Milestone
Ikarus Scheme
Fix Committed
Low
Abdulaziz Ghuloum

Bug Description

It would be nice if Ikarus supported out-of tree builds, e.g.

cd ikarus
mkdir build
cd build
../configure && make && make install

This would also enable the use of the automake "distcheck" target (which uses an out-of-tree build). Currently the build fails in the scheme/ subdirectory:

[...]
../src/ikarus -b ./ikarus.boot.8.prebuilt --r6rs-script makefile.ss
ikarus: failed to open boot file "./ikarus.boot.8.prebuilt": No such file or directory
ikarus -h for more help
make[2]: *** [ikarus.boot] Error 255
make[2]: Leaving directory `/home/rotty/src/ikarus/build/scheme'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/rotty/src/ikarus/build'
make: *** [all] Error 2

I tried fixing this by adding $(srcdir) in relevant places of scheme/Makefile.am, but apparently the Scheme source (makefile.ss?) also has to be tweaked. I've attached a patch of my attempt, in case you find it useful.

Related branches

Revision history for this message
Andreas Rottmann (rotty) wrote :
Revision history for this message
Abdulaziz Ghuloum (aghuloum) wrote :

Added in revision 1758. Please check if everything looks correct.

Changed in ikarus:
assignee: nobody → aghuloum
importance: Undecided → Low
status: New → Fix Committed
Revision history for this message
Andreas Rottmann (rotty) wrote :

It mostly works (out-of-tree build is ok, `make distcheck' fails). The attached patch fixes the `make distcheck' issues, at least for me.

Thanks, Rotty

Revision history for this message
Abdulaziz Ghuloum (aghuloum) wrote : Re: [Bug 333079] Re: Please support out-of-tree builds

On Apr 6, 2009, at 8:05 PM, Andreas Rottmann wrote:

> It mostly works (out-of-tree build is ok, `make distcheck' fails). The
> attached patch fixes the `make distcheck' issues, at least for me.
>
> Thanks, Rotty

Thanks to you, Sir!

Applied the patch in rev 1759. (Didn't know about distcheck before)

Aziz,,,

Revision history for this message
Andreas Rottmann (rotty) wrote :

Abdulaziz Ghuloum <email address hidden> writes:

> On Apr 6, 2009, at 8:05 PM, Andreas Rottmann wrote:
>
>> It mostly works (out-of-tree build is ok, `make distcheck' fails). The
>> attached patch fixes the `make distcheck' issues, at least for me.
>>
>> Thanks, Rotty
>
> Thanks to you, Sir!
>
You're welcome :-)

> Applied the patch in rev 1759. (Didn't know about distcheck before)
>
It's really useful IMHO, as it makes pretty sure a tarball created by
'make dist' is OK.

I guess you've built tarballs by exporting from bzr somehow, and that's
also why the generated files (e.g. Makefile.in) are in the VCS? Assuming
I'm right on this, would you consider to remove them, now you have a
working alternative to building tarballs? The generated files make it
harder to do patches touching the buildsystem, as you have to filter
them out when creating the diff. Anyways, not a real problem for me,
just a suggestion (and it would make your buildsystem commit diffs
smaller ;-)).

These are the files I've removed in my local git mirror of the bzr repo:

Makefile.in
aclocal.m4
benchmarks/Makefile.in
config.guess
config.h.in
config.sub
configure
depcomp
doc/Makefile.in
install-sh
lib/Makefile.in
missing
mkinstalldirs
scheme/Makefile.in
src/Makefile.in

They can be recreated by running 'autoreconf -i' (this would probably
have to be mentioned on the Ikarus webpage under 'Development').

Cheers, Rotty

Revision history for this message
Abdulaziz Ghuloum (aghuloum) wrote :

On Apr 7, 2009, at 11:17 PM, Andreas Rottmann wrote:

> It's really useful IMHO, as it makes pretty sure a tarball created by
> 'make dist' is OK.
>
> I guess you've built tarballs by exporting from bzr somehow,

I created the tarballs with "make dist-gzip", which works okay
but didn't do the extra checks that "make distcheck" does.

> and that's
> also why the generated files (e.g. Makefile.in) are in the VCS?

I kept the generated files so that people who do a lightweight
checkout from the repo do not have to deal with the autotools
(autoconf and automake). I've had some incompatibility problems
with different versions of these tools, they should be able to
./configure && make and that's it. Removing these files, while
cleaner, adds an extra step and a potential for errors (and
honestly, autoconf and automake are not easy to debug).

So, I prefer to keep them in the repo for the time being.

Aziz,,,

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.