Dan Sugalski <[EMAIL PROTECTED]> wrote: > Step 1: We probe, and build a config file (not config.h, mind) with > our results. > > Step 2: We take the config file and build config.h and choose (or > build) the right platform.h/platform.c file.
Internally, Configure is a four-step process (initialization, interactive probing, automatic probing, generation); in principle, we could add something to initialization that loaded in a configuration database and skipped the probing steps for a cross-compile. The tricky part is that the probing steps and the generation steps are a bit incestuous, in that many of the probing steps insert parts of Makefiles into the configuration database, which are then interpolated in the Makefile generation steps and stripped out before the Perl and Parrot configuration modules are written. (Without their removal, the serialized database would be at least a few hundred kilobytes, and possibly more--early versions of config_lib.pasm would actually crash because either IMCC or Parrot itself couldn't handle the gigantic strings being thrown at it.) The Right Solution is to create a cleaner separation, but in practice people writing Configure steps have never done that, and I don't really hold much hope for them doing so in the future. > Step 3: We build the appropriate platform-specific library files, if > there are any. It occurs to me that most of these are bytecode or frozen PMC files, both of which are portable. So we could build them with a locally-available Parrot, then transfer them to the target platform. I don't think it's onerous to require that you have a full Parrot built on the source platform... -- Brent 'Dax' Royal-Gordon <[EMAIL PROTECTED]> Perl and Parrot hacker There is no cabal. [I currently have a couple Gmail invites--contact me if you're interested.]