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