summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2004-08-05 09:22:11 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2004-08-05 09:22:11 +0000
commit6c52bf94ad90b08b6b6bd09a3cf0e3a854cd67cf (patch)
tree351da2e007e77f34abbb6fbcc868c1a51d750a5e
parentbd51a9308891b317cb14a69937bfdae850c65487 (diff)
downloadMPC-6c52bf94ad90b08b6b6bd09a3cf0e3a854cd67cf.tar.gz
ChangeLogTag: Thu Aug 5 09:21:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
-rw-r--r--ChangeLog11
-rw-r--r--modules/Creator.pm7
-rw-r--r--modules/Driver.pm12
-rw-r--r--modules/ProjectCreator.pm12
-rw-r--r--modules/WorkspaceCreator.pm61
5 files changed, 89 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index 485064bd..fdb0796b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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}) {