[libinline-java-perl] 14/398: *** empty log message ***

Jonas Smedegaard dr at jones.dk
Thu Feb 26 11:42:37 UTC 2015


This is an automated email from the git hooks/post-receive script.

js pushed a commit to tag 0.55
in repository libinline-java-perl.

commit f56e931289392f35d9161b8db4d90de93cf7d714
Author: patrick <>
Date:   Tue Mar 6 17:56:41 2001 +0000

    *** empty log message ***
---
 Java.pm | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 108 insertions(+), 24 deletions(-)

diff --git a/Java.pm b/Java.pm
index a264746..f92f49f 100644
--- a/Java.pm
+++ b/Java.pm
@@ -80,7 +80,7 @@ sub register {
     return {
 	    language => 'Java',
 	    aliases => ['JAVA', 'java'],
-	    type => 'compiled',
+	    type => 'interpreted',
 	    suffix => 'jdat',
 	   };
 }
@@ -168,11 +168,24 @@ sub set_classpath {
 	my $o = shift ;
 	my $path = shift ;
 
-	my @cp = split(/:/, join(":", $ENV{CLASSPATH}, $o->{Java}->{JAVA_CLASSPATH}, $path)) ;
+	my @list = () ;
+	if (defined($ENV{CLASSPATH})){
+		push @list, $ENV{CLASSPATH} ;
+	}
+	if (defined($o->{Java}->{JAVA_CLASSPATH})){
+		push @list, $o->{Java}->{JAVA_CLASSPATH} ;
+	}
+	if (defined($path)){
+		push @list, $path ;
+	}
+
+	my $sep = portable("ENV_VAR_PATH_SEP") ;
+
+	my @cp = split(/$sep/, join($sep, @list)) ;
 
 	my %cp = map { ($_ !~ /^\s*$/ ? ($_, 1) : ()) } @cp ;
 
-	$ENV{CLASSPATH} = join(":", keys %cp) ;
+	$ENV{CLASSPATH} = join($sep, keys %cp) ;
 
 	debug("  classpath: " . $ENV{CLASSPATH}) ;
 }
@@ -181,20 +194,24 @@ sub set_classpath {
 sub set_java_bin {
 	my $o = shift ;
 
+	my $sep = portable("PATH_SEP") ;
+
 	my $cjb = $o->{Java}->{JAVA_BIN} ;
 	my $ejb = $ENV{JAVA_BIN} ;
 	if ($cjb){
-		$cjb =~ s/\/+$// ;
+		$cjb =~ s/$sep+$// ;
 		return $o->find_java_bin($cjb) ;
 	}
 	elsif ($ejb) {
-		$ejb =~ s/\/+$// ;
+		$ejb =~ s/$sep+$// ;
 		$o->{Java}->{JAVA_BIN} = $ejb ;
 		return $o->find_java_bin($ejb) ;
 	}
 
 	# Java binaries are assumed to be in $ENV{PATH} ;
-	my @path = split(/:/, $ENV{PATH}) ;
+	my $psep = portable("ENV_VAR_PATH_SEP") ;
+	my @path = split(/$psep/, $ENV{PATH}) ;
+
 	return $o->find_java_bin(@path) ;
 }
 
@@ -207,6 +224,7 @@ sub find_java_bin {
 
 	my $found = 0 ;
 	foreach my $p (@paths){
+		debug("path element: $p") ;
 		if ($p !~ /^\s*$/){
 			$p =~ s/\/+$// ;
 
@@ -220,7 +238,8 @@ sub find_java_bin {
 				}
 			}
 	
-			my $java = $p . "/java" ;
+			my $java = $p . "/java" . portable("EXE_EXTENSION") ;
+			debug("  candidate: $java\n") ;
 			if (-f $java){
 				debug("  found java binaries in $p") ;
 				$o->{Java}->{JAVA_BIN} = $p ;
@@ -343,25 +362,31 @@ sub write_makefile {
 	my $install = "$install_lib/auto/$modpname" ;
     $o->mkpath($install) ;
 
-	my $javac = $o->{Java}->{JAVA_BIN} . "/javac" ;
-	my $java = $o->{Java}->{JAVA_BIN} . "/java" ;
+	my $javac = $o->{Java}->{JAVA_BIN} . "/javac" . portable("EXE_EXTENSION") ;
+	my $java = $o->{Java}->{JAVA_BIN} . "/java" . portable("EXE_EXTENSION") ;
 
 	my $debug = ($Inline::Java::DEBUG ? "true" : "false") ;
 
 	open(MAKE, ">$build_dir/Makefile") or 
 		croak "Can't open $build_dir/Makefile: $!" ;
 
+	my $cp = portable("COPY") ;
+	my $pinstall = portable("RE_FILE", $install) ;
+	my $pjavac = portable("RE_FILE", $javac) ;
+	my $pjava = portable("RE_FILE", $java) ;
+	my $predir = portable("IO_REDIR") ;
+
 	print MAKE "class:\n" ;
-	print MAKE "\t$javac $modfname.java > cmd.out 2<&1\n" ;
-	print MAKE "\tcp -f *.class $install\n" ;
+	print MAKE "\t$pjavac $modfname.java > cmd.out $predir\n" ;
+	print MAKE "\t$cp *.class $pinstall\n" ;
 	print MAKE "\n" ;
 	print MAKE "server:\n" ;
-	print MAKE "\t$javac InlineJavaServer.java > cmd.out 2<&1\n" ;
-	print MAKE "\tcp -f *.class $install\n" ;
+	print MAKE "\t$pjavac InlineJavaServer.java > cmd.out $predir\n" ;
+	print MAKE "\t$cp *.class $pinstall\n" ;
 	print MAKE "\n" ;
 	print MAKE "report:\n" ;
-	print MAKE "\t$java InlineJavaServer report $debug $modfname *.class > cmd.out 2<&1\n" ;
-	print MAKE "\tcp -f *.jdat $install\n" ;
+	print MAKE "\t$pjava InlineJavaServer report $debug $modfname *.class > cmd.out $predir\n" ;
+	print MAKE "\t$cp *.jdat $pinstall\n" ;
 
 	close(MAKE) ;
 
@@ -386,9 +411,9 @@ sub compile {
 	}
 
 	foreach my $cmd (
-		"make -s class",
-		"make -s server",
-		"make -s report",
+		"$make -s class",
+		"$make -s server",
+		"$make -s report",
 		) {
 
 		if ($cmd){
@@ -419,7 +444,11 @@ sub error_msg {
 	my $cwd = shift ;
 
 	my $build_dir = $o->{build_dir} ;
-	my $error = `cat cmd.out` ;
+	my $error = '' ;
+	if (open(CMD, "<cmd.out")){
+		$error = join("", <CMD>) ;
+		close(CMD) ;
+	}
 
 	return <<MSG
 
@@ -473,7 +502,7 @@ sub load {
 	$o->load_jdat(@lines) ;
 	$o->bind_jdat() ;
 
-	my $java = $o->{Java}->{JAVA_BIN} . "/java" ;
+	my $java = $o->{Java}->{JAVA_BIN} . "/java" . portable("EXE_EXTENSION") ;
 	my $cp = $ENV{CLASSPATH} ;
 
 	debug("  cwd is: " . cwd()) ;
@@ -714,8 +743,8 @@ sub setup_socket {
 
 	my $last_words = "timeout\n" ;
 	eval {
-		local $SIG{ALRM} = sub { die($last_words) ; } ;
-		alarm($timeout) ;
+		# local $SIG{ALRM} = sub { die($last_words) ; } ;
+		# alarm($timeout) ;
 
 		while (1){
 			$socket = new IO::Socket::INET(
@@ -727,7 +756,7 @@ sub setup_socket {
 			}
 		}
 
-		alarm(0) ;
+		# alarm(0) ;
 	} ;
 	if ($@){
 		if ($@ eq $last_words){
@@ -759,7 +788,62 @@ sub debug_obj {
 	my $obj = shift ;
 
 	if ($Inline::Java::DEBUG){
-		print STDERR Dumper($obj) ;
+		print STDERR "perl: " . Dumper($obj) ;
+	}
+}
+
+
+sub portable {
+	my $key = shift ;
+	my $val = shift ;
+
+	my $defmap = {
+		EXE_EXTENSION		=>	'',
+		ENV_VAR_PATH_SEP	=>	':',
+		PATH_SEP			=>	'/',
+		COPY				=>  'cp -f',
+		RE_FILE				=>  [],
+		IO_REDIR			=>  '2<&1',
+	} ;
+
+	my $map = {
+		MSWin32 => {
+			EXE_EXTENSION		=>	'.exe',
+			ENV_VAR_PATH_SEP	=>	';',
+			PATH_SEP			=>	'\\',
+			COPY				=>  'copy',
+			RE_FILE				=>  ['/', '\\'],
+			IO_REDIR			=>  '',
+		}
+	} ;
+
+	if (! defined($defmap->{$key})){
+		croak "Portability issue $key not defined!" ;
+	}
+
+	if ((defined($map->{$^O}))&&(defined($map->{$^O}->{$key}))){
+		if ($key =~ /^RE_/){
+			if (defined($val)){
+				my $f = $map->{$^O}->{$key}->[0] ;
+				my $t = $map->{$^O}->{$key}->[1] ;
+				$val =~ s/$f/$t/eg ;
+				return $val ;
+			}
+			else{
+				return undef ;
+			}
+		}
+		else{
+			return $map->{$^O}->{$key} ;
+		}
+	}
+	else{
+		if ($key =~ /^RE_/){
+			return $val ;
+		}
+		else{
+			return $defmap->{$key} ;
+		}
 	}
 }
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libinline-java-perl.git



More information about the Pkg-perl-cvs-commits mailing list