Fork of Smoothie to port to mbed non-LPC targets.

Dependencies:   mbed

Fork of Smoothie by Stéphane Cachat

Committer:
Michael J. Spencer
Date:
Fri Feb 28 18:52:52 2014 -0800
Revision:
2:1df0b61d3b5a
Update to latest Smoothie.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Michael J. Spencer 2:1df0b61d3b5a 1 #!/usr/bin/perl
Michael J. Spencer 2:1df0b61d3b5a 2
Michael J. Spencer 2:1df0b61d3b5a 3 open(OUTPUT, "> httpd-fsdata2.h");
Michael J. Spencer 2:1df0b61d3b5a 4
Michael J. Spencer 2:1df0b61d3b5a 5 chdir("httpd-fs");
Michael J. Spencer 2:1df0b61d3b5a 6
Michael J. Spencer 2:1df0b61d3b5a 7 opendir(DIR, ".");
Michael J. Spencer 2:1df0b61d3b5a 8 @files = grep { !/^\./ && !/(CVS|~)/ } readdir(DIR);
Michael J. Spencer 2:1df0b61d3b5a 9 closedir(DIR);
Michael J. Spencer 2:1df0b61d3b5a 10
Michael J. Spencer 2:1df0b61d3b5a 11 foreach $file (@files) {
Michael J. Spencer 2:1df0b61d3b5a 12
Michael J. Spencer 2:1df0b61d3b5a 13 if(-d $file && $file !~ /^\./) {
Michael J. Spencer 2:1df0b61d3b5a 14 print "Processing directory $file\n";
Michael J. Spencer 2:1df0b61d3b5a 15 opendir(DIR, $file);
Michael J. Spencer 2:1df0b61d3b5a 16 @newfiles = grep { !/^\./ && !/(CVS|~)/ } readdir(DIR);
Michael J. Spencer 2:1df0b61d3b5a 17 closedir(DIR);
Michael J. Spencer 2:1df0b61d3b5a 18 printf "Adding files @newfiles\n";
Michael J. Spencer 2:1df0b61d3b5a 19 @files = (@files, map { $_ = "$file/$_" } @newfiles);
Michael J. Spencer 2:1df0b61d3b5a 20 next;
Michael J. Spencer 2:1df0b61d3b5a 21 }
Michael J. Spencer 2:1df0b61d3b5a 22 }
Michael J. Spencer 2:1df0b61d3b5a 23
Michael J. Spencer 2:1df0b61d3b5a 24 foreach $file (@files) {
Michael J. Spencer 2:1df0b61d3b5a 25 if(-f $file) {
Michael J. Spencer 2:1df0b61d3b5a 26
Michael J. Spencer 2:1df0b61d3b5a 27 print "Adding file $file\n";
Michael J. Spencer 2:1df0b61d3b5a 28
Michael J. Spencer 2:1df0b61d3b5a 29 open(FILE, $file) || die "Could not open file $file\n";
Michael J. Spencer 2:1df0b61d3b5a 30
Michael J. Spencer 2:1df0b61d3b5a 31 $file =~ s-^-/-;
Michael J. Spencer 2:1df0b61d3b5a 32 $fvar = $file;
Michael J. Spencer 2:1df0b61d3b5a 33 $fvar =~ s-/-_-g;
Michael J. Spencer 2:1df0b61d3b5a 34 $fvar =~ s-\.-_-g;
Michael J. Spencer 2:1df0b61d3b5a 35 # for AVR, add PROGMEM here
Michael J. Spencer 2:1df0b61d3b5a 36 print(OUTPUT "static const unsigned char data".$fvar."[] = {\n");
Michael J. Spencer 2:1df0b61d3b5a 37 print(OUTPUT "\t/* $file */\n\t");
Michael J. Spencer 2:1df0b61d3b5a 38 for($j = 0; $j < length($file); $j++) {
Michael J. Spencer 2:1df0b61d3b5a 39 printf(OUTPUT "%#02x, ", unpack("C", substr($file, $j, 1)));
Michael J. Spencer 2:1df0b61d3b5a 40 }
Michael J. Spencer 2:1df0b61d3b5a 41 printf(OUTPUT "0,\n");
Michael J. Spencer 2:1df0b61d3b5a 42
Michael J. Spencer 2:1df0b61d3b5a 43
Michael J. Spencer 2:1df0b61d3b5a 44 $i = 0;
Michael J. Spencer 2:1df0b61d3b5a 45 while(read(FILE, $data, 1)) {
Michael J. Spencer 2:1df0b61d3b5a 46 if($i == 0) {
Michael J. Spencer 2:1df0b61d3b5a 47 print(OUTPUT "\t");
Michael J. Spencer 2:1df0b61d3b5a 48 }
Michael J. Spencer 2:1df0b61d3b5a 49 printf(OUTPUT "%#02x, ", unpack("C", $data));
Michael J. Spencer 2:1df0b61d3b5a 50 $i++;
Michael J. Spencer 2:1df0b61d3b5a 51 if($i == 10) {
Michael J. Spencer 2:1df0b61d3b5a 52 print(OUTPUT "\n");
Michael J. Spencer 2:1df0b61d3b5a 53 $i = 0;
Michael J. Spencer 2:1df0b61d3b5a 54 }
Michael J. Spencer 2:1df0b61d3b5a 55 }
Michael J. Spencer 2:1df0b61d3b5a 56 print(OUTPUT "0};\n\n");
Michael J. Spencer 2:1df0b61d3b5a 57 close(FILE);
Michael J. Spencer 2:1df0b61d3b5a 58 push(@fvars, $fvar);
Michael J. Spencer 2:1df0b61d3b5a 59 push(@pfiles, $file);
Michael J. Spencer 2:1df0b61d3b5a 60 }
Michael J. Spencer 2:1df0b61d3b5a 61 }
Michael J. Spencer 2:1df0b61d3b5a 62
Michael J. Spencer 2:1df0b61d3b5a 63 for($i = 0; $i < @fvars; $i++) {
Michael J. Spencer 2:1df0b61d3b5a 64 $file = $pfiles[$i];
Michael J. Spencer 2:1df0b61d3b5a 65 $fvar = $fvars[$i];
Michael J. Spencer 2:1df0b61d3b5a 66
Michael J. Spencer 2:1df0b61d3b5a 67 if($i == 0) {
Michael J. Spencer 2:1df0b61d3b5a 68 $prevfile = "NULL";
Michael J. Spencer 2:1df0b61d3b5a 69 } else {
Michael J. Spencer 2:1df0b61d3b5a 70 $prevfile = "file" . $fvars[$i - 1];
Michael J. Spencer 2:1df0b61d3b5a 71 }
Michael J. Spencer 2:1df0b61d3b5a 72 print(OUTPUT "const struct httpd_fsdata_file file".$fvar."[] = {{$prevfile, data$fvar, ");
Michael J. Spencer 2:1df0b61d3b5a 73 print(OUTPUT "data$fvar + ". (length($file) + 1) .", ");
Michael J. Spencer 2:1df0b61d3b5a 74 print(OUTPUT "sizeof(data$fvar) - ". (length($file) + 1) ."}};\n\n");
Michael J. Spencer 2:1df0b61d3b5a 75 }
Michael J. Spencer 2:1df0b61d3b5a 76
Michael J. Spencer 2:1df0b61d3b5a 77 print(OUTPUT "#define HTTPD_FS_ROOT file$fvars[$i - 1]\n\n");
Michael J. Spencer 2:1df0b61d3b5a 78 print(OUTPUT "#define HTTPD_FS_NUMFILES $i\n");