diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2004-08-05 09:22:11 +0000 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2004-08-05 09:22:11 +0000 |
commit | 6c52bf94ad90b08b6b6bd09a3cf0e3a854cd67cf (patch) | |
tree | 351da2e007e77f34abbb6fbcc868c1a51d750a5e | |
parent | bd51a9308891b317cb14a69937bfdae850c65487 (diff) | |
download | MPC-6c52bf94ad90b08b6b6bd09a3cf0e3a854cd67cf.tar.gz |
ChangeLogTag: Thu Aug 5 09:21:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | modules/Creator.pm | 7 | ||||
-rw-r--r-- | modules/Driver.pm | 12 | ||||
-rw-r--r-- | modules/ProjectCreator.pm | 12 | ||||
-rw-r--r-- | modules/WorkspaceCreator.pm | 61 |
5 files changed, 89 insertions, 14 deletions
@@ -1,3 +1,14 @@ +Thu Aug 5 09:14:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl> + + The following changes are from Martin Corino <mcorino@remedy.nl> + + * modules/Creator.pl: + * modules/Driver.pl: + * modules/ProjectCreator.pl: + * modules/WorkspaceCreator.pl: + Added various changes to support autobuild MPC generation on + OpenVMS. + Wed Aug 4 11:47:06 2004 J.T. Conklin <jtc@acorntoolworks.com> * templates/automake.mpd: diff --git a/modules/Creator.pm b/modules/Creator.pm index 3b2016b4..a8a86df5 100644 --- a/modules/Creator.pm +++ b/modules/Creator.pm @@ -397,11 +397,15 @@ sub generate_default_file_list { my($recurse) = shift; my($dh) = new FileHandle(); my(@files) = (); + my($is_vms) = ( $^O eq 'VMS' ); if (opendir($dh, $dir)) { my($need_dir) = ($dir ne '.'); my($skip) = 0; foreach my $file (grep(!/^\.\.?$/, readdir($dh))) { + if ( $is_vms && $file =~ /\.dir$/ ) { + $file =~ s/\.dir$//; + } ## Prefix each file name with the directory only if it's not '.' my($full) = ($need_dir ? "$dir/" : '') . $file; @@ -493,6 +497,9 @@ sub extension_recursive_input_list { if (opendir($fh, $dir)) { foreach my $file (grep(!/^\.\.?$/, readdir($fh))) { + if ( $^O eq 'VMS' && $file =~ /\.dir$/ ) { + $file =~ s/\.dir$//; + } my($skip) = 0; my($full) = ($dir ne '.' ? "$dir/" : '') . $file; diff --git a/modules/Driver.pm b/modules/Driver.pm index 96b943ca..7877bef0 100644 --- a/modules/Driver.pm +++ b/modules/Driver.pm @@ -13,6 +13,10 @@ package Driver; use strict; use File::Basename; +if ( $^O eq 'VMS' ) { + require VMS::Filespec; + import VMS::Filespec qw(unixify); +} use Options; use Parser; use Version; @@ -308,7 +312,13 @@ sub run { $options->{'genins'}, $options->{'into'}); if ($base ne $file) { - my($dir) = ($base eq '' ? $file : dirname($file)); + my($dir) = ''; + if ( $^O eq 'VMS' ) { + $dir = ($base eq '' ? $file : unixify(dirname($file))); + } else { + $dir = ($base eq '' ? $file : dirname($file)); + + } if (!$creator->cd($dir)) { $self->error("Unable to change to directory: $dir"); $status++; diff --git a/modules/ProjectCreator.pm b/modules/ProjectCreator.pm index 263a7794..40484ada 100644 --- a/modules/ProjectCreator.pm +++ b/modules/ProjectCreator.pm @@ -15,6 +15,10 @@ use FileHandle; use File::Path; use File::Compare; use File::Basename; +if ( $^O eq 'VMS' ) { + require VMS::Filespec; + import VMS::Filespec qw(unixify); +} use Creator; use TemplateInputReader; @@ -2946,7 +2950,13 @@ sub write_output_file { } my($fh) = new FileHandle(); - my($dir) = dirname($name); + my($dir) = ''; + if ( $^O eq 'VMS' ) { + $dir = unixify(dirname($name)); + } + else { + $dir = dirname($name); + } if ($dir ne '.') { mkpath($dir, 0, 0777); diff --git a/modules/WorkspaceCreator.pm b/modules/WorkspaceCreator.pm index 576a1113..1c1e577b 100644 --- a/modules/WorkspaceCreator.pm +++ b/modules/WorkspaceCreator.pm @@ -15,6 +15,10 @@ use FileHandle; use File::Path; use File::Compare; use File::Basename; +if ( $^O eq 'VMS' ) { + require VMS::Filespec; + import VMS::Filespec qw(unixify); +} use Creator; use Options; @@ -278,7 +282,11 @@ sub aggregated_workspace { $self->{'handled_scopes'}->{$aggregated} = undef; $self->set_line_number(0); $self->{$self->{'type_check'}} = 0; - $self->{'scoped_basedir'} = dirname($file); + if ( $^O eq 'VMS' ) { + $self->{'scoped_basedir'} = unixify(dirname($file)); + } else { + $self->{'scoped_basedir'} = dirname($file); + } while(<$fh>) { my($line) = $self->preprocess_line($fh, $_); @@ -438,7 +446,11 @@ sub handle_scoped_unknown { if ($file =~ /\.mpc$/) { my($exc) = $file; do { - $exc = dirname($exc); + if ( $^O eq 'VMS' ) { + $exc = unixify(dirname($exc)); + } else { + $exc = dirname($exc); + } $remove{$exc} = 1; } while($exc ne '.' && $exc !~ /[a-z]:[\/\\]/i); } @@ -524,14 +536,28 @@ sub remove_duplicate_projects { my($list) = shift; my($count) = scalar(@$list); - for(my $i = 0; $i < $count; ++$i) { - my($file) = $$list[$i]; - foreach my $inner (@$list) { - if ($file ne $inner && $file eq dirname($inner) && ! -d $inner) { - splice(@$list, $i, 1); - --$count; - --$i; - last; + if ( $^O eq 'VMS' ) { + for(my $i = 0; $i < $count; ++$i) { + my($file) = $$list[$i]; + foreach my $inner (@$list) { + if ($file ne $inner && $file eq unixify(dirname($inner)) && ! -d $inner) { + splice(@$list, $i, 1); + --$count; + --$i; + last; + } + } + } + } else { + for(my $i = 0; $i < $count; ++$i) { + my($file) = $$list[$i]; + foreach my $inner (@$list) { + if ($file ne $inner && $file eq dirname($inner) && ! -d $inner) { + splice(@$list, $i, 1); + --$count; + --$i; + last; + } } } } @@ -713,7 +739,12 @@ sub write_workspace { if (!$abort_creation) { my($fh) = new FileHandle(); - my($dir) = dirname($name); + my($dir) = ''; + if ( $^O eq 'VMS' ) { + $dir = unixify(dirname($name)); + } else { + $dir = dirname($name); + } ## Verify and possibly modify the dependencies if ($addfile) { @@ -934,7 +965,13 @@ sub generate_project_files { foreach my $ofile (@{$self->{'project_files'}}) { if (!$self->excluded($ofile)) { my($file) = $ofile; - my($dir) = dirname($file); + my($dir) = ''; + if ( $^O eq 'VMS' ) { + $dir = unixify(dirname($file)); + } + else { + $dir = dirname($file); + } my($restore) = 0; if (defined $self->{'scoped_assign'}->{$ofile}) { |