3 # Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4 # Copyright (C) 2008 - INRIA - Pierre MARECHAL <pierre.marechal@inria.fr>
6 # This file must be used under the terms of the CeCILL.
7 # This source file is licensed as described in the file COPYING, which
8 # you should have received as part of this distribution. The terms
9 # are also available at
10 # http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
17 my $directory = getcwd();
19 if( dirname($0) ne '.' )
21 $directory .= '/'.dirname($0);
24 if( dirname($0) =~ m/^\// )
26 $directory = dirname($0);
30 my $sci_modules_dir = $directory;
31 $sci_modules_dir =~ s/\/development_tools\/src\/perl//g;
34 my %modules = get_module_list();
36 foreach my $module (sort keys %modules)
42 my %list_makefile_headers = get_makefileam_list($module,'HEADERS');
43 my %list_real_headers = get_real_list($module,'HEADERS');
45 my $nb_makefile_headers = 0;
46 my $nb_real_headers = 0;
51 foreach my $file (sort keys %list_makefile_headers)
53 $nb_makefile_headers++;
55 if( ! -e $sci_modules_dir.'/'.$module.'/'.$file )
58 $error_list .= sprintf("\t".'% 3d - %s doesn\'t exist'."\n",$nb_pb,$file);
62 foreach my $file (sort keys %list_real_headers)
66 if( ! exists( $list_makefile_headers{$file} ) )
69 $error_list .= sprintf("\t".'% 3d - %s is not listed in the Makefile.am file'."\n",$nb_pb,$file);
75 for( my $i = length($module) ; $i <= 30 ; $i++ )
80 printf(' [ % 4d include file(s) ]'."\n",$nb_makefile_headers);
84 print "\n".$error_list;
88 # ==============================================================================
90 # ==============================================================================
92 sub get_makefileam_list()
102 unless( chdir($sci_modules_dir.'/'.$module) )
104 print $module.' : The directory '.$sci_modules_dir.'/'.$module.' doesn\'t exist or read access denied'."\n";
108 # Ouverture du fichier Makefile.am pour en extraire le bloc d'include
109 # ==========================================================================
111 unless( open(MAKEFILEAM,'Makefile.am') )
113 print $module.' : Makefile.am file doesn\'t exist or read access denied'."\n";
122 # Suppression des espaces en début et fin de chaîne
128 if($_ =~ m/lib(.*)include_HEADERS/ )
131 $file_list_string[$nb_blocs] = '';
135 # Traitement de la liste
136 if( $list_start == 1 )
138 $file_list_string[$nb_blocs] .= $_;
140 if( index($_,' \\') == -1 )
150 # ==========================================================================
152 for( my $i=1 ; $i <= $nb_blocs ; $i++ )
154 # traitement du bloc d'include
155 # ======================================================================
157 # suppression des parties inutiles
158 # ================================
160 $file_list_string[$i] =~ s/\\/ /g;
162 # Suppression des espaces en début et fin de chaîne
163 my $rep = index( $file_list_string[$i] , '=' );
164 substr($file_list_string[$i],0,$rep+1) = '';
166 # Suppression des espaces en début et fin de chaîne
167 $file_list_string[$i] =~ s/^\s+//;
168 $file_list_string[$i] =~ s/\s+$//;
170 # Séparation des fichiers
171 my @files = split(/[[:blank:]]+/,$file_list_string[$i]);
173 foreach my $file (@files)
182 # ==============================================================================
184 # ==============================================================================
191 my $file_list_string = '';
195 unless( chdir($sci_modules_dir.'/'.$module) )
197 print $module.' : The directory '.$sci_modules_dir.'/'.$module.' doesn\'t exist or read access denied'."\n";
201 my @files = <includes/*>;
203 foreach my $file (@files)
211 # ==============================================================================
213 # ==============================================================================
219 unless( chdir($sci_modules_dir) )
221 print 'The directory '.$sci_modules_dir.' doesn\'t exist or read access denied'."\n";
225 my @candidates = <*>;
227 foreach my $candidate (@candidates)
229 if( -e $sci_modules_dir.'/'.$candidate.'/Makefile.am' )
231 $list{$candidate} = 1;
238 # ==============================================================================
240 # ==============================================================================
250 my $current_directory;
251 my $previous_directory = getcwd();
257 foreach my $list_dir (@list_dir)
259 $current_directory = getcwd();
261 if( (-d $list_dir) && ($list_dir ne '.svn') )
263 search($current_directory.'/'.$list_dir,$module);
268 my $file = $current_directory.'/'.$list_dir;
269 substr($file,0,length($sci_modules_dir.'/'.$module.'/')) = '';
271 print LIST $file.' ';
275 chdir($previous_directory);