summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelliott_c <ocielliottc@users.noreply.github.com>2004-08-11 12:47:34 +0000
committerelliott_c <ocielliottc@users.noreply.github.com>2004-08-11 12:47:34 +0000
commitf1b109dab840cbccd5875f186890a056815e86fd (patch)
tree467f4b18373679f274ff5bf538f75ca15975d2da
parenta622851adb21df46d3ea12adfe763b6a6462d84e (diff)
downloadMPC-f1b109dab840cbccd5875f186890a056815e86fd.tar.gz
ChangeLogTag: Wed Aug 11 07:45:11 2004 Chad Elliott <elliott_c@ociweb.com>
-rw-r--r--ChangeLog31
-rw-r--r--modules/AutomakeProjectCreator.pm3
-rw-r--r--modules/AutomakeWorkspaceCreator.pm3
-rw-r--r--modules/BMakeProjectCreator.pm3
-rw-r--r--modules/BMakeWorkspaceCreator.pm2
-rw-r--r--modules/CBXProjectCreator.pm1
-rw-r--r--modules/Creator.pm5
-rw-r--r--modules/DirectoryManager.pm14
-rw-r--r--modules/Driver.pm12
-rw-r--r--modules/GHSWorkspaceCreator.pm1
-rw-r--r--modules/HTMLProjectCreator.pm2
-rw-r--r--modules/MakeWorkspaceCreator.pm4
-rw-r--r--modules/NMakeWorkspaceCreator.pm2
-rw-r--r--modules/ProjectCreator.pm16
-rw-r--r--modules/SLEProjectCreator.pm1
-rw-r--r--modules/TemplateParser.pm4
-rw-r--r--modules/WorkspaceCreator.pm65
17 files changed, 71 insertions, 98 deletions
diff --git a/ChangeLog b/ChangeLog
index cd1ba192..e9944b01 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,26 @@
+Wed Aug 11 07:45:11 2004 Chad Elliott <elliott_c@ociweb.com>
+
+ * modules/AutomakeProjectCreator.pm:
+ * modules/AutomakeWorkspaceCreator.pm:
+ * modules/BMakeProjectCreator.pm:
+ * modules/BMakeWorkspaceCreator.pm:
+ * modules/CBXProjectCreator.pm:
+ * modules/Creator.pm:
+ * modules/DirectoryManager.pm:
+ * modules/Driver.pm:
+ * modules/GHSWorkspaceCreator.pm:
+ * modules/HTMLProjectCreator.pm:
+ * modules/MakeWorkspaceCreator.pm:
+ * modules/NMakeWorkspaceCreator.pm:
+ * modules/ProjectCreator.pm:
+ * modules/SLEProjectCreator.pm:
+ * modules/TemplateParser.pm:
+ * modules/WorkspaceCreator.pm:
+
+ Encapsulated the VMS changes related to dirname into a single
+ method (mpc_dirname) that gets called instead dirname. Thanks to
+ Martin Corino <mcorino@remedy.nl> for verifying my changes.
+
Wed Aug 11 10:08:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
* templates/bmake.mpd:
@@ -6,10 +29,10 @@ Wed Aug 11 10:08:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
Tue Aug 10 17:10:38 2004 J.T. Conklin <jtc@acorntoolworks.com>
- * automake.mpd:
- Add initial support for automake conditionals with <%requires%>
- and <%avoids%>.
- Remove extra spaces before backslashes in _CPPFLAGS.
+ * automake.mpd:
+ Add initial support for automake conditionals with <%requires%>
+ and <%avoids%>.
+ Remove extra spaces before backslashes in _CPPFLAGS.
Tue Aug 10 09:10:36 2004 Chad Elliott <elliott_c@ociweb.com>
diff --git a/modules/AutomakeProjectCreator.pm b/modules/AutomakeProjectCreator.pm
index 20cc04f2..0be63e32 100644
--- a/modules/AutomakeProjectCreator.pm
+++ b/modules/AutomakeProjectCreator.pm
@@ -11,7 +11,6 @@ package AutomakeProjectCreator;
# ************************************************************
use strict;
-use File::Basename;
use ProjectCreator;
@@ -58,7 +57,7 @@ sub fill_value {
my($comps) = $$names{$name};
foreach my $key (keys %$comps) {
foreach my $item (@{$$comps{$key}}) {
- my($dname) = $self->relative(dirname($item));
+ my($dname) = $self->relative($self->mpc_dirname($item));
if ($dname ne '.' && $dname !~ /^\.\.\//) {
$vpath{$dname} = 1;
}
diff --git a/modules/AutomakeWorkspaceCreator.pm b/modules/AutomakeWorkspaceCreator.pm
index b4d233b8..fd672bd7 100644
--- a/modules/AutomakeWorkspaceCreator.pm
+++ b/modules/AutomakeWorkspaceCreator.pm
@@ -11,7 +11,6 @@ package AutomakeWorkspaceCreator;
# ************************************************************
use strict;
-use File::Basename;
use AutomakeProjectCreator;
use WorkspaceCreator;
@@ -95,7 +94,7 @@ sub write_comps {
## Since we're consolidating all the project files into one workspace
## Makefile.am per directory level, be sure to add that Makefile.am
## entry at each level there's a project dependency.
- my($dep_dir) = dirname($dep);
+ my($dep_dir) = $self->mpc_dirname($dep);
if (!defined $proj_dir_seen{$dep_dir}) {
$proj_dir_seen{$dep_dir} = 1;
## If there are directory levels between project-containing
diff --git a/modules/BMakeProjectCreator.pm b/modules/BMakeProjectCreator.pm
index 1ac360a1..640ca75c 100644
--- a/modules/BMakeProjectCreator.pm
+++ b/modules/BMakeProjectCreator.pm
@@ -11,7 +11,6 @@ package BMakeProjectCreator;
# ************************************************************
use strict;
-use File::Basename;
use ProjectCreator;
@@ -51,7 +50,7 @@ sub fill_value {
if (defined $names{$name}) {
my(%dirnames) = ();
foreach my $file ($self->get_component_list($names{$name}, 1)) {
- my($dirname) = dirname($file);
+ my($dirname) = $self->mpc_dirname($file);
if ($dirname eq '') {
$dirname = '.';
}
diff --git a/modules/BMakeWorkspaceCreator.pm b/modules/BMakeWorkspaceCreator.pm
index f21fb62d..6fce02cc 100644
--- a/modules/BMakeWorkspaceCreator.pm
+++ b/modules/BMakeWorkspaceCreator.pm
@@ -71,7 +71,7 @@ sub write_project_targets {
my($crlf) = $self->crlf();
foreach my $project (@$list) {
- my($dir) = dirname($project);
+ my($dir) = $self->mpc_dirname($project);
my($chdir) = 0;
my($back) = '';
diff --git a/modules/CBXProjectCreator.pm b/modules/CBXProjectCreator.pm
index 55eee297..26f9ed84 100644
--- a/modules/CBXProjectCreator.pm
+++ b/modules/CBXProjectCreator.pm
@@ -13,7 +13,6 @@ package CBXProjectCreator;
use strict;
use ProjectCreator;
-use File::Basename;
use vars qw(@ISA);
@ISA = qw(ProjectCreator);
diff --git a/modules/Creator.pm b/modules/Creator.pm
index a8a86df5..e9bf1e8c 100644
--- a/modules/Creator.pm
+++ b/modules/Creator.pm
@@ -397,13 +397,12 @@ 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$/ ) {
+ if ($^O eq 'VMS') {
$file =~ s/\.dir$//;
}
## Prefix each file name with the directory only if it's not '.'
@@ -497,7 +496,7 @@ sub extension_recursive_input_list {
if (opendir($fh, $dir)) {
foreach my $file (grep(!/^\.\.?$/, readdir($fh))) {
- if ( $^O eq 'VMS' && $file =~ /\.dir$/ ) {
+ if ($^O eq 'VMS') {
$file =~ s/\.dir$//;
}
my($skip) = 0;
diff --git a/modules/DirectoryManager.pm b/modules/DirectoryManager.pm
index 933158ee..8e815738 100644
--- a/modules/DirectoryManager.pm
+++ b/modules/DirectoryManager.pm
@@ -11,6 +11,12 @@ package DirectoryManager;
# ************************************************************
use strict;
+use File::Basename;
+
+if ($^O eq 'VMS') {
+ require VMS::Filespec;
+ import VMS::Filespec qw(unixify);
+}
# ************************************************************
# Data Section
@@ -77,6 +83,14 @@ sub getstartdir {
return $start;
}
+sub mpc_dirname {
+ my($self) = shift;
+ my($dir) = shift;
+ return ($^O ne 'VMS' ? File::Basename::dirname($dir) :
+ unixify(File::Basename::dirname($dir)));
+}
+
+
# ************************************************************
# Virtual Methods To Be Overridden
# ************************************************************
diff --git a/modules/Driver.pm b/modules/Driver.pm
index 7877bef0..66310137 100644
--- a/modules/Driver.pm
+++ b/modules/Driver.pm
@@ -13,10 +13,6 @@ 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;
@@ -312,13 +308,7 @@ sub run {
$options->{'genins'},
$options->{'into'});
if ($base ne $file) {
- my($dir) = '';
- if ( $^O eq 'VMS' ) {
- $dir = ($base eq '' ? $file : unixify(dirname($file)));
- } else {
- $dir = ($base eq '' ? $file : dirname($file));
-
- }
+ my($dir) = ($base eq '' ? $file : $self->mpc_dirname($file));
if (!$creator->cd($dir)) {
$self->error("Unable to change to directory: $dir");
$status++;
diff --git a/modules/GHSWorkspaceCreator.pm b/modules/GHSWorkspaceCreator.pm
index 46db194b..d23ccb3e 100644
--- a/modules/GHSWorkspaceCreator.pm
+++ b/modules/GHSWorkspaceCreator.pm
@@ -11,7 +11,6 @@ package GHSWorkspaceCreator;
# ************************************************************
use strict;
-use File::Basename;
use GHSProjectCreator;
use WorkspaceCreator;
diff --git a/modules/HTMLProjectCreator.pm b/modules/HTMLProjectCreator.pm
index fb59901e..02caea59 100644
--- a/modules/HTMLProjectCreator.pm
+++ b/modules/HTMLProjectCreator.pm
@@ -84,7 +84,7 @@ sub fill_value {
$value = [];
for(my $i = 0; $i <= $#nodes; ++$i) {
my($file) = $nodes[$i]->[1];
- my($dir) = dirname($file);
+ my($dir) = $self->mpc_dirname($file);
my($base) = basename($file);
## Relative paths do not work at all in a web browser
diff --git a/modules/MakeWorkspaceCreator.pm b/modules/MakeWorkspaceCreator.pm
index bac7c865..054fd837 100644
--- a/modules/MakeWorkspaceCreator.pm
+++ b/modules/MakeWorkspaceCreator.pm
@@ -79,7 +79,7 @@ sub write_comps {
## Print out all other targets here
print $fh "$crlf$crlf@targets:$crlf";
foreach my $project (@list) {
- my($dname) = dirname($project);
+ my($dname) = $self->mpc_dirname($project);
print $fh "\t\@" .
($dname ne '.' ? "cd $dname; " : '') .
"\$(MAKE) PWD=`pwd` -f " .
@@ -89,7 +89,7 @@ sub write_comps {
## Print out each target separately
foreach my $project (@list) {
- my($dname) = dirname($project);
+ my($dname) = $self->mpc_dirname($project);
print $fh $crlf, '.PHONY: ', $$pjs{$project}->[0],
$crlf, $$pjs{$project}->[0], ':';
if (defined $targnum{$project}) {
diff --git a/modules/NMakeWorkspaceCreator.pm b/modules/NMakeWorkspaceCreator.pm
index a7dbf2d7..589f956e 100644
--- a/modules/NMakeWorkspaceCreator.pm
+++ b/modules/NMakeWorkspaceCreator.pm
@@ -74,7 +74,7 @@ sub write_project_targets {
my($crlf) = $self->crlf();
foreach my $project (@$list) {
- my($dir) = dirname($project);
+ my($dir) = $self->mpc_dirname($project);
my($chdir) = 0;
my($back) = '';
diff --git a/modules/ProjectCreator.pm b/modules/ProjectCreator.pm
index eadfb524..8748cb0b 100644
--- a/modules/ProjectCreator.pm
+++ b/modules/ProjectCreator.pm
@@ -15,10 +15,6 @@ 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;
@@ -1624,7 +1620,7 @@ sub add_generated_files {
foreach my $key (keys %{$$names{$name}}) {
push(@all, @{$$names{$name}->{$key}});
foreach my $file (@{$$names{$name}->{$key}}) {
- $dircomp{dirname($file)} = $key;
+ $dircomp{$self->mpc_dirname($file)} = $key;
}
}
}
@@ -1642,7 +1638,7 @@ sub add_generated_files {
## If we have files to add, make sure we add them to a group
## that has the same directory location as the files we're adding.
if ($#oktoadd >= 0) {
- my($key) = $dircomp{dirname($oktoadd[0])};
+ my($key) = $dircomp{$self->mpc_dirname($oktoadd[0])};
if (!defined $key) {
$key = $self->get_default_element_name();
}
@@ -2952,13 +2948,7 @@ sub write_output_file {
}
my($fh) = new FileHandle();
- my($dir) = '';
- if ( $^O eq 'VMS' ) {
- $dir = unixify(dirname($name));
- }
- else {
- $dir = dirname($name);
- }
+ my($dir) = $self->mpc_dirname($name);
if ($dir ne '.') {
mkpath($dir, 0, 0777);
diff --git a/modules/SLEProjectCreator.pm b/modules/SLEProjectCreator.pm
index ca60fe4f..934e0205 100644
--- a/modules/SLEProjectCreator.pm
+++ b/modules/SLEProjectCreator.pm
@@ -13,7 +13,6 @@ package SLEProjectCreator;
use strict;
use ProjectCreator;
-use File::Basename;
use vars qw(@ISA);
@ISA = qw(ProjectCreator);
diff --git a/modules/TemplateParser.pm b/modules/TemplateParser.pm
index bc0d71db..1d59bfbd 100644
--- a/modules/TemplateParser.pm
+++ b/modules/TemplateParser.pm
@@ -96,7 +96,7 @@ sub basename {
}
-sub dirname {
+sub tp_dirname {
my($self) = shift;
my($file) = shift;
for(my $i = length($file) - 1; $i != 0; --$i) {
@@ -686,7 +686,7 @@ sub handle_dirname {
if (!$self->{'if_skip'}) {
$self->append_current(
- $self->dirname($self->get_value_with_default($name)));
+ $self->tp_dirname($self->get_value_with_default($name)));
}
}
diff --git a/modules/WorkspaceCreator.pm b/modules/WorkspaceCreator.pm
index 1c1e577b..100e3b56 100644
--- a/modules/WorkspaceCreator.pm
+++ b/modules/WorkspaceCreator.pm
@@ -15,10 +15,6 @@ 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;
@@ -282,11 +278,7 @@ sub aggregated_workspace {
$self->{'handled_scopes'}->{$aggregated} = undef;
$self->set_line_number(0);
$self->{$self->{'type_check'}} = 0;
- if ( $^O eq 'VMS' ) {
- $self->{'scoped_basedir'} = unixify(dirname($file));
- } else {
- $self->{'scoped_basedir'} = dirname($file);
- }
+ $self->{'scoped_basedir'} = $self->mpc_dirname($file);
while(<$fh>) {
my($line) = $self->preprocess_line($fh, $_);
@@ -446,11 +438,7 @@ sub handle_scoped_unknown {
if ($file =~ /\.mpc$/) {
my($exc) = $file;
do {
- if ( $^O eq 'VMS' ) {
- $exc = unixify(dirname($exc));
- } else {
- $exc = dirname($exc);
- }
+ $exc = $self->mpc_dirname($exc);
$remove{$exc} = 1;
} while($exc ne '.' && $exc !~ /[a-z]:[\/\\]/i);
}
@@ -536,28 +524,14 @@ sub remove_duplicate_projects {
my($list) = shift;
my($count) = scalar(@$list);
- 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;
- }
+ for(my $i = 0; $i < $count; ++$i) {
+ my($file) = $$list[$i];
+ foreach my $inner (@$list) {
+ if ($file ne $inner && $file eq $self->mpc_dirname($inner) && ! -d $inner) {
+ splice(@$list, $i, 1);
+ --$count;
+ --$i;
+ last;
}
}
}
@@ -697,8 +671,8 @@ sub write_workspace {
if (defined $names{$name}) {
++$duplicates;
$self->error("Duplicate case-insensitive project '$name'. " .
- "Look in " . dirname($project) . " and " .
- dirname($names{$name}) .
+ "Look in " . $self->mpc_dirname($project) . " and " .
+ $self->mpc_dirname($names{$name}) .
" for project name conflicts.");
}
else {
@@ -739,12 +713,7 @@ sub write_workspace {
if (!$abort_creation) {
my($fh) = new FileHandle();
- my($dir) = '';
- if ( $^O eq 'VMS' ) {
- $dir = unixify(dirname($name));
- } else {
- $dir = dirname($name);
- }
+ my($dir) = $self->mpc_dirname($name);
## Verify and possibly modify the dependencies
if ($addfile) {
@@ -965,13 +934,7 @@ sub generate_project_files {
foreach my $ofile (@{$self->{'project_files'}}) {
if (!$self->excluded($ofile)) {
my($file) = $ofile;
- my($dir) = '';
- if ( $^O eq 'VMS' ) {
- $dir = unixify(dirname($file));
- }
- else {
- $dir = dirname($file);
- }
+ my($dir) = $self->mpc_dirname($file);
my($restore) = 0;
if (defined $self->{'scoped_assign'}->{$ofile}) {