diff options
author | Abdullah Sowayan <sowayan@users.noreply.github.com> | 2010-02-24 20:20:21 +0000 |
---|---|---|
committer | Abdullah Sowayan <sowayan@users.noreply.github.com> | 2010-02-24 20:20:21 +0000 |
commit | 035b47c1a6985e2b884182ab0f3bb1afa714a48f (patch) | |
tree | 48d75721f242b7a0eb4398a65b672a152bdaa37f /ACE/MPC/modules/MakeWorkspaceCreator.pm | |
parent | a3894e5127aa8cf1892e717ab30f02e053cdb482 (diff) | |
download | ATCD-035b47c1a6985e2b884182ab0f3bb1afa714a48f.tar.gz |
Diffstat (limited to 'ACE/MPC/modules/MakeWorkspaceCreator.pm')
-rw-r--r-- | ACE/MPC/modules/MakeWorkspaceCreator.pm | 71 |
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; |