Support for self-reliant distinguishing between lib and lib64.
authorZdeněk Šustr <sustr4@cesnet.cz>
Thu, 25 Feb 2010 16:07:08 +0000 (16:07 +0000)
committerZdeněk Šustr <sustr4@cesnet.cz>
Thu, 25 Feb 2010 16:07:08 +0000 (16:07 +0000)
- Thanks to Eamonn ;-)

org.glite.lb/configure

index c645dc5..052a801 100755 (executable)
@@ -26,7 +26,7 @@ my $lbjp_tag = '';
 my $jp_tag = '';
 my $sec_tag = '';
 my $jobid_tag = '';
-my $libdir = 'lib';
+my $libdir = getlibdir();
 
 my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient harvester/;
 my %enable_nodes;
@@ -697,6 +697,52 @@ sub gsoap_version {
        return $gsoap_version;
 }
 
+sub getlibdir {
+        $libdir="lib";
+
+        open INP, "uname -s | "; # Check kernel name
+        $kname= <INP>;
+        chomp($kname);
+        close INP;
+
+        if ( $kname == "Linux") {
+                $arch = ("x86_64\npowerpc\nppc64\n");
+
+                open INP, "uname -p | "; # Check processor type
+                $procname= <INP>;
+                chomp($procname);
+                close INP;
+
+                if ($arch =~/^$procname\n/) {
+                        $libdir="lib64";
+                        return ($libdir); }
+
+                open INP, "uname -m | "; # Check machine hardware
+                $machname= <INP>;
+                chomp($machname);
+                close INP;
+
+                if ($arch =~/^$machname\n/) {
+                        $libdir="lib64";
+                        return ($libdir); }
+
+                # special cases (hyperlink lib64, Debian)
+                if (-l "/usr/lib64") {
+                        $libdir="lib"; }
+
+                # if /usr/lib64 doesn't exist at all (AIX)
+                unless ( -e "/usr/lib64" ) {
+                        $libdir="lib"; }
+        }
+
+        if ( $kname == "SunOS") {
+                if (-e "/usr/lib/64") {
+                $libdir="lib/64"; }
+        }
+
+        return $libdir;
+}
+
 
 sub usage {
        my @ext = keys %extern_prefix;