Author: jkeenan Date: Mon Nov 19 19:49:25 2007 New Revision: 22902 Added: branches/nointer/lib/Parrot/Configure/Initialize/Miniparrot.pm (contents, props changed) branches/nointer/t/configure/063-initialize.t (contents, props changed) branches/nointer/t/configure/064-initialize.t (contents, props changed) Modified: branches/nointer/MANIFEST branches/nointer/lib/Parrot/Configure/Initialize.pm branches/nointer/lib/Parrot/Configure/Initialize/Install.pm branches/nointer/t/configure/062-initialize.t
Log: First draft of Parrot::Configure::Initialize::Miniparrot, intended to replace config::init::miniparrot. Corresponding test files. Modified: branches/nointer/MANIFEST ============================================================================== --- branches/nointer/MANIFEST (original) +++ branches/nointer/MANIFEST Mon Nov 19 19:49:25 2007 @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Mon Nov 19 13:18:48 2007 UT +# generated by tools/dev/mk_manifest_and_skip.pl Tue Nov 20 03:47:43 2007 UT # # See tools/dev/install_files.pl for documentation on the # format of this file. @@ -2364,6 +2364,7 @@ lib/Parrot/Configure/Initialize.pm [devel] lib/Parrot/Configure/Initialize/Defaults.pm [devel] lib/Parrot/Configure/Initialize/Install.pm [devel] +lib/Parrot/Configure/Initialize/Miniparrot.pm [devel] lib/Parrot/Configure/Interactive.pm [devel] lib/Parrot/Configure/Messages.pm [devel] lib/Parrot/Configure/Options.pm [devel] @@ -3001,6 +3002,8 @@ t/configure/060-initialize.t [] t/configure/061-initialize.t [] t/configure/062-initialize.t [] +t/configure/063-initialize.t [] +t/configure/064-initialize.t [] t/configure/101-init_manifest-01.t [] t/configure/101-init_manifest-02.t [] t/configure/102-init_defaults-01.t [] Modified: branches/nointer/lib/Parrot/Configure/Initialize.pm ============================================================================== --- branches/nointer/lib/Parrot/Configure/Initialize.pm (original) +++ branches/nointer/lib/Parrot/Configure/Initialize.pm Mon Nov 19 19:49:25 2007 @@ -27,6 +27,7 @@ my $self = shift; $self->init_defaults(); $self->init_install(); + $self->init_miniparrot(); } 1; Modified: branches/nointer/lib/Parrot/Configure/Initialize/Install.pm ============================================================================== --- branches/nointer/lib/Parrot/Configure/Initialize/Install.pm (original) +++ branches/nointer/lib/Parrot/Configure/Initialize/Install.pm Mon Nov 19 19:49:25 2007 @@ -11,7 +11,7 @@ my $self = shift; my $prefix = $self->{options}->{prefix} || "/usr/local"; $prefix =~ s{/\z}{}; - my $ep = $self->{options}->{exec-prefix}; + my $ep = $self->{options}->{'exec-prefix'}; $ep =~ s{/\z}{} if defined $ep; my $eprefix = $ep ? $ep : $prefix; Added: branches/nointer/lib/Parrot/Configure/Initialize/Miniparrot.pm ============================================================================== --- (empty file) +++ branches/nointer/lib/Parrot/Configure/Initialize/Miniparrot.pm Mon Nov 19 19:49:25 2007 @@ -0,0 +1,106 @@ +# Copyright (C) 2001-2006, The Perl Foundation. +# $Id$ +package Parrot::Configure::Initialize::Miniparrot; +use strict; +use warnings; +use lib ( "./lib" ); + +################### SUBROUTINES ################### + +sub init_miniparrot { + my $self = shift; + unless ( $self->{options}->{miniparrot} ) { + return 1; + } + + $self->{miniparrot} = 1; + $self->{DEVEL} = $self->{DEVEL} . '-miniparrot'; + $self->{TEMP_cg_h} = ''; + $self->{TEMP_cg_c} = ''; + $self->{TEMP_cg_o} = ''; + $self->{TEMP_cg_r} = ''; + $self->{cg_flag} = ''; + $self->{archname} = 'miniparrot'; + $self->{cpuarch} = 'unknown'; + $self->{osname} = 'ANSI'; + $self->{jitarchname} = 'nojit'; + $self->{jitcpuarch} = 'i386'; + $self->{jitcpu} = 'I386'; + $self->{jitosname} = 'nojit'; + $self->{jitcapable} = 0; + $self->{execcapable} = 0; + $self->{cc_hasjit} = ''; + $self->{TEMP_jit_o} = ''; + $self->{TEMP_exec_h} = ''; + $self->{TEMP_exec_o} = ''; + $self->{TEMP_atomic_o} = ''; + $self->{asmfun_o} = ''; + $self->{has___sighandler_t} = undef; + $self->{has_sigatomic_t} = undef; + $self->{has_sigaction} = undef; + $self->{has_setitimer} = undef; + + # we can't guarantee anything about pointer alignment under ANSI C89. + # so we will have to check every byte. + $self->{ptr_alignment} = 1; + #Allow ANSI headers only + foreach ( qw| + assert + complex + ctype + errno + locale + math + setjmp + signal + stdarg + stdio + stdlib + string + time + | ) + { + $self->{"i_$_"} = 1; + } +} + +1; + +#################### DOCUMENTATION #################### + +=head1 NAME + +Parrot::Configure::Initialize::Miniparrot - Miniparrot configuration + +=head1 SYNOPSIS + + use Parrot::Configure::Initialize::Miniparrot; + +=head1 DESCRIPTION + +Modifies settings to match miniparrot (ANSI C Parrot)'s needs. This step +primarily overwrites a lot of settings in the Configure database to disable +JIT and match ANSI characteristics. + +Centralizing these settings will (hopefully) allow for an eventual move away +from using Configure at all for miniparrot builds. + +=head1 SUBROUTINES + +=head1 NOTES + +The functionality in this package was transferred from the former +C<init::miniparrot> configuration steps by Jim Keenan. + +=head1 SEE ALSO + +F<Configure.pl>. Parrot::Configure. Parrot::Configure::Initialize. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 100 +# End: +# vim: expandtab shiftwidth=4: Modified: branches/nointer/t/configure/062-initialize.t ============================================================================== --- branches/nointer/t/configure/062-initialize.t (original) +++ branches/nointer/t/configure/062-initialize.t Mon Nov 19 19:49:25 2007 @@ -6,7 +6,7 @@ use strict; use warnings; -use Test::More qw(no_plan); # tests => 12; +use Test::More tests => 19; use Carp; use Cwd; use File::Temp qw(tempdir); @@ -36,45 +36,32 @@ ok(defined $init, "Parrot::Configure::Initialize returned defined value"); isa_ok($init, "Parrot::Configure::Initialize"); + ok($init->init_install(), 'init_install() completed okay'); + + is( $init->{prefix}, $tdir, "--prefix option confirmed" ); + is( $init->{exec_prefix}, $tdir, "--exec-prefix option confirmed" ); + is( $init->{bindir}, $tdir1, "--bindir option confirmed" ); + is( $init->{sbindir}, $tdir1, "--sbindir option confirmed" ); + is( $init->{libexecdir}, $tdir1, "--libexecdir option confirmed" ); + is( $init->{datadir}, $tdir1, "--datadir option confirmed" ); + is( $init->{doc_dir}, qq{$tdir1/doc/parrot}, "--datadir option confirmed" ); + is( $init->{sysconfdir}, $tdir1, "--syscondir option confirmed" ); + is( $init->{sharedstatedir}, $tdir1, "--sharedstatedir option confirmed" ); + is( $init->{localstatedir}, $tdir1, "--localstatedir option confirmed" ); + is( $init->{libdir}, $tdir1, "--libdir option confirmed" ); + is( $init->{includedir}, $tdir1, "--includedir option confirmed" ); + is( $init->{oldincludedir}, $tdir1, "--oldincludedir option confirmed" ); + is( $init->{infodir}, $tdir1, "--infodir option confirmed" ); + is( $init->{mandir}, $tdir1, "--mandir option confirmed" ); } -#my $args = process_options( -# { -# argv => [q{--debugging=0}, q{--profile}, q{--m=32}], -# mode => q{configure}, -# } -#); -#ok($init->init_defaults(), 'init_defaults() completed okay'); -# -## Next 3 tests cheat by breaking encapsulation. -#is($init->{debugging}, 0, "Got expected value for 'debugging'"); -#is($init->{cc_debug}, q{ -pg }, "Got expected value for 'cc_debug'"); -#is($init->{options}->{m}, 32, "Got expected value for 'm'"); -# -# my $conf = Parrot::Configure->new; -# test_step_thru_runstep( $conf, q{init::install}, $args ); -# -# is( $conf->data->get('prefix'), $tdir, "--prefix option confirmed" ); -# is( $conf->data->get('exec_prefix'), $tdir, "--exec-prefix option confirmed" ); -# is( $conf->data->get('bindir'), $tdir1, "--bindir option confirmed" ); -# is( $conf->data->get('sbindir'), $tdir1, "--sbindir option confirmed" ); -# is( $conf->data->get('libexecdir'), $tdir1, "--libexecdir option confirmed" ); -# is( $conf->data->get('datadir'), $tdir1, "--datadir option confirmed" ); -# is( $conf->data->get('sharedstatedir'), $tdir1, "--sharedstatedir option confirmed" ); -# is( $conf->data->get('localstatedir'), $tdir1, "--localstatedir option confirmed" ); -# is( $conf->data->get('libdir'), $tdir1, "--libdir option confirmed" ); -# is( $conf->data->get('includedir'), $tdir1, "--includedir option confirmed" ); -# is( $conf->data->get('oldincludedir'), $tdir1, "--oldincludedir option confirmed" ); -# is( $conf->data->get('infodir'), $tdir1, "--infodir option confirmed" ); -# is( $conf->data->get('mandir'), $tdir1, "--mandir option confirmed" ); -#} pass("Completed all tests in $0"); ################### DOCUMENTATION ################### =head1 NAME -062-initialize.t - Test Parrot::Configure::Initialize. +062-initialize.t - Test Parrot::Configure::Initialize =head1 SYNOPSIS @@ -84,7 +71,7 @@ The files in this directory test functionality used by F<Configure.pl>. -The tests in this file test Parrot::Configure::Initialize::Defaults in the +The tests in this file test Parrot::Configure::Initialize::Install in the case where command-line options have been provided. =head1 AUTHOR Added: branches/nointer/t/configure/063-initialize.t ============================================================================== --- (empty file) +++ branches/nointer/t/configure/063-initialize.t Mon Nov 19 19:49:25 2007 @@ -0,0 +1,99 @@ +#! perl +# Copyright (C) 2007, The Perl Foundation. +# $Id$ +# 063-initialize.t + +use strict; +use warnings; + +use Test::More tests => 19; +use Carp; +use Cwd; +use File::Temp qw(tempdir); +use lib qw( lib t/configure/testlib ); +use Parrot::Configure::Options qw( process_options ); +use Parrot::Configure::Initialize; + +my $cwd = cwd(); +{ + my $tdir = tempdir(); + my $tdir_orig = $tdir; + $tdir .= q{/}; + my $tdir1 = tempdir(); + my $args = process_options( + { + argv => [ + qq{--prefix=$tdir}, qq{--exec-prefix=$tdir}, + qq{--bindir=$tdir1}, qq{--sbindir=$tdir1}, + qq{--libexecdir=$tdir1}, qq{--datadir=$tdir1}, + qq{--sysconfdir=$tdir1}, qq{--sharedstatedir=$tdir1}, + qq{--localstatedir=$tdir1}, qq{--libdir=$tdir1}, + qq{--includedir=$tdir1}, qq{--oldincludedir=$tdir1}, + qq{--infodir=$tdir1}, qq{--mandir=$tdir1}, + ], + mode => q{configure}, + } + ); + my $init = Parrot::Configure::Initialize->new($args); + ok(defined $init, + "Parrot::Configure::Initialize returned defined value"); + isa_ok($init, "Parrot::Configure::Initialize"); + ok($init->init_install(), 'init_install() completed okay'); + + is( $init->{prefix}, + $tdir_orig, "--prefix option confirmed; trailing slash stripped" ); + is( $init->{exec_prefix}, + $tdir_orig, "--exec-prefix option confirmed; trailing slash stripped" ); + is( $init->{bindir}, $tdir1, "--bindir option confirmed" ); + is( $init->{sbindir}, $tdir1, "--sbindir option confirmed" ); + is( $init->{libexecdir}, $tdir1, "--libexecdir option confirmed" ); + is( $init->{datadir}, $tdir1, "--datadir option confirmed" ); + is( $init->{doc_dir}, qq{$tdir1/doc/parrot}, "--datadir option confirmed" ); + is( $init->{sysconfdir}, $tdir1, "--syscondir option confirmed" ); + is( $init->{sharedstatedir}, $tdir1, "--sharedstatedir option confirmed" ); + is( $init->{localstatedir}, $tdir1, "--localstatedir option confirmed" ); + is( $init->{libdir}, $tdir1, "--libdir option confirmed" ); + is( $init->{includedir}, $tdir1, "--includedir option confirmed" ); + is( $init->{oldincludedir}, $tdir1, "--oldincludedir option confirmed" ); + is( $init->{infodir}, $tdir1, "--infodir option confirmed" ); + is( $init->{mandir}, $tdir1, "--mandir option confirmed" ); +} + +pass("Completed all tests in $0"); + +################### DOCUMENTATION ################### + +=head1 NAME + +063-initialize.t - Test Parrot::Configure::Initialize + +=head1 SYNOPSIS + + % prove t/configure/063-initialize.t + +=head1 DESCRIPTION + +The files in this directory test functionality used by F<Configure.pl>. + +The tests in this file test Parrot::Configure::Initialize::Install and +demonstrates the stripping of the trailing slash in two attributes. + +=head1 AUTHOR + +James E Keenan + +=head1 SEE ALSO + +Parrot::Configure, Parrot::Configure::Initialize, +Parrot::Configure::Initialize::Defaults, F<Configure.pl>. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 100 +# End: +# vim: expandtab shiftwidth=4: + + Added: branches/nointer/t/configure/064-initialize.t ============================================================================== --- (empty file) +++ branches/nointer/t/configure/064-initialize.t Mon Nov 19 19:49:25 2007 @@ -0,0 +1,98 @@ +#! perl +# Copyright (C) 2007, The Perl Foundation. +# $Id$ +# 064-initialize.t + +use strict; +use warnings; + +use Test::More tests => 19; +use Carp; +use Cwd; +use File::Temp qw(tempdir); +use lib qw( lib t/configure/testlib ); +use Parrot::Configure::Options qw( process_options ); +use Parrot::Configure::Initialize; + +my $cwd = cwd(); +my $args = process_options( + { + argv =>[], + mode => q{configure}, + } +); +my $init = Parrot::Configure::Initialize->new($args); +ok(defined $init, + "Parrot::Configure::Initialize returned defined value"); +isa_ok($init, "Parrot::Configure::Initialize"); +ok($init->init_install(), 'init_install() completed okay'); + +is( $init->{prefix}, qq{/usr/local}, + "--prefix option confirmed" ); +is( $init->{exec_prefix}, qq{/usr/local}, + "--exec-prefix option confirmed" ); +is( $init->{bindir}, qq{/usr/local/bin}, + "--bindir option confirmed" ); +is( $init->{sbindir}, qq{/usr/local/sbin}, + "--sbindir option confirmed" ); +is( $init->{libexecdir}, qq{/usr/local/libexec}, + "--libexecdir option confirmed" ); +is( $init->{datadir}, qq{/usr/local/share}, + "--datadir option confirmed" ); +is( $init->{doc_dir}, qq{/usr/local/share/doc/parrot}, + "--doc_dir option confirmed" ); +is( $init->{sysconfdir}, qq{/usr/local/etc}, + "--sysconfdir option confirmed" ); +is( $init->{sharedstatedir}, qq{/usr/local/com}, + "--sharedstatedir option confirmed" ); +is( $init->{localstatedir}, qq{/usr/local/var}, + "--localstatedir option confirmed" ); +is( $init->{libdir}, qq{/usr/local/lib}, + "--libdir option confirmed" ); +is( $init->{includedir}, qq{/usr/local/include}, + "--includedir option confirmed" ); +is( $init->{oldincludedir}, qq{/usr/include}, + "--oldincludedir option confirmed" ); +is( $init->{infodir}, qq{/usr/local/info}, + "--infodir option confirmed" ); +is( $init->{mandir}, qq{/usr/local/man}, + "--mandir option confirmed" ); + +pass("Completed all tests in $0"); + +################### DOCUMENTATION ################### + +=head1 NAME + +064-initialize.t - Test Parrot::Configure::Initialize + +=head1 SYNOPSIS + + % prove t/configure/064-initialize.t + +=head1 DESCRIPTION + +The files in this directory test functionality used by F<Configure.pl>. + +The tests in this file test Parrot::Configure::Initialize::Install in the +case where no command-line options have been provided. + +=head1 AUTHOR + +James E Keenan + +=head1 SEE ALSO + +Parrot::Configure, Parrot::Configure::Initialize, +Parrot::Configure::Initialize::Defaults, F<Configure.pl>. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 100 +# End: +# vim: expandtab shiftwidth=4: + +