#!/usr/bin/perl use File::Copy; if ($#ARGV != 1) { printf STDERR "usage: copysdk from to\n"; exit( 1); } $from=$ARGV[0]; $to =$ARGV[1]; $/="\r\n"; sub findrealsubdirname { my ($dirname, $current) = @_; my ($i, $j); opendir IN, $current; @dir = readdir IN; closedir IN; foreach $i (@dir) { my $j = $i; $j =~ tr/[A-Z]/[a-z]/; if ( $j eq $dirname) { return $i; } } die "this should not happen $dirname $current "; } sub findrealpathname { my ($dir, $current) = @_; my $i; @dircomp = split /\//, $dir; foreach $i ( @dircomp) { $current .= "/" . &findrealsubdirname($i, $current); } return $current; } sub doscopy { my ($src, $dest) = @_; open IN, $src; open OUT, ">$dest"; while () { chomp; print OUT "$_\n"; } close IN; close OUT; } sub copydir { my ($dir, $todir, $crlf) = @_; my ($i, $j); my @dir; mkdir $todir, 0777; opendir IN, $dir; @dir = readdir IN; closedir IN; foreach $i (@dir) { if (($i eq ".") || ($i eq "..")) { next; } $j = $i; $j =~ tr/[A-Z]/[a-z]/; # force to lower case $i = "$dir/$i"; if (-f $i) { if ($crlf) { &doscopy( $i, "$todir/$j"); } else { copy( $i, "$todir/$j"); } } elsif ( -d $i) { ©dir( $i, "$todir/$j", $crlf); } else { print STDERR "whatisit? $i\n"; } } } $from =~ s/\/$//; $to =~ s/\/$//; mkdir $to, 0777; ©dir( &findrealpathname( "epoc32/include", $from), "$to/include", 1 ); ©dir( &findrealpathname( "epoc32/release/marm/rel", $from), "$to/lib", 0); ©dir( &findrealpathname( "epoc32/tools", $from), "$to/bin", 0);