author | kergoth <kergoth> | 2003-01-16 04:01:29 (UTC) |
---|---|---|
committer | kergoth <kergoth> | 2003-01-16 04:01:29 (UTC) |
commit | 73927fe1c095507ce7fdd310917521fcd305b7e5 (patch) (unidiff) | |
tree | d09eb7d1e2a845b6e974150e369ea73dca89cb64 | |
parent | 4e6e6deda15467fe253b546136df00cf5b7ebd02 (diff) | |
download | opie-73927fe1c095507ce7fdd310917521fcd305b7e5.zip opie-73927fe1c095507ce7fdd310917521fcd305b7e5.tar.gz opie-73927fe1c095507ce7fdd310917521fcd305b7e5.tar.bz2 |
Use paths relative to OPIEDIR in generated configs.
-rw-r--r-- | Rules.make | 2 | ||||
-rwxr-xr-x | scripts/makecfg.pl | 37 |
2 files changed, 8 insertions, 31 deletions
@@ -81,10 +81,10 @@ define descend | |||
81 | endef | 81 | endef |
82 | 82 | ||
83 | define makefilegen | 83 | define makefilegen |
84 | cd $(if $(1),$(shell dirname $(1))); $(TOPDIR)/qmake/qmake $(3) -o $(if $(1),$(shell basename $(1))) `cat $(OPIEDIR)/packages | grep " \`echo $(1)|sed -e 's,/Makefile$$,,'\`" | \ | 84 | cd $(if $(1),$(shell dirname $(1))); $(TOPDIR)/qmake/qmake $(3) -o $(if $(1),$(shell basename $(1))) `cat $(OPIEDIR)/packages | grep " \`echo $(1)|sed -e 's,/Makefile$$,,'\`" | \ |
85 | head -1 | awk '{print $$3}'` | 85 | head -1 | awk '{print $$3}'` |
86 | endef | 86 | endef |
87 | 87 | ||
88 | define makecfg | 88 | define makecfg |
89 | $(TOPDIR)/scripts/makecfg.pl $1 | 89 | $(TOPDIR)/scripts/makecfg.pl $1 $(OPIEDIR) |
90 | endef | 90 | endef |
diff --git a/scripts/makecfg.pl b/scripts/makecfg.pl index 5dd66a4..d7dc41e 100755 --- a/scripts/makecfg.pl +++ b/scripts/makecfg.pl | |||
@@ -5,18 +5,19 @@ if 0; #$running_under_some_shell | |||
5 | use strict; | 5 | use strict; |
6 | use File::Find; | 6 | use File::Find; |
7 | 7 | ||
8 | my $packages=""; | 8 | my $packages=""; |
9 | open(FILE, "<./packages"); | 9 | open(FILE, "<./packages"); |
10 | while(<FILE>){$packages.=$_;} | 10 | while(<FILE>){$packages.=$_;} |
11 | close(FILE); | 11 | close(FILE); |
12 | 12 | ||
13 | my ($dirname,$dir,$file,@files,$filename,$tagname,$name,$caps,$pre,$post,$sources,@dupecheck); | 13 | my ($dirname,$dir,$file,@files,$filename,$tagname,$name,$caps,$pre,$post,$sources,@dupecheck,$basedir); |
14 | $file = shift || die; | 14 | $file = shift || die; |
15 | $basedir = shift; | ||
15 | push(@files, $file); | 16 | push(@files, $file); |
16 | 17 | ||
17 | foreach(@files){ | 18 | foreach(@files){ |
18 | my $cfg=$_; | 19 | my $cfg=$_; |
19 | ($dirname=$cfg)=~s,(.*)/(.*),$1,; | 20 | ($dirname=$cfg)=~s,(.*)/(.*),$1,; |
20 | ($filename=$cfg)=~s,(.*/)(.*),$2,; | 21 | ($filename=$cfg)=~s,(.*/)(.*),$2,; |
21 | ($tagname=$dirname)=~s,.*/,,; | 22 | ($tagname=$dirname)=~s,.*/,,; |
22 | ($caps=$tagname)=~tr/[a-z]/[A-Z]/; | 23 | ($caps=$tagname)=~tr/[a-z]/[A-Z]/; |
@@ -47,56 +48,32 @@ print $pre; | |||
47 | @dupecheck=(); | 48 | @dupecheck=(); |
48 | File::Find::find({wanted => \&wanted}, $dirname); | 49 | File::Find::find({wanted => \&wanted}, $dirname); |
49 | print $post; | 50 | print $post; |
50 | select(STDOUT); | 51 | select(STDOUT); |
51 | close(CFG); | 52 | close(CFG); |
52 | } | 53 | } |
53 | exit; | 54 | exit; |
54 | 55 | ||
55 | open(FILE,">$dir/config.in"); | ||
56 | select(FILE); | ||
57 | print "menu \"$name\"\n"; | ||
58 | print "\n"; | ||
59 | my @subdirs=(); | ||
60 | my @dirs; | ||
61 | foreach(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 | |||
83 | use vars qw/*name *dir *prune/; | 56 | use 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; |
87 | 60 | ||
88 | sub wanted { | 61 | sub wanted { |
89 | if( /config.in$/s ) { | 62 | if( /config.in$/s ) { |
90 | if(grep(/^$File::Find::dir\/config.in$/, @dupecheck)){ | 63 | if(grep(/^$File::Find::dir\/config.in$/, @dupecheck)){ |
91 | return; | 64 | return; |
92 | } | 65 | } |
93 | my $nslashes = $File::Find::dir =~ tr!/!!; | 66 | my $nslashes = $File::Find::dir =~ tr!/!!; |
94 | my $dirnslashes = $dirname =~ tr!/!!; | 67 | my $dirnslashes = $dirname =~ tr!/!!; |
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 | } |