ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SCRAM/src/BuildFile.pm
(Generate patch)

Comparing COMP/SCRAM/src/BuildFile.pm (file contents):
Revision 1.1 by williamc, Mon Mar 1 10:37:52 1999 UTC vs.
Revision 1.13 by williamc, Wed Mar 31 13:34:47 1999 UTC

# Line 1 | Line 1
1 #!/usr/local/bin/perl5
2 #
3
1   package BuildFile;
2 + require 5.001;
3   require Exporter;
4   @ISA    = qw(Exporter);
5   @EXPORT = qw(CheckBuildFile ParseBuildFile @BlockClassA $DefaultBuildFile);
# Line 9 | Line 7 | require Exporter;
7   BEGIN {
8   use ToolBox;
9   $buildfile="BuildFile";
10 < #$toolbox=ToolBox->new();
10 > $toolbox=ToolBox->new();
11   }
12  
13   #Parse the BuildFile
# Line 31 | Line 29 | sub ParseBuildFile {
29                  'ConfigurationClass' => \&OutToMakefile,
30                  'AssociateGroup' => \&AssociateGroup,
31                  'none' => \&OutToMakefile,
32 <                'Bin' => \&OutToMakefile,
32 >                'Bin' => 'none',
33                  'Bin_StartTag' => \&Bin_start,
34                  'ClassPath' => \&OutToMakefile,
35                  'ClassPath_StartTag' => \&setBlockClassPath
36          };
37 <        use Switcher;
37 >        use Utilities::Switcher;
38          $switch=Switcher->new($SupportedTags, $fullfilename);
39          $switch->{Strict_no_cr}='no';
40          #open a temporary gnumakefile to store output.
41 <        use AddDir;
42 <        adddir("$ENV{LOCALTOP}/$ENV{INTwork}/${path}");
41 >        use Utilities::AddDir;
42 >        AddDir::adddir("$ENV{LOCALTOP}/$ENV{INTwork}/${path}");
43          open ( GNUmakefile, ">$ENV{LOCALTOP}/$ENV{INTwork}/${path}/BuildFile.mk") or die 'Unable to open /$ENV{INTwork}/${path}/BuildFile.mk $!\n';
44          if ( -e $ENV{LatestBuildFile} ) {
45            print GNUmakefile "include $ENV{LatestBuildFile}\n";
# Line 104 | Line 102 | sub Bin_start {
102          my $fileclass;
103          my @tools;
104          my $tool;
105 +        my $filename;
106 +        my $objectname;
107          
108          $hashref=$switch->SetupValueHash(\@vars);
109          $switch->checkparam($hashref, $name, 'file');
110          if ( ! defined $$hashref{name} ) {
111                  ($$hashref{name}=$$hashref{file})=~s/\..*//;
112          }
113 <        $fileclass=getclass($file);
114 <        $toolbox->maketargets("exe",$fileclass, $$hashref{name}, $file );
115 <        print GNUmakefile "bin::$file\n\n";
113 >        # This stuff for later
114 >        #$fileclass=$toolbox->getclass($file);
115 >        #$toolbox->maketargets("exe",$fileclass, $$hashref{name}, $file );
116 >        ($filename=$$hashref{file})=~s/\..*//;
117 >        ($objectname=$$hashref{file})=~s/\..*/\.o/;
118 >        ($objectname_d=$$hashref{file})=~s/\..*/_d\.o/;
119 >        print GNUmakefile "bin:$$hashref{name}\n";
120 >        print GNUmakefile "bin_debug:$$hashref{name}_d\n";
121 >        print GNUmakefile "bin_insure:$$hashref{name}_Insure\n";
122 >        print GNUmakefile ".INTERMEDIATE::$$hashref{name}_d.exe\n";
123 >        print GNUmakefile ".INTERMEDIATE::$$hashref{name}_Insure.exe\n";
124 >        print GNUmakefile ".INTERMEDIATE::$$hashref{name}.exe\n";
125 >        print GNUmakefile "$$hashref{name}_d.exe:$objectname_d\n";
126 >        print GNUmakefile "$$hashref{name}_Insure.exe:$objectname_Insure\n";
127 >        print GNUmakefile "$$hashref{name}.exe:$objectname\n";
128 > #       print GNUmakefile "$$hashref{name}:$$hashref{file}\n";
129 >        print GNUmakefile "$$hashref{name}_d:$$hashref{name}_d.exe\n";
130 >        print GNUmakefile "\t\@mv $$hashref{name}_d.exe \$(binarystore)/".
131 >                        "$$hashref{name}\n";
132 >        print GNUmakefile "$$hashref{name}_Insure:$$hashref{name}_Insure.exe\n";
133 >        print GNUmakefile "\t\@mv $$hashref{name}_Insure.exe \$(binarystore)/".
134 >                        "$$hashref{name}\n";
135 >        print GNUmakefile "$$hashref{name}:$$hashref{name}.exe\n";
136 >        print GNUmakefile "\t\@mv $$hashref{name}.exe \$(binarystore)/".
137 >                        "$$hashref{name}\n";
138 >        print GNUmakefile "binfiles+=$filename\n";
139 >        print GNUmakefile "bintargets+=$$hashref{name} $$hashref{name}_d\n";
140 >        print GNUmakefile "files+=$$hashref{file}\n";
141 >
142   }
143  
144   sub External_StartTag {
# Line 121 | Line 147 | sub External_StartTag {
147          my $hashref;
148          
149          $hashref=$switch->SetupValueHash(\@vars);
150 +        $$hashref{'ref'}=~tr[A-Z][a-z];
151          print GNUmakefile $$hashref{'ref'};
152          if ( defined $$hashref{'version'} ) {
153                  print GNUmakefile "_V_".$$hashref{'version'};
# Line 163 | Line 190 | sub Use_start {
190          my @vars=@_;
191          my $hashref;
192          my $filename;
193 <        use SCRAMUtils;
193 >        use Utilities::SCRAMUtils;
194          
195          $hashref=$switch->SetupValueHash(\@vars);
196          $switch->checkparam($hashref, $name, "name");
# Line 174 | Line 201 | sub Use_start {
201          print GNUmakefile "local__$$hashref{name}=true\n";
202   }
203  
204 < sub CheckBuildFile($directory) {
204 > sub CheckBuildFile {
205           my $classdir=shift;
206           $ClassName="";
207           $thisfile="$classdir/$buildfile";
# Line 205 | Line 232 | sub AssociateGroup {
232   }
233  
234   # Split up the Class Block String into a useable array
235 < sub _CutBlock($string) {
235 > sub _CutBlock {
236      my $string= shift @_;
237      @BlockClassA = split /\//, $string;
238   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines