ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/JSOC/configproj.pl
(Generate patch)

Comparing configproj.pl (file contents):
Revision 1.3 by arta, Wed Feb 2 01:15:25 2011 UTC vs.
Revision 1.4 by arta, Fri Feb 4 01:33:56 2011 UTC

# Line 54 | Line 54 | use Data::Dumper;
54  
55   use constant kMakeDiv => "__MAKE__";
56   use constant kProjDiv => "__PROJ__";
57 + use constant kProjCfgDiv => "__PROJCFG__";
58   use constant kEndDiv => "__END__";
59   use constant kStUnk => 0;
60   use constant kStMake => 1;
61   use constant kStProj => 2;
62 + use constant kStProjCfg => 3;
63   use constant kMakeFile => "make_basic.mk";
64   use constant kTargetFile => "target.mk";
65   use constant kRulesFile => "Rules.mk";
66 + use constant kProjCfgFile => "configure";
67   use constant kMakeVarCOMPILER => "COMPILER";
68   use constant kMakeVarFCOMPILER => "FCOMPILER";
69   use constant kMakeVarJSOC_MACHINE => "JSOC_MACHINE";
# Line 86 | Line 89 | my($key);
89   my($val);
90   my($mdiv);
91   my($pdiv);
92 + my($pcdiv);
93   my($ediv);
94   my($xml);
95  
# Line 109 | Line 113 | if (defined($cfgfile) && -e $cfgfile)
113     {
114        my($makedone);
115        my($projdone);
116 +      my($projcfgdone);
117  
118        $st = kStUnk;
119        $mdiv = kMakeDiv;
120        $pdiv = kProjDiv;
121 +      $pcdiv = kProjCfgDiv;
122        $ediv = kEndDiv;
123  
124        $makedone = 0;
125        $projdone = 0;
126 +      $projcfgdone = 0;
127  
128        while (defined($line = <CFGFILE>))
129        {
# Line 162 | Line 169 | if (defined($cfgfile) && -e $cfgfile)
169              $xml = "";
170              next;
171           }
172 +         elsif ($line =~ /^$pcdiv/)
173 +         {
174 +            $st = kStProjCfg;
175 +            if (!open(PROJCFGFILE, ">${locdir}/" . kProjCfgFile))
176 +            {
177 +               print STDERR "Unable to open " . kProjCfgFile . " for writing.\n";
178 +               $err = 1;
179 +               last;
180 +            }
181 +
182 +            next;
183 +         }
184           elsif ($line =~ /^$ediv/)
185           {
186              if ($st == kStMake)
# Line 172 | Line 191 | if (defined($cfgfile) && -e $cfgfile)
191              {
192                 $projdone = 1;
193              }
194 +            elsif ($st == kStProjCfg)
195 +            {
196 +               $projcfgdone = 1;
197 +            }
198  
199              $st = kStUnk;
200  
201 <            if ($makedone && $projdone)
201 >            if ($makedone && $projdone && $projcfgdone)
202              {
203                 last;
204              }
# Line 193 | Line 216 | if (defined($cfgfile) && -e $cfgfile)
216              # suck out xml
217              $xml = $xml . "$line\n";
218           }
219 +         elsif ($st == kStProjCfg)
220 +         {
221 +            # copy verbatim to configure
222 +            print PROJCFGFILE "$line\n";
223 +         }
224        } # loop over cfg file
225  
226        close(CFGFILE);
# Line 316 | Line 344 | if (defined($cfgfile) && -e $cfgfile)
344              print RULESFILE "${filesuffix}\n";
345           }
346        }
347 <
347 >      
348        close(TARGETFILE);
349        close(RULESFILE);
350 +      close(PROJCFGFILE);
351        close(MKFILE);
352 +
353 +      if (chmod(0744, "${locdir}/" . kProjCfgFile) != 1)
354 +      {
355 +         print STDERR "Unable to set file permissions for ${locdir}/" . kProjCfgFile . ".\n";
356 +         $err = 1;
357 +      }
358     }
359     else
360     {
361        print STDERR "Unable to open configuration file $cfgfile.\n";
362 <      exit(1);
362 >      $err = 1;
363     }
364   }
365  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines