[libinline-java-perl] 380/398: ok, portalbe fixes

Jonas Smedegaard dr at jones.dk
Thu Feb 26 11:43:27 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 fe0d8255a47b4e5093776807811fe2bf07454f3c
Author: patrick_leb <>
Date:   Wed May 24 00:38:32 2006 +0000

    ok, portalbe fixes
---
 Java/Makefile.PL |  12 ++--
 Java/Portable.pm | 206 ++++++++++++++++++++++++-------------------------------
 2 files changed, 92 insertions(+), 126 deletions(-)

diff --git a/Java/Makefile.PL b/Java/Makefile.PL
index d9d1ded..c801c02 100644
--- a/Java/Makefile.PL
+++ b/Java/Makefile.PL
@@ -139,14 +139,10 @@ if ($build_jni){
 			map {print "  $_\n"; } @main::SO_DIRS ;
 			print "See README.JNI for more information.\n\n" ;
 
-			@main::I = (
-				Inline::Java::Portable::portable('SUB_FIX_MAKE_QUOTES', 
-					"-I" . $files->{'jni.h'}->{selected}), 
-				Inline::Java::Portable::portable('SUB_FIX_MAKE_QUOTES', 
-					"-I" . $files->{'jni_md.h'}->{selected})) ; 
-			@main::L = (
-				Inline::Java::Portable::portable('SUB_FIX_MAKE_QUOTES', 
-					"-L" . $files->{$jvm_lib}->{selected})) ;
+			@main::I = map { Inline::Java::Portable::portable('SUB_FIX_MAKE_QUOTES', "-I$_") } 
+				($files->{'jni.h'}->{selected}, $files->{'jni_md.h'}->{selected}) ;
+			@main::L = map { Inline::Java::Portable::portable('SUB_FIX_MAKE_QUOTES', "-L$_") }
+				($files->{$jvm_lib}->{selected}) ;
 
 			my $DIR = [] ;
 			if (! defined($build_perl_natives)){
diff --git a/Java/Portable.pm b/Java/Portable.pm
index 26bce6a..b5461a5 100644
--- a/Java/Portable.pm
+++ b/Java/Portable.pm
@@ -130,11 +130,9 @@ sub find_classes_in_dir {
 }
 
 
-sub portable {
-	my $key = shift ;
-	my $val = shift ;
 
-	my $defmap = {
+my $map = {
+	_DEFAULT_ => {
 		EXE_EXTENSION		=>	$Config{exe_ext},
 		GOT_ALARM			=>  $Config{d_alarm} || 0,
 		GOT_FORK			=>	$Config{d_fork} || 0,
@@ -164,131 +162,103 @@ sub portable {
 		J2SDK_BIN			=>  'bin',
 		DEFAULT_J2SDK_DIR	=>  undef,
 		OTHERLDFLAGS		=>  '',
-	} ;
-
-	my $map = {
-		MSWin32 => {
-			ENV_VAR_PATH_SEP_CP	=>	';',
-			# 2>&1 doesn't work under command.com
-			IO_REDIR			=>  ($COMMAND_COM ? '' : undef),
-			MAKE				=>	'nmake',
-			DEV_NULL			=>  'nul',
-			COMMAND_COM			=>	$COMMAND_COM,
-			SO_LIB_PATH_VAR		=>	'PATH',
-			DETACH_OK			=>	0,
-			JVM_LIB				=>	'jvm.lib',
-			JVM_SO				=>	'jvm.dll',
-			GOT_NEXT_FREE_PORT	=>	0,
-			GOT_SYMLINK			=>	0,
-			GOT_SAFE_SIGNALS	=>	0,
-
-# Can't remember what this was supposed to fix, but it breaks
-# when there are spaces in the J2SDK directory...
-#
-#			SUB_FIX_CMD_QUOTES	=>	($COMMAND_COM ? undef : sub {
-#				my $val = shift ;
-#				$val = qq{"$val"} ;
-#				return $val ;
-#			}),
-#
-			SUB_FIX_MAKE_QUOTES	=>	sub {
-				my $val = shift ;
-				$val = qq{"$val"} ;
-				return $val ;
-			},
-			PRE_WHOLE_ARCHIVE	=>  '',
-			POST_WHOLE_ARCHIVE	=>  '',
-		},
-		cygwin => {
-			ENV_VAR_PATH_SEP_CP	=>	';',
-			SUB_FIX_JAVA_PATH	=>	sub {
-				my $val = shift ;
-				if (defined($val)&&($val)){
-					$val = `cygpath -w \"$val\"` ;
-					chomp($val) ;
-				}
-				return $val ;
-			},
-			JVM_LIB				=>	'jvm.lib',
-			JVM_SO				=>	'jvm.dll',
-			BUILD_JNI_BY_DFLT	=>  0,
-		},
-		hpux => {
-			GOT_NEXT_FREE_PORT  =>  0,
-		},
-		solaris => {
-			GOT_NEXT_FREE_PORT  =>  0,
-			PRE_WHOLE_ARCHIVE	=>  '-Wl,-zallextract',
-			POST_WHOLE_ARCHIVE	=>  '-Wl,-zdefaultextract',
-		},
-		aix => {
-			JVM_LIB				=>	"libjvm$Config{lib_ext}",
-			JVM_SO				=>	"libjvm$Config{lib_ext}",
+	},
+	MSWin32 => {
+		ENV_VAR_PATH_SEP_CP	=>	';',
+		# 2>&1 doesn't work under command.com
+		IO_REDIR			=>  ($COMMAND_COM ? '' : undef),
+		MAKE				=>	'nmake',
+		DEV_NULL			=>  'nul',
+		COMMAND_COM			=>	$COMMAND_COM,
+		SUB_FIX_MAKE_QUOTES	=>	sub {
+			my $arg = shift ;
+			$arg = qq{"$arg"} ;
+			return $arg ;
 		},
-		darwin => {
-			# Suggested by Ken Williams, mailing list 2004/07/07
-			SO_EXT				=>	$Config{so},
-			# Andrew Bruno
-			JVM_LIB				=>	"libjvm.dylib",
-			JVM_SO				=>	"libjvm.dylib",
-			PRE_WHOLE_ARCHIVE	=>  '-Wl',
-			POST_WHOLE_ARCHIVE	=>  '-Wl',
-		    GOT_SYMLINK			=>	1,
-            J2SDK_BIN        	=>  'Commands',
-			DEFAULT_J2SDK_DIR   =>  '/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK',
-			# Tim Bunce:
-			OTHERLDFLAGS		=>  '',
+		SO_LIB_PATH_VAR		=>	'PATH',
+		DETACH_OK			=>	0,
+		JVM_LIB				=>	'jvm.lib',
+		JVM_SO				=>	'jvm.dll',
+		GOT_NEXT_FREE_PORT	=>	0,
+		GOT_SYMLINK			=>	0,
+		GOT_SAFE_SIGNALS	=>	0,
+		PRE_WHOLE_ARCHIVE	=>  '',
+		POST_WHOLE_ARCHIVE	=>  '',
+	},
+	cygwin => {
+		ENV_VAR_PATH_SEP_CP	=>	';',
+		SUB_FIX_JAVA_PATH	=>	sub {
+			my $arg = shift ;
+			if (defined($arg)&&($arg)){
+				$arg = `cygpath -w \"$arg\"` ;
+				chomp($arg) ;
+			}
+			return $arg ;
 		},
-	} ;
+		JVM_LIB				=>	'jvm.lib',
+		JVM_SO				=>	'jvm.dll',
+		BUILD_JNI_BY_DFLT	=>  0,
+	},
+	hpux => {
+		GOT_NEXT_FREE_PORT  =>  0,
+	},
+	solaris => {
+		GOT_NEXT_FREE_PORT  =>  0,
+		PRE_WHOLE_ARCHIVE	=>  '-Wl,-zallextract',
+		POST_WHOLE_ARCHIVE	=>  '-Wl,-zdefaultextract',
+	},
+	aix => {
+		JVM_LIB				=>	"libjvm$Config{lib_ext}",
+		JVM_SO				=>	"libjvm$Config{lib_ext}",
+	},
+	darwin => {
+		# Suggested by Ken Williams, mailing list 2004/07/07
+		SO_EXT				=>	$Config{so},
+		# Andrew Bruno
+		JVM_LIB				=>	"libjvm.dylib",
+		JVM_SO				=>	"libjvm.dylib",
+		PRE_WHOLE_ARCHIVE	=>  '-Wl',
+		POST_WHOLE_ARCHIVE	=>  '-Wl',
+	    GOT_SYMLINK			=>	1,
+           J2SDK_BIN        	=>  'Commands',
+		DEFAULT_J2SDK_DIR   =>  '/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK',
+		# Tim Bunce:
+		OTHERLDFLAGS		=>  '',
+	},
+} ;
+
+sub portable {
+	my $key = shift ;
+	my $arg = shift ;
 
-	if (! exists($defmap->{$key})){
+	if (! exists($map->{_DEFAULT_}->{$key})){
 		croak "Portability issue $key not defined!" ;
 	}
 
+	my $val = undef ;
 	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/g ;
-				Inline::Java::Portable::debug(4, "portable: $key => $val for $^O is '$val'") ;
-				return $val ;
-			}
-			else{
-				Inline::Java::Portable::debug(4, "portable: $key for $^O is 'undef'") ;
-				return undef ;
-			}
-		}
-		elsif ($key =~ /^SUB_/){
-			my $sub = $map->{$^O}->{$key} ;
-			if (defined($sub)){
-				$val = $sub->($val) ;
-				Inline::Java::Portable::debug(4, "portable: $key => $val for $^O is '$val'") ;
-				return $val ;
-			}
-			else{
-				return $val ;
-			}
-		}
-		else{
-			Inline::Java::Portable::debug(4, "portable: $key for $^O is '$map->{$^O}->{$key}'") ;
-			return $map->{$^O}->{$key} ;
-		}
+		$val = $map->{$^O}->{$key} ;
 	}
-	else{
-		if ($key =~ /^RE_/){
-			Inline::Java::Portable::debug(4, "portable: $key => $val for $^O is default '$val'") ;
-			return $val ;
-		}
-		if ($key =~ /^SUB_/){
-			Inline::Java::Portable::debug(4, "portable: $key => $val for $^O is default '$val'") ;
-			return $val ;
+	else {
+		$val = $map->{_DEFAULT_}->{$key} ;
+	}
+
+	if ($key =~ /^SUB_/){
+		my $sub = $val ;
+		if (defined($sub)){
+			$arg = $sub->($arg) ;
+			Inline::Java::Portable::debug(4, "portable: $key => $arg for $^O is '$arg'") ;
+			return $arg ;
 		}
-		else{
-			Inline::Java::Portable::debug(4, "portable: $key for $^O is default '$defmap->{$key}'") ;
-			return $defmap->{$key} ;
+		else {
+			Inline::Java::Portable::debug(4, "portable: $key => $arg for $^O is default '$arg'") ;
+			return $arg ;
 		}
 	}
+	else {
+		Inline::Java::Portable::debug(4, "portable: $key for $^O is '$val'") ;
+		return $val ;
+	}
 }
 
 

-- 
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