summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2014-10-15 16:10:11 -0700
committerKeith Packard <keithp@keithp.com>2014-10-24 21:24:31 -0700
commite2562ee43b8558df0836217ea3a187b36e2669b3 (patch)
tree2b5071d7409ff62a7b90a1c1a3bc04f031658ddb
parent88df7cd314269fa1debe226b49b7e4e9dc238d8e (diff)
altosuilib: Try to detect the architecture when loading JNI lib
Look at sun.arch.data.model and os.arch to try and load the right libaltos file the first time. Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--altosuilib/AltosUILib.java16
1 files changed, 14 insertions, 2 deletions
diff --git a/altosuilib/AltosUILib.java b/altosuilib/AltosUILib.java
index 8fa7dfe6..ccadf07c 100644
--- a/altosuilib/AltosUILib.java
+++ b/altosuilib/AltosUILib.java
@@ -82,11 +82,23 @@ public class AltosUILib extends AltosLib {
static public boolean loaded_library = false;
static public boolean has_bluetooth = false;
- static final String[] library_names = { "altos", "altos32", "altos64" };
+ static final String[] library_names_32 = { "altos", "altos32", "altos64" };
+ static final String[] library_names_64 = { "altos", "altos64", "altos32" };
public static boolean load_library() {
if (!initialized) {
- for (String name : library_names) {
+ String model = System.getProperty("sun.arch.data.model", "missing");
+ boolean is_64 = false;
+ if (model.equals("64")) {
+ is_64 = true;
+ } else if (model.equals("32")) {
+ ;
+ } else {
+ String arch = System.getProperty("os.arch", "missing");
+ if (arch.endsWith("64"))
+ is_64 = true;
+ }
+ for (String name : is_64 ? library_names_64 : library_names_32) {
try {
System.loadLibrary(name);
libaltos.altos_init();