1 #!#############################################################################
3 #! Purpose: tmake template file containig Perl code to parse the filelist.txt
4 #! file - this is used by all other templates.
5 #! Author: Vadim Zeitlin
8 #!#############################################################################
10 open(FILELIST, "filelist.txt") or die "Can't open filelist file: $!\n";
12 line: while ( defined($_ = <FILELIST>) ) {
15 #! comment or blank line, skip
16 next line if ( $_ eq "" or /^#/ );
19 #! print STDERR "Processing line: '$_'\n";
22 my @fields = split /\t/;
24 #! first column is filename, second is type, third is flags
25 my ($filename, $filetype, $fileflags) = @fields;
28 warn "Ignoring malformed line $_ in the filelist file.\n";
30 } elsif ( $#fields == 1 ) {
31 #! add an empty flags string
36 print STDERR "File $filename: type '$filetype', flags '$fileflags'\n";
39 #! this is a bit stupid but all templates are written using the old
40 #! single letter flags which became so unreadable that I decided to
41 #! replace them with more readable strings, but it was easier to do
42 #! the translation here instead of changing all *.t files
43 $fileflags =~ s/Base/B/;
44 $fileflags =~ s/NotWin32/16/;
45 $fileflags =~ s/Win32Only/32/;
46 $fileflags =~ s/Generic/G/;
47 $fileflags =~ s/OLE/O/;
48 $fileflags =~ s/Socket/S/;
49 $fileflags =~ s/NotMSW/U/;
50 $fileflags =~ s/NotOS2/P/;
51 $fileflags =~ s/LowLevel/L/;
52 $fileflags =~ s/Theme/T/;
54 if ( $filetype eq "Common" ) {
55 $wxCommon{$filename} = $fileflags;
56 } elsif ( $filetype eq "Generic" ) {
57 $wxGeneric{$filename} = $fileflags;
58 } elsif ( $filetype eq "MSW" ) {
59 $wxMSW{$filename} = $fileflags;
60 } elsif ( $filetype eq "Mac" ) {
61 $wxMAC{$filename} = $fileflags;
62 } elsif ( $filetype eq "Motif" ) {
63 $wxMOTIF{$filename} = $fileflags;
64 } elsif ( $filetype eq "GTK" ) {
65 $wxGTK{$filename} = $fileflags;
66 } elsif ( $filetype eq "Univ" ) {
67 $wxUNIV{$filename} = $fileflags;
68 } elsif ( $filetype eq "MGL" ) {
69 $wxMGL{$filename} = $fileflags;
70 } elsif ( $filetype eq "Micro" ) {
71 $wxMICRO{$filename} = $fileflags;
72 } elsif ( $filetype eq "OS2" ) {
73 $wxOS2PM{$filename} = $fileflags;
74 } elsif ( $filetype eq "X11" ) {
75 $wxX11{$filename} = $fileflags;
76 } elsif ( $filetype eq "HTML" ) {
77 $wxHTML{$filename} = $fileflags;
78 } elsif ( $filetype eq "Unix" ) {
79 $wxUNIX{$filename} = $fileflags;
80 } elsif ( $filetype eq "BaseOnly" ) {
81 $wxBase{$filename} = $fileflags;
82 } elsif ( $filetype eq "WXH" ) {
83 $wxWXINCLUDE{$filename} = $fileflags;
84 } elsif ( $filetype eq "ProtoH" ) {
85 $wxPROTOCOLINCLUDE{$filename} = $fileflags;
86 } elsif ( $filetype eq "HtmlH" ) {
87 $wxHTMLINCLUDE{$filename} = $fileflags;
88 } elsif ( $filetype eq "MacH" ) {
89 $wxMACINCLUDE{$filename} = $fileflags;
90 } elsif ( $filetype eq "MotifH" ) {
91 $wxMOTIFINCLUDE{$filename} = $fileflags;
92 } elsif ( $filetype eq "MSWH" && $fileflags =~ m/O/ ) {
93 $wxOLEINCLUDE{$filename} = $fileflags;
94 } elsif ( $filetype eq "MSWH" ) {
95 $wxMSWINCLUDE{$filename} = $fileflags;
96 } elsif ( $filetype eq "GTKH" ) {
97 $wxGTKINCLUDE{$filename} = $fileflags;
98 } elsif ( $filetype eq "OS2H" ) {
99 $wxOS2PMINCLUDE{$filename} = $fileflags;
100 } elsif ( $filetype eq "X11H" ) {
101 $wxX11INCLUDE{$filename} = $fileflags;
102 } elsif ( $filetype eq "UnivH" ) {
103 $wxUNIVINCLUDE{$filename} = $fileflags;
104 } elsif ( $filetype eq "UnixH" ) {
105 $wxUNIXINCLUDE{$filename} = $fileflags;
106 } elsif ( $filetype eq "GenericH" ) {
107 $wxGENERICINCLUDE{$filename} = $fileflags;
108 } elsif ( $filetype eq "MacR" ) {
109 $wxMACRESOURCE{$filename} = $fileflags;
111 warn "Unknown file type $filetype for $filename, ignoring.\n";
118 #! vim:sw=4:ts=4:list:et