Author: jhoblitt Date: Tue Jan 3 15:59:17 2006 New Revision: 10876 Modified: trunk/config/init/defaults.pm trunk/config/init/optimize.pm Log: rationalize Configure's handling of '--optimize' to address bug #38139, reported by Andy Dougherty
Modified: trunk/config/init/defaults.pm ============================================================================== --- trunk/config/init/defaults.pm (original) +++ trunk/config/init/defaults.pm Tue Jan 3 15:59:17 2006 @@ -33,19 +33,8 @@ sub runstep # We need a Glossary somewhere! $conf->data->set( debugging => $conf->options->get('debugging') ? 1 : 0, - - # A plain --optimize means use perl5's $Config{optimize}. If an - # argument is given, however, use that instead. This logic really - # belongs in the optimize unit. - optimize => $conf->options->get('optimize') - ? ( - $conf->options->get('optimize') eq "1" - ? ($Config{optimize} || "1") - : $conf->options->get('optimize') - ) - : '', - verbose => $conf->options->get('verbose'), - + optimize => 0, + verbose => $conf->options->get('verbose'), build_dir => $FindBin::Bin, # Compiler -- used to turn .c files into object files. @@ -131,17 +120,21 @@ sub runstep # should we have a dependancy upon arc to generate .a's? blib_lib_libparrot_a => 'blib/lib/libparrot$(A)', - perl => $^X, - test_prog => 'parrot', - rm_f => '$(PERL) -MExtUtils::Command -e rm_f', - rm_rf => '$(PERL) -MExtUtils::Command -e rm_rf', - mkdir => '$(PERL) -MExtUtils::Command -e mkpath', - touch => '$(PERL) -MExtUtils::Command -e touch', - chmod => '$(PERL) -MExtUtils::Command-chmod -e chmod', - ar => $Config{ar}, - ar_flags => 'cr', - ar_out => '', # for Win32 - ar_extra => '', # for Borland C + perl => $^X, + test_prog => 'parrot', + rm_f => '$(PERL) -MExtUtils::Command -e rm_f', + rm_rf => '$(PERL) -MExtUtils::Command -e rm_rf', + mkdir => '$(PERL) -MExtUtils::Command -e mkpath', + touch => '$(PERL) -MExtUtils::Command -e touch', + chmod => '$(PERL) -MExtUtils::Command-chmod -e chmod', + ar => $Config{ar}, + ar_flags => 'cr', + + # for Win32 + ar_out => '', + + # for Borland C + ar_extra => '', ranlib => $Config{ranlib}, rpath => '-Wl,-rpath=', make => $Config{make}, Modified: trunk/config/init/optimize.pm ============================================================================== --- trunk/config/init/optimize.pm (original) +++ trunk/config/init/optimize.pm Tue Jan 3 15:59:17 2006 @@ -19,6 +19,7 @@ use vars qw($description $result @args); use base qw(Parrot::Configure::Step::Base); +use Config; use Parrot::Configure::Step; $description = "Enabling optimization..."; @@ -29,9 +30,23 @@ sub runstep { my ($self, $conf) = @_; - if ($conf->data->get('optimize')) { + # A plain --optimize means use perl5's $Config{optimize}. If an argument + # is given, however, use that instead. + my $optimize = $conf->options->get('optimize'); + if (defined $optimize) { $result = 'yes'; + # record that optimization was enabled + $conf->data->set(optimize => $optimize); + # disable debug flags + $conf->data->set(cc_debug => ''); $conf->data->add(' ', ccflags => "-DDISABLE_GC_DEBUG=1 -DNDEBUG"); + if ($optimize eq "1") { + # use perl5's value + $conf->data->add(' ', ccflags => $Config{optimize}); + } else { + # use what was passed to --optimize on the CLI + $conf->data->add(' ', ccflags => $optimize); + } } else { $result = 'no'; print "(none requested) " if $conf->options->get('verbose');