From: sof Date: Fri, 2 Oct 1998 09:20:04 +0000 (+0000) Subject: [project @ 1998-10-02 09:20:04 by sof] X-Git-Tag: Approx_2487_patches~249 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=9fc2098d965eb40b290d67a0a83696abe5e9d97d;p=ghc-hetmet.git [project @ 1998-10-02 09:20:04 by sof] Generalise --exlude-module=M handling slightly, it now will ignore any appearances of M along the user import path too. --- diff --git a/ghc/utils/mkdependHS/mkdependHS.prl b/ghc/utils/mkdependHS/mkdependHS.prl index e821971..92500a3 100644 --- a/ghc/utils/mkdependHS/mkdependHS.prl +++ b/ghc/utils/mkdependHS/mkdependHS.prl @@ -192,6 +192,7 @@ foreach $sf (@Src_files) { } &slurp_file_for_imports($file_to_read, $sf); + # Delete the temporary. if ( $sf =~ /\.l(hs|y)$/ ) { unlink "$Tmp_prefix.hs"; } @@ -273,7 +274,7 @@ sub mangle_command_line_args { } elsif ( /^-(x|-exclude-module=)(.*)/ ) { local($thing) = &grab_arg_arg($1,$2); - $IgnoreMe{$thing} = 'y'; + $IgnoreMe{$thing} = 'Y'; } elsif ( /^-(X|-exclude-directory=)(.*)/ ) { foreach $d ( split(/:/,&grab_arg_arg($1, $2)) ) { push(@Ignore_dirs,"$d"); @@ -356,7 +357,7 @@ sub preprocess_import_dirs { next unless /(.*)\.(hi|l?hs|l?y)$/; #don't tag it twice or overwrite it with a diff. value next if $IgnoreMe{$1}; - print STDERR "Module $d/$1.$2 will be ignored\n" if $Verbose; + print STDERR "Module $d will be ignored\n" if $Verbose; $IgnoreMe{$1} = 'y'; } @@ -373,6 +374,14 @@ sub slurp_file_for_imports { $last_seen_dir =~ s/\/[^\/]+$//; # strip to dir name $last_seen_dir = '.' if ($last_seen_dir eq $orig_src_file); + local($mod_name) = $orig_src_file; + + $mod_name =~ s/.*\/([^\/]+)$/$1/g; + $mod_name =~ s/^([^.]+)\.(.*)$/$1/; + + print STDERR "Warning: processing module $mod_name, which I was supposed to ignore.\n" + if ( $IgnoreMe{$mod_name} eq 'Y' && $Warnings ); + &process_dependency('import',0,'Prelude') if ($Include_prelude); # we mangle #include's so they will also leave something @@ -422,7 +431,11 @@ sub process_dependency { local($todo,$source,$modname) = @_; if ($todo eq 'import') { - if ( $ModuleIn{$modname} ) { + if ( $IgnoreMe{$modname} eq 'Y' ) { + # user specifically asked for this module + # to be ignored. + $follow_file = '__ignore__'; + } elsif ( $ModuleIn{$modname} ) { $follow_file = "$ModuleIn{$modname}/$modname.hi"; } else { # hard way $follow_file =