2008/9/28 Ludovic Courtès <[EMAIL PROTECTED]>: > > "Neil Jerram" <[EMAIL PROTECTED]> writes: > >> I've done this part a bit differently - see the libguile/Makefile.am >> changes - because I couldn't see exactly how the recursive make >> approach would work. If you think recursive make would be >> significantly better, can you describe or propose the detailed changes >> that would be needed? > > Your proposition looks very good actually. I suppose the generated > makefile doesn't require recompilation of all `.lo' files to go from > `libuguile' to `libguile', right?
If you mean does it actually compile them all again?: yes, I'm afraid it does. I think this is because the generated makefile thinks that libuguile_la-eval.lo and libguile_la-eval.lo are separate objects. If you mean does it need to?: no, it doesn't, because none of the files apart from stackchk.c/stackchk-calibrated.c have actually changed at all. I currently don't know of a good solution for this. It might work to define: (i) a convenience library consisting of everything in libguile except for stackchk.c/stackchk-calibrated.c (ii) libuguile.la, consisting of the convenience library + stackchk.c (iii) libguile.la, consisting of the convenience library + stackchk-calibrated.c. But I would be surprised if that didn't cause a regression on some less mainstream platforms. Do you have any suggestions? > I'm not sure about cross-compilation (Dale Smith had also raised this > issue on IRC some time ago). IIUC, the user is expected to provide a > `UGUILE_FOR_BUILD' at configure-time, which is then used to run > `calibrate.scm'; however, `UGUILE_FOR_BUILD' runs on the host, not the > target system, so the generated file will be erroneous, right? Probably, yes. > Thus, when cross-compiling, shouldn't we avoid stack calibration > altogether and simply emit a warning a configure-time, for instance? Well, ideally we should have a solution that works automatically in all circumstances... > At any rate, it's not a problem when cross-compiling with tools like > Scratchbox, which actually "hide" the fact that we're cross-compiling > and can run executables for the target system through an emulator. Agreed. Regards, Neil