summaryrefslogtreecommitdiff
path: root/scripts/makecfg.pl
Unidiff
Diffstat (limited to 'scripts/makecfg.pl') (more/less context) (ignore whitespace changes)
-rwxr-xr-xscripts/makecfg.pl37
1 files changed, 7 insertions, 30 deletions
diff --git a/scripts/makecfg.pl b/scripts/makecfg.pl
index 5dd66a4..d7dc41e 100755
--- a/scripts/makecfg.pl
+++ b/scripts/makecfg.pl
@@ -9,10 +9,11 @@ my $packages="";
9open(FILE, "<./packages"); 9open(FILE, "<./packages");
10while(<FILE>){$packages.=$_;} 10while(<FILE>){$packages.=$_;}
11close(FILE); 11close(FILE);
12 12
13my ($dirname,$dir,$file,@files,$filename,$tagname,$name,$caps,$pre,$post,$sources,@dupecheck); 13my ($dirname,$dir,$file,@files,$filename,$tagname,$name,$caps,$pre,$post,$sources,@dupecheck,$basedir);
14$file = shift || die; 14$file = shift || die;
15$basedir = shift;
15push(@files, $file); 16push(@files, $file);
16 17
17foreach(@files){ 18foreach(@files){
18my $cfg=$_; 19my $cfg=$_;
@@ -51,36 +52,8 @@ select(STDOUT);
51close(CFG); 52close(CFG);
52} 53}
53exit; 54exit;
54 55
55open(FILE,">$dir/config.in");
56select(FILE);
57print "menu \"$name\"\n";
58print "\n";
59my @subdirs=();
60my @dirs;
61foreach(grep(/^$dir/, @dirs)){
62 chomp;
63 /^$dir\/$name.pro$/ && next;
64 my $localdir=$_;
65 if($dir=~m,^$localdir$,){
66 next;
67 }
68#($locadir=$_)~s,/[^/]+$,,g;
69 if($localdir=~/^\.$/){next;}
70 if(grep(/^$localdir$/, @subdirs)){next;}
71 my $nslashes = $localdir =~ tr!/!!;
72 my $dirnslashes = $dir =~ tr!/!!;
73 $dirnslashes++;
74 if($dirnslashes != $nslashes ){next;}
75 print STDERR "$localdir/config.in\n";
76 print " source $localdir/config.in\n";
77 push(@subdirs, $localdir);
78 print "endmenu\n";
79 select(STDOUT);
80 close(FILE);
81}
82
83use vars qw/*name *dir *prune/; 56use vars qw/*name *dir *prune/;
84*name = *File::Find::name; 57*name = *File::Find::name;
85*dir = *File::Find::dir; 58*dir = *File::Find::dir;
86*prune = *File::Find::prune; 59*prune = *File::Find::prune;
@@ -95,8 +68,12 @@ sub wanted {
95 $dirnslashes++; 68 $dirnslashes++;
96 # print STDERR "dirnslashes is $dirnslashes\n"; 69 # print STDERR "dirnslashes is $dirnslashes\n";
97 # print STDERR "nslashes is $nslashes\n"; 70 # print STDERR "nslashes is $nslashes\n";
98 if($dirnslashes != $nslashes){return;} 71 if($dirnslashes != $nslashes){return;}
99 print " source " . $File::Find::dir . "/config.in\n"; 72 my $reldir;
73 if (defined($basedir)) {
74 ($reldir=$File::Find::dir)=~s,^$basedir/,,;
75 }
76 print " source " . $reldir . "/config.in\n";
100 push(@dupecheck, $File::Find::dir . "/config.in"); 77 push(@dupecheck, $File::Find::dir . "/config.in");
101 } 78 }
102} 79}