[Pkg-mono-svn-commits] rev 2749 - cli-common/trunk

Mirco Bauer meebey-guest at costa.debian.org
Sat Sep 30 10:56:22 UTC 2006


Author: meebey-guest
Date: 2006-09-30 10:56:22 +0000 (Sat, 30 Sep 2006)
New Revision: 2749

Modified:
   cli-common/trunk/dh_clideps
Log:
- added support for MONO_PATH



Modified: cli-common/trunk/dh_clideps
===================================================================
--- cli-common/trunk/dh_clideps	2006-09-29 23:15:09 UTC (rev 2748)
+++ cli-common/trunk/dh_clideps	2006-09-30 10:56:22 UTC (rev 2749)
@@ -92,32 +92,45 @@
 my $pwd = `pwd`;
 chomp $pwd;
 
-my $mono_gac_prefix = "/usr";
+my $mono_gac_prefix = "";
+my $mono_path = "";
 if ($dh{L_PARAMS}) { 
-  my @paths=();
+  my @paths = ();
+  my @mono_paths = ();
+  my @mono_gac_prefixes = ();
   # Add to existing paths, if set.
-  push @paths, $ENV{'MONO_GAC_PREFIX'} if exists $ENV{'MONO_GAC_PREFIX'};
+  push(@paths, $ENV{'MONO_GAC_PREFIX'}) if exists $ENV{'MONO_GAC_PREFIX'};
+  push(@paths, $ENV{'MONO_PATH'}) if exists $ENV{'MONO_PATH'};
   foreach (split(/:/, $dh{L_PARAMS})) {
     # Force the path absolute.
+    my $full_path;
     if (m:^/:) {
-      push @paths, $_;
+      $full_path = @paths, $_;
     } else {
-      push @paths, getcwd()."/$_";
+      $full_path = getcwd()."/$_";
     }
+    if (-d "$full_path/lib/mono/gac") {
+      # it's a GAC prefix
+      push(@mono_gac_prefixes, $full_path);
+    } else {
+      # it's a Mono PATH
+      pusg(@mono_paths, $full_path);
+    }
   }
-  $mono_gac_prefix .= ":" . join(':', @paths);
+  $mono_gac_prefix .= ":" . join(':', @mono_gac_prefixes);
+  $mono_paths .= ":" . join(':', @mono_paths);
 }
 
 if (defined($ARGV[0]) && $ARGV[0] eq "internal-mono") {
     $clr = "mono";
     $cli_parser = "$pwd/debian/tmp/usr/bin/monodis";
-    $cli_parser_paths = "LD_LIBRARY_PATH=$pwd/debian/tmp/usr/lib MONO_PATH=$pwd/debian/tmp/usr/lib/mono/1.0:$pwd/debian/tmp/usr/lib/mono/2.0 MONO_GAC_PREFIX=$mono_gac_prefix ";
+    $cli_parser_paths = "LD_LIBRARY_PATH=$pwd/debian/tmp/usr/lib MONO_PATH=$pwd/debian/tmp/usr/lib/mono/1.0:$pwd/debian/tmp/usr/lib/mono/2.0 MONO_GAC_PREFIX=$mono_gac_prefix MONO_PATH=$mono_paths ";
     $cli_version = `LD_LIBRARY_PATH=$pwd/debian/tmp/usr/lib $pwd/debian/tmp/usr/bin/mono --version 2>&1`;
     verbose_print("Will use built Mono (debian/tmp/usr/bin/monodis) for CIL parsing.");
 } elsif (-x "/usr/bin/monodis") {
     $clr = "mono";
     $cli_parser = "/usr/bin/monodis";
-    $cli_parser_paths = "MONO_GAC_PREFIX=$mono_gac_prefix ";
+    $cli_parser_paths = "MONO_GAC_PREFIX=$mono_gac_prefix MONO_PATH=$mono_paths ";
     verbose_print("Will use Mono (/usr/bin/monodis) for CIL parsing.");
 } elsif (-x "/usr/bin/ildasm") {
     $clr = "pnet";
@@ -207,7 +220,7 @@
 
     # find binaries
     find (sub {
-        return unless -f and /\.(exe|dll)$/;
+        return unless -f && !-l && /\.(exe|dll)$/;
         my $vers;
         my $file = $_;
         if (/\.exe$/) {
@@ -444,6 +457,7 @@
      my $target = $dllmapdata{$name};
      
      if (defined($target)) {
+       $target = basename($target);
        verbose_print("Resolved moduleref via DLL map: $name to: $target");
      } elsif (defined($shlibdata{$name})) {
        verbose_print("Resolved moduleref via direct match in shlibs");




More information about the Pkg-mono-svn-commits mailing list