7 |
|
BEGIN { |
8 |
|
use ToolBox; |
9 |
|
$buildfile="BuildFile"; |
10 |
< |
#$toolbox=ToolBox->new(); |
10 |
> |
$toolbox=ToolBox->new(); |
11 |
|
} |
12 |
|
|
13 |
|
#Parse the BuildFile |
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 |
39 |
|
$switch->{Strict_no_cr}='no'; |
40 |
|
#open a temporary gnumakefile to store output. |
41 |
|
use Utilities::AddDir; |
42 |
< |
adddir("$ENV{LOCALTOP}/$ENV{INTwork}/${path}"); |
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"; |
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 ".INTERMEDIATE::$$hashref{name}_d.exe\n"; |
122 |
> |
print GNUmakefile ".INTERMEDIATE::$$hashref{name}.exe\n"; |
123 |
> |
print GNUmakefile "$$hashref{name}_d.exe:$objectname_d\n"; |
124 |
> |
print GNUmakefile "$$hashref{name}.exe:$objectname\n"; |
125 |
> |
# print GNUmakefile "$$hashref{name}:$$hashref{file}\n"; |
126 |
> |
print GNUmakefile "$$hashref{name}_d:$$hashref{name}_d.exe\n"; |
127 |
> |
print GNUmakefile "\t\@mv $$hashref{name}_d.exe \$(binarystore)/". |
128 |
> |
"$$hashref{name}\n"; |
129 |
> |
print GNUmakefile "$$hashref{name}:$$hashref{name}.exe\n"; |
130 |
> |
print GNUmakefile "\t\@mv $$hashref{name}.exe \$(binarystore)/". |
131 |
> |
"$$hashref{name}\n"; |
132 |
> |
print GNUmakefile "binfiles+=$filename\n"; |
133 |
> |
print GNUmakefile "bintargets+=$$hashref{name} $$hashref{name}_d\n"; |
134 |
> |
print GNUmakefile "files+=$$hashref{file}\n"; |
135 |
> |
|
136 |
|
} |
137 |
|
|
138 |
|
sub External_StartTag { |
141 |
|
my $hashref; |
142 |
|
|
143 |
|
$hashref=$switch->SetupValueHash(\@vars); |
144 |
+ |
$$hashref{'ref'}=~tr[A-Z][a-z]; |
145 |
|
print GNUmakefile $$hashref{'ref'}; |
146 |
|
if ( defined $$hashref{'version'} ) { |
147 |
|
print GNUmakefile "_V_".$$hashref{'version'}; |
195 |
|
print GNUmakefile "local__$$hashref{name}=true\n"; |
196 |
|
} |
197 |
|
|
198 |
< |
sub CheckBuildFile($directory) { |
198 |
> |
sub CheckBuildFile { |
199 |
|
my $classdir=shift; |
200 |
|
$ClassName=""; |
201 |
|
$thisfile="$classdir/$buildfile"; |
226 |
|
} |
227 |
|
|
228 |
|
# Split up the Class Block String into a useable array |
229 |
< |
sub _CutBlock($string) { |
229 |
> |
sub _CutBlock { |
230 |
|
my $string= shift @_; |
231 |
|
@BlockClassA = split /\//, $string; |
232 |
|
} |