From 1167b403e65cbf6bf9e8b4fc27e212e2c913d717 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sun, 6 Mar 2005 00:05:33 +0000 Subject: [PATCH] first shot at a perl script that generates the dependencies for the .elf files that are the plugins. Not used by anything just yet. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6149 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/elfdep.pl | 48 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 apps/plugins/elfdep.pl diff --git a/apps/plugins/elfdep.pl b/apps/plugins/elfdep.pl new file mode 100644 index 0000000000..0e32852b3d --- /dev/null +++ b/apps/plugins/elfdep.pl @@ -0,0 +1,48 @@ +#!/usr/bin/perl + +sub getdir { + my ($some_dir, $files)=@_; + opendir(DIR, $some_dir) || die "can't opendir $some_dir: $!"; + my @all = grep { /$files$/ && -f "$some_dir/$_" } readdir(DIR); + closedir DIR; + return @all; +} + +my @all=getdir(".", "\.c"); +my @pluginhead=getdir("lib", "\.h"); + +for(@pluginhead) { + $plug{$_}=$_; +} + +my %head2lib=('Tremor' => 'libTremor'); + +my $s; +foreach $s (sort @all) { + + my $plib=0; + my $codec; + open(F, "<$s"); + while() { + if($_ =~ /^ *\#include [\"<]([^\"]+)[\">]/) { + my $f = $1; + if($plug{$f}) { + $plib=1; + } + if($f =~ /codecs\/([^\/]+)/) { + $codec=$1; + my $d = $head2lib{$codec}; + if($d) { + $codec = $d; + } + } + } + } + + #print "$s uses $plib and $codec\n"; + + $s =~ s/\.c//; + printf("\$(OBJDIR)/$s.elf: \$(OBJDIR)/$s.o \$(LINKFILE)%s%s\n\t\$(ELFIT)\n\n", + $plib?" \$(OBJDIR)/libplugin.a":"", + $codec?" \$(OBJDIR)/$codec.a":""); +}