sybperl

 view release on metacpan or  search on metacpan

util/config.pl  view on Meta::CPAN


sub getExtraLibs {
  my $dir = shift;
  my $cfg = shift;
  my $syb_version = shift;

  my $lib = "$dir/lib";

  #print "Checking extra libs for version $syb_version in $lib\n";

  opendir(DIR, "$lib") || die "Can't access $lib: $!";
  my %files = map { $_ =~ s/lib([^\.]+)\..*/$1/; $_ => 1 } grep(/lib/ && -f "$dir/lib/$_", readdir(DIR));
  closedir(DIR);

  my %x = map {$_ => 1} split(' ', $cfg);
  my $f;
  my $dlext = $Config{dlext} || 'so';
  foreach $f (keys(%x)) {
	  my $file = $f;
	  $file =~ s/-l//;
	  next if($file =~ /^-/);
	  delete($x{$f}) unless (exists($files{$file}) || $f =~ /dnet_stub/);
  }
    
  foreach $f (qw(insck tli sdna dnet_stub tds skrb gss)) {
	  $x{"-l$f"} = 1 if exists $files{$f}  && -f "$dir/lib/lib$f.$dlext";
  }
  if($syb_version gt '11') {
	  delete($x{-linsck});
	  delete($x{-ltli});
  }
#    if($version ge '12.5.1') {
#	delete($x{-lskrb});
#    }

  join(' ', keys(%x));
}
    
	
sub checkLib {
  my $dir = shift;

  opendir(DIR, "$dir/lib") || die "Can't access $dir/lib: $!";
  my @files = grep(/libct|libsybct/i, readdir(DIR));
  closedir(DIR);
  if(grep(/libsybct/, @files)) {
	  $newlibnames = 1;
  } else {
	  $newlibnames = 0;
  }

  scalar(@files);
}

sub putEnv {
  my $sattr = shift;
  my $data  = shift;

  my $replace = '';

  if($$sattr{EMBED_SYBASE}) {
  	if($$sattr{EMBED_SYBASE_USE_HOME}) {
	    $replace = qq(
BEGIN {
    if(!\$ENV{'SYBASE'}) {
	    if(\@_ = getpwnam("sybase")) {
	      \$ENV{'SYBASE'} = \$_[7];
	    } else {
	      \$ENV{'SYBASE'} = '$$sattr{SYBASE}';
	    }
    }
}
);
	} else {
    $replace = qq(
BEGIN {
    if(!\$ENV{'SYBASE'}) {
	    \$ENV{'SYBASE'} = '$$sattr{SYBASE}';
    }
}
);
	  }
  }

  $data =~ s/\#__SYBASE_START.*\#__SYBASE_END/\#__SYBASE_START\n$replace\n\#__SYBASE_END/s;

  $data;
}

sub getPkgVersion {
  my $file = shift;

  my $ver;

  open(IN, $file) || die "Can't open $file: $!";
  while(<IN>) {
	  chomp;
	  if(/VERSION\s*=\s*(\S+)/) {
	    $ver = $1;
	  }
  }
  close(IN);

  #warn "Got version $ver from $file\n";
  warn "Can't find VERSION in $file!\n" unless $ver;

  return $ver;
}

1;



( run in 0.512 second using v1.01-cache-2.11-cpan-71847e10f99 )