-
- push(@Depend_lines, "$bf.$Obj_suffix : $int_file.hi\n");
- foreach $suff (@File_suffix) {
- push(@Depend_lines, "$bf.$suff\_$Obj_suffix : $int_file.$suff\_hi\n");
- }
+ local($source_dep);
+
+ if ( $source && -f "$int_file.hs" ) {
+ $source_dep = "$int_file.hs";
+ push(@Depend_lines, "$bf.$Obj_suffix : $source_dep\n");
+ } elsif ( $source && -f "$int_file.lhs" ) {
+ $source_dep = "$int_file.lhs";
+ push(@Depend_lines, "$bf.$Obj_suffix : $source_dep\n");
+ } else {
+ if ( $source ) {
+ print STDERR "Warning: could not find source file dependency $int_file.(hs|lhs)\n";
+ }
+ push(@Depend_lines, "$bf.$Obj_suffix : $int_file.hi\n");
+ }
+
+ if ( ! $source ) {
+ foreach $suff (@File_suffix) {
+ push(@Depend_lines, "$bf.${suff}_$Obj_suffix : $int_file.${suff}_hi\n");
+ }
+ } else {
+ foreach $suff (@File_suffix) {
+ push(@Depend_lines, "$bf.${suff}_$Obj_suffix : $source_dep\n");
+ }
+ }