Apropos of my previous post: attached is a small file which describes
the various prompts posed in the 'inter::' configuration steps. On the
basis of the file's contents, I suspect it would not be difficult to put
them all into a method which, if the --ask option were specified, would
be called within Configure.pl after command-line options have been
processed but before Parrot::Configure::runstep() has executed. This
would mean that all user-supplied data needed for configuration would be
available before runsteps() and that we could write tests which supply
each individual step's runstep() method with all the data the user
wants/needs it to have.
config/inter/charset.pm:54: $charset_list = prompt(
prompt supplies list of available charsets from glob "./src/charset/*.c"
config/inter/encoding.pm:54: $encoding_list = prompt(
prompt supplies list of available encodings from glob "./src/encodings/*.c"
config/inter/lex.pm:44: my $prompt = "Do you have a lexical analyzer
generator like flex or lex?";
config/inter/lex.pm:82: $prog = prompt( $prompt, $prog ? $prog :
$conf->data->get($util) );
prompt supplies list 'flex lex'
config/inter/libparrot.pm:50: $parrot_is_shared = prompt(
prompt offers y/n
config/inter/make.pm:35: my $prompt = "Do you have a make utility like
'gmake' or 'make'?";
config/inter/make.pm:52: ? prompt( $prompt, $prog ? $prog :
$conf->data->get($util) )
prompt offers first available from 'gmake', 'mingw32-make', 'nmake', 'make'
config/inter/progs.pm:61: $cc = prompt( "What C compiler do you want to
use?", $cc )
prompt offers dominant of %Config and options
config/inter/progs.pm:66: $link = prompt( "How about your linker?", $link )
if $ask;
prompt offers dominant of %Config and options
config/inter/progs.pm:70: $ld = prompt( "What program do you want to use to
build shared libraries?", $ld ) if $ask;
prompt offers dominant of %Config and options
config/inter/progs.pm:79: $ccflags = prompt( "What flags should your C
compiler receive?", $ccflags )
prompt from %Config is cleaned up before presentation to user
config/inter/progs.pm:88: $linkflags = prompt( "And your linker?",
$linkflags ) if $ask;
prompt from %Config is cleaned up before presentation to user
config/inter/progs.pm:94: $ldflags = prompt( "And your $ld for building
shared libraries?", $ldflags )
prompt from %Config is cleaned up before presentation to user
config/inter/progs.pm:102: $libs = prompt( "What libraries should your C
compiler use?", $libs ) if $ask;
prompt from %Config is cleaned up before presentation to user
config/inter/progs.pm:106: $cxx = prompt( "What C++ compiler do you want to
use?", $cxx ) if $ask;
prompt offers dominant of %Config and options
config/inter/progs.pm:111: $debug = prompt( "Do you want a debugging build
of Parrot?", $debug )
prompt is y/n depending on whether --debugging option was selected
config/inter/shlibs.pm:43: $cc_shared = prompt(
prompt offers dominant of %Config and options
config/inter/types.pm:42: $intval = prompt( "\n\nHow big would you
like your integers to be?", $intval );
prompt offers choice of option and 'long'
config/inter/types.pm:43: $floatval = prompt( "And your floats?",
$floatval );
prompt offers choice of option and 'double'
config/inter/types.pm:44: $opcode = prompt( "What's your native opcode
type?", $opcode );
prompt offers choice of option and 'long'
config/inter/yacc.pm:44: my $prompt = "Do you have a parser generator, like
bison or yacc?";
config/inter/yacc.pm:84: $prog = prompt( $prompt, $prog ? $prog
: $conf->data->get($util) );
prompt offers choice from list: 'bison -v -y', 'yacc', 'byacc'