19 |
|
|
20 |
|
GetClass($THISDIR); |
21 |
|
#print "Class = $Class\n"; |
22 |
+ |
#print "ClassDir = $ClassDir\n"; |
23 |
|
if ( grep /none/i , @BuildFile::groups) { |
24 |
|
print "Nothing to be done - empty group\n"; |
25 |
|
exit |
62 |
|
} |
63 |
|
|
64 |
|
$ENV{ClassDir}=$ClassDir; |
65 |
+ |
$ENV{Class}=$Class; |
66 |
|
$ENV{DefaultBuildFile}=$DefaultBuildFile; |
67 |
|
|
68 |
|
chdir $fullworkdir || die "Unable to enter working directory $!"; |
69 |
|
|
70 |
+ |
# Set up some other useful variables fo the Build |
71 |
+ |
# list of directories available |
72 |
+ |
opendir IDR, "$ENV{LOCALTOP}/$THISDIR"; |
73 |
+ |
@allfiles= grep !/^\.\.?$/, readdir IDR; |
74 |
+ |
foreach $file ( @allfiles ) { |
75 |
+ |
if ( -d "$ENV{LOCALTOP}/$THISDIR/$file" ) { # only add if its a directory |
76 |
+ |
$ENV{SCRAM_AVAILDIRS}=$ENV{SCRAM_AVAILDIRS}." ".$file; |
77 |
+ |
} |
78 |
+ |
else { |
79 |
+ |
$ENV{SCRAM_AVAILFILES}=$ENV{SCRAM_AVAILFILES}." ".$file; |
80 |
+ |
} |
81 |
+ |
} |
82 |
+ |
$targetnumber=$#Targets; |
83 |
+ |
foreach $word ( @Targets ) { |
84 |
+ |
if ( $word=~/.*=.*/ ) { # if we have an assignment it cant be a target |
85 |
+ |
$targetnumber--; |
86 |
+ |
} |
87 |
+ |
else { |
88 |
+ |
$ENV{"MAKETARGET_".$word}=$word; |
89 |
+ |
} |
90 |
+ |
} |
91 |
+ |
|
92 |
|
# If not specified default to the class name target |
93 |
< |
if ( $#Targets == -1 ) { |
94 |
< |
$Targets[0]=$Class |
93 |
> |
if ( $targetnumber == -1 ) { |
94 |
> |
push @Targets,$Class; |
95 |
|
} |
96 |
+ |
|
97 |
|
$ENV{DefaultMakefile}="$ENV{TOOL_HOME}/basics.mk"; |
98 |
< |
system("gmake","--no-print-directory","-r","-j 1","-f","$ENV{DefaultMakefile}","-I$ENV{TOOL_HOME}",@Targets); |
98 |
> |
|
99 |
> |
$SCRAM_GROUPSDIR=$ENV{LOCALTOP}."/".$ENV{projconfigdir}."/groups.mk"; |
100 |
> |
if ( -f $SCRAM_GROUPSDIR ) { |
101 |
> |
$ENV{SCRAM_GROUPSDIR}=$SCRAM_GROUPSDIR; |
102 |
> |
} |
103 |
> |
# Set up scram configuration files |
104 |
> |
$rv=system("gmake","--no-print-directory","-r","-k","-s","-j 1","-f","$ENV{TOOL_HOME}/clientmakefile.mk","-I$ENV{TOOL_HOME}", "client"); |
105 |
> |
|
106 |
> |
# Do a datestamp check so that make will build files that have changed rather |
107 |
> |
# than just those which are older than their dependencies |
108 |
> |
# The main build here |
109 |
> |
$rv=system("gmake","--no-print-directory","-r","-k","-f","$ENV{DefaultMakefile}","-I$ENV{TOOL_HOME}",datestamp, @Targets); |
110 |
> |
$rv/256; # return the exit status of gmake |
111 |
|
} |