Index: java/org/libjpegturbo/turbojpeg/TJLoader.java.tmpl |
diff --git a/tjutil.c b/java/org/libjpegturbo/turbojpeg/TJLoader.java.tmpl |
similarity index 59% |
copy from tjutil.c |
copy to java/org/libjpegturbo/turbojpeg/TJLoader.java.tmpl |
index 6618d158cf72965886fca304b337a068aa339e83..5ef31182b8be15d07a43f992b728433fc11f46c4 100644 |
--- a/tjutil.c |
+++ b/java/org/libjpegturbo/turbojpeg/TJLoader.java.tmpl |
@@ -1,5 +1,5 @@ |
/* |
- * Copyright (C)2011 D. R. Commander. All Rights Reserved. |
+ * Copyright (C)2011-2013 D. R. Commander. All Rights Reserved. |
* |
* Redistribution and use in source and binary forms, with or without |
* modification, are permitted provided that the following conditions are met: |
@@ -26,41 +26,34 @@ |
* POSSIBILITY OF SUCH DAMAGE. |
*/ |
-#ifdef _WIN32 |
- |
-#include <windows.h> |
- |
-static double getfreq(void) |
-{ |
- LARGE_INTEGER freq; |
- if(!QueryPerformanceFrequency(&freq)) return 0.0; |
- return (double)freq.QuadPart; |
-} |
- |
-static double f=-1.0; |
- |
-double gettime(void) |
-{ |
- LARGE_INTEGER t; |
- if(f<0.0) f=getfreq(); |
- if(f==0.0) return (double)GetTickCount()/1000.; |
- else |
- { |
- QueryPerformanceCounter(&t); |
- return (double)t.QuadPart/f; |
- } |
+package org.libjpegturbo.turbojpeg; |
+ |
+final class TJLoader { |
+ static void load() { |
+ try { |
+ System.loadLibrary("turbojpeg"); |
+ } catch (java.lang.UnsatisfiedLinkError e) { |
+ String os = System.getProperty("os.name").toLowerCase(); |
+ if (os.indexOf("mac") >= 0) { |
+ try { |
+ System.load("%{__libdir}/libturbojpeg.jnilib"); |
+ } catch (java.lang.UnsatisfiedLinkError e2) { |
+ System.load("/usr/lib/libturbojpeg.jnilib"); |
+ } |
+ } else { |
+ try { |
+ System.load("%{__libdir}/libturbojpeg.so"); |
+ } catch (java.lang.UnsatisfiedLinkError e3) { |
+ String libdir = "%{__libdir}"; |
+ if (libdir.equals("/opt/libjpeg-turbo/lib64")) { |
+ System.load("/opt/libjpeg-turbo/lib32/libturbojpeg.so"); |
+ } else if (libdir.equals("/opt/libjpeg-turbo/lib32")) { |
+ System.load("/opt/libjpeg-turbo/lib64/libturbojpeg.so"); |
+ } else { |
+ throw e3; |
+ } |
+ } |
+ } |
+ } |
+ } |
} |
- |
-#else |
- |
-#include <stdlib.h> |
-#include <sys/time.h> |
- |
-double gettime(void) |
-{ |
- struct timeval tv; |
- if(gettimeofday(&tv, NULL)<0) return 0.0; |
- else return (double)tv.tv_sec+((double)tv.tv_usec/1000000.); |
-} |
- |
-#endif |