File: makeconfig.pl

package info (click to toggle)
therion 6.3.4-2
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 15,544 kB
  • sloc: cpp: 195,273; tcl: 19,779; ansic: 8,434; perl: 1,895; makefile: 1,281; python: 255; asm: 219; sh: 104
file content (47 lines) | stat: -rw-r--r-- 822 bytes parent folder | download | duplicates (18)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# read make file
open(MF,"Makefile");
@mflines = <MF>;
close(MF);

# backup makefile
open(MFB,">Makefile~");
print MFB @mflines;
close(MFB);

open(MF,">Makefile");
$insidecfg = 0;
$insideprm = 0;
$config = $ARGV[0];
$param = $ARGV[1];
foreach $ln (@mflines) {

  if ($ln =~ /^\s*\#\s*$config\s+CONFIG\s*$/) {
    $insidecfg = 1;
  }

  if ($ln =~ /^\s*\#\s*$config\s+ENDCONFIG\s*$/) {
    $insidecfg = 0;
  }
  
  if ($insidecfg && ($ln =~ /^\s*\#\s*$config\s+$param\s*$/)) {
    $insideprm = 1;
  } elsif ($insidecfg && ($ln =~ /^\s*\#\s*$config\s+\S+\s*$/)) {
    $insideprm = 0;
  }
  
  if ($ln =~ /\S/) {
    if ($insidecfg) {
      if ($insideprm) {
        $ln =~ s/^\s*\#\#//;
      } else {
        if ($ln =~ /^\s*[^\#]/) {
          $ln = "##$ln";
        }
      }
    }
  }
  
  print MF $ln;
  
}
close(MF);