summaryrefslogtreecommitdiff
path: root/ACE/MPC/modules/MakeWorkspaceCreator.pm
diff options
context:
space:
mode:
authorAbdullah Sowayan <sowayan@users.noreply.github.com>2010-02-24 20:20:21 +0000
committerAbdullah Sowayan <sowayan@users.noreply.github.com>2010-02-24 20:20:21 +0000
commit035b47c1a6985e2b884182ab0f3bb1afa714a48f (patch)
tree48d75721f242b7a0eb4398a65b672a152bdaa37f /ACE/MPC/modules/MakeWorkspaceCreator.pm
parenta3894e5127aa8cf1892e717ab30f02e053cdb482 (diff)
downloadATCD-035b47c1a6985e2b884182ab0f3bb1afa714a48f.tar.gz
Diffstat (limited to 'ACE/MPC/modules/MakeWorkspaceCreator.pm')
-rw-r--r--ACE/MPC/modules/MakeWorkspaceCreator.pm71
1 files changed, 71 insertions, 0 deletions
diff --git a/ACE/MPC/modules/MakeWorkspaceCreator.pm b/ACE/MPC/modules/MakeWorkspaceCreator.pm
new file mode 100644
index 00000000000..fe3c0d05c73
--- /dev/null
+++ b/ACE/MPC/modules/MakeWorkspaceCreator.pm
@@ -0,0 +1,71 @@
+package MakeWorkspaceCreator;
+
+# ************************************************************
+# Description : A Generic Workspace (Makefile) creator
+# Author : Chad Elliott
+# Create Date : 2/18/2003
+# ************************************************************
+
+# ************************************************************
+# Pragmas
+# ************************************************************
+
+use strict;
+
+use MakeProjectCreator;
+use MakeWorkspaceBase;
+use WorkspaceCreator;
+
+use vars qw(@ISA);
+@ISA = qw(MakeWorkspaceBase WorkspaceCreator);
+
+# ************************************************************
+# Data Section
+# ************************************************************
+
+my $targets = 'clean depend generated realclean $(CUSTOM_TARGETS)';
+
+# ************************************************************
+# Subroutine Section
+# ************************************************************
+
+sub write_project_targets {
+ my($self, $fh, $crlf, $target, $list) = @_;
+
+ ## Print out a make command for each project
+ foreach my $project (@$list) {
+ my $dname = $self->mpc_dirname($project);
+ my $chdir = ($dname ne '.');
+ print $fh "\t\@",
+ ($chdir ? "cd $dname && " : ''),
+ "\$(MAKE) -f ",
+ ($chdir ? $self->mpc_basename($project) : $project),
+ " $target$crlf";
+ }
+}
+
+sub pre_workspace {
+ my($self, $fh) = @_;
+ $self->workspace_preamble($fh, $self->crlf(), 'Make Workspace',
+ '$Id$');
+}
+
+
+sub write_comps {
+ my($self, $fh) = @_;
+ my %targnum;
+ my @list = $self->number_target_deps($self->get_projects(),
+ $self->get_project_info(),
+ \%targnum, 0);
+
+ ## Send all the information to our base class method
+ $self->write_named_targets($fh, $self->crlf(), \%targnum, \@list,
+ ($self->languageIs(Creator::csharp) ?
+ 'bundle ' : '') . $targets, '', 'generated ',
+ $self->project_target_translation(1), 1);
+}
+
+
+
+
+1;