+sub gather_import_dirs {
+
+ # set up array of ignored modules
+ local(@dirs) = ($INSTALLING) ?
+ ("$InstLibDirGhc/imports/std")
+ : ("$TopPwd/ghc/lib/std");
+
+ if (!$Include_prelude) {
+ push(@Ignore_dirs, @dirs);
+ } else {
+ push(@Import_dirs, @dirs);
+ }
+
+ foreach $lib ( @Syslibs ) {
+ local($dir);
+
+ # Yuck ^ 2
+ if ( $lib eq 'lang' && ! $INSTALLING ) {
+ push(@Import_dirs, "${TopPwd}/hslibs/${lib}/monads");
+ }
+ if ( $lib eq 'text' && ! $INSTALLING ) {
+ push(@Import_dirs, "${TopPwd}/hslibs/${lib}/html");
+ }
+ if ( $lib eq 'data' && ! $INSTALLING ) {
+ push(@Import_dirs, "${TopPwd}/hslibs/${lib}/edison");
+ push(@Import_dirs, "${TopPwd}/hslibs/${lib}/edison/Assoc");
+ push(@Import_dirs, "${TopPwd}/hslibs/${lib}/edison/Coll");
+ push(@Import_dirs, "${TopPwd}/hslibs/${lib}/edison/Seq");
+ }
+
+ # Yuck ^ 3
+ if ( $lib eq 'win32' && ! $INSTALLING ) {
+ $dir = "${TopPwd}/hslibs/${lib}/src";
+ } elsif ( $lib eq 'com' && ! $INSTALLING ) {
+ $dir = "${TopPwd}/hslibs/lib";
+ } else {
+ $dir = ($INSTALLING) ? "${InstLibDirGhc}/imports/${lib}"
+ : "${TopPwd}/hslibs/${lib}";
+ }
+ if (!$Include_prelude) {
+ push(@Ignore_dirs,$dir);
+ } else {
+ push(@Import_dirs, $dir);
+ }
+ }
+}
+
+
+