Skip to content
Snippets Groups Projects
Commit 6a76ed3e authored by Jeff Wallace's avatar Jeff Wallace Committed by Jeff Wallace
Browse files

Only include libtsk_jni in the jar file.

parent 6f188e15
No related branches found
No related tags found
No related merge requests found
......@@ -30,9 +30,6 @@
<available file="./jni/.libs/libtsk_jni.so" property="tsk_so.present"/>
<available file="./jni/.libs/libtsk_jni.a" property="present"/>
<fail unless="present" message="Run make install on The Sleuthkit."/>
<!-- Default location to find zlib and libewf. Overwritten by properties in makefile -->
<property name="lib.z.path" value="/usr/lib"/>
<property name="lib.ewf.path" value="/usr/local/lib"/>
</target>
<!-- OS X -->
......@@ -45,16 +42,10 @@
<property environment="env"/>
<property name="jni.dylib" location="${basedir}/jni/.libs/libtsk_jni.dylib" />
<property name="jni.jnilib" value="libtsk_jni.jnilib" />
<property name="zlib.jni" location="${lib.z.path}/libz.dylib"/>
<property name="libewf.jni" location="${lib.ewf.path}/libewf.dylib"/>
<!-- x86_64 -->
<copy file="${jni.dylib}" tofile="${x86_64}/mac/${jni.jnilib}"/>
<copy file="${zlib.jni}" tofile="${x86_64}/mac/zlib.dylib"/>
<copy file="${libewf.jni}" tofile="${x86_64}/mac/libewf.dylib"/>
<!-- amd64 -->
<copy file="${jni.dylib}" tofile="${amd64}/mac/${jni.jnilib}"/>
<copy file="${zlib.jni}" tofile="${amd64}/mac/zlib.dylib"/>
<copy file="${libewf.jni}" tofile="${amd64}/mac/libewf.dylib"/>
</target>
<!-- Non-OS X -->
......@@ -66,32 +57,18 @@
<target name="copyLinuxLibs" depends="testTSKLibs" if="tsk_so.present">
<property environment="env"/>
<property name="jni.so" location="${basedir}/jni/.libs/libtsk_jni.so" />
<property name="zlib.so" location="${lib.z.path}/libz.so"/>
<property name="libewf.so" location="${lib.ewf.path}/libewf.so"/>
<!-- x86_64 -->
<copy file="${jni.so}" tofile="${x86_64}/linux/libtsk_jni.so"/>
<copy file="${zlib.so}" tofile="${x86_64}/linux/libz.so"/>
<copy file="${libewf.so}" tofile="${x86_64}/linux/libewf.so"/>
<!-- amd64 -->
<copy file="${jni.so}" tofile="${amd64}/linux/libtsk_jni.so"/>
<copy file="${zlib.so}" tofile="${amd64}/linux/libz.so"/>
<copy file="${libewf.so}" tofile="${amd64}/linux/libewf.so"/>
<!-- x86 -->
<copy file="${jni.so}" tofile="${x86}/linux/libtsk_jni.so"/>
<copy file="${zlib.so}" tofile="${x86}/linux/libz.so"/>
<copy file="${libewf.so}" tofile="${x86}/linux/libewf.so"/>
<!-- i386 -->
<copy file="${jni.so}" tofile="${i386}/linux/libtsk_jni.so"/>
<copy file="${zlib.so}" tofile="${i386}/linux/libz.so"/>
<copy file="${libewf.so}" tofile="${i386}/linux/libewf.so"/>
<!-- i586 -->
<copy file="${jni.so}" tofile="${i586}/linux/libtsk_jni.so"/>
<copy file="${zlib.so}" tofile="${i586}/linux/libz.so"/>
<copy file="${libewf.so}" tofile="${i586}/linux/libewf.so"/>
<!-- i686 -->
<copy file="${jni.so}" tofile="${i686}/linux/libtsk_jni.so"/>
<copy file="${zlib.so}" tofile="${i686}/linux/libz.so"/>
<copy file="${libewf.so}" tofile="${i686}/linux/libewf.so"/>
</target>
<target name="copyLibs" depends="copyLinuxLibs,copyMacLibs" />
......
......@@ -52,65 +52,18 @@
</target>
<target name="copyWinLibs64" depends="checkLibDirs" if="win64.exists">
<property name="win64dir" location="${basedir}/../../win32/x64/${tsk.config}" />
<property name="tsk.jni.64" location="${basedir}/../../win32/x64/${tsk.config}/libtsk_jni.dll" />
<fileset dir="${win64dir}" id="win64dlls">
<include name="*.dll" />
</fileset>
<fileset dir="${crt}/win64" id="crt64dlls">
<include name="*.dll" />
</fileset>
<copy todir="${amd64}/win" overwrite="true">
<fileset refid="win64dlls" />
</copy>
<copy todir="${amd64}/win" overwrite="true">
<fileset refid="crt64dlls" />
</copy>
<copy todir="${x86_64}/win" overwrite="true">
<fileset refid="win64dlls" />
</copy>
<copy todir="${x86_64}/win" overwrite="true">
<fileset refid="crt64dlls" />
</copy>
<copy file="${tsk.jni.64}" todir="${amd64}/win" overwrite="true"/>
<copy file="${tsk.jni.64}" todir="${x86_64}/win" overwrite="true"/>
</target>
<target name="copyWinLibs32" depends="checkLibDirs" if="win32.exists">
<property name="win32dir" location="${basedir}/../../win32/${tsk.config}" />
<fileset dir="${win32dir}" id="win32dlls">
<include name="*.dll" />
</fileset>
<fileset dir="${crt}/win32" id="crt32dlls">
<include name="*.dll" />
</fileset>
<copy todir="${i386}/win" overwrite="true">
<fileset refid="win32dlls" />
</copy>
<copy todir="${i386}/win" overwrite="true">
<fileset refid="crt32dlls" />
</copy>
<copy todir="${x86}/win" overwrite="true">
<fileset refid="win32dlls" />
</copy>
<copy todir="${x86}/win" overwrite="true">
<fileset refid="crt32dlls" />
</copy>
<copy todir="${i586}/win" overwrite="true">
<fileset refid="win32dlls" />
</copy>
<copy todir="${i586}/win" overwrite="true">
<fileset refid="crt32dlls" />
</copy>
<property name="tsk.jni.32" location="${basedir}/../../win32/${tsk.config}/libtsk_jni.dll" />
<copy todir="${i686}/win" overwrite="true">
<fileset refid="win32dlls" />
</copy>
<copy todir="${i686}/win" overwrite="true">
<fileset refid="crt32dlls" />
</copy>
<copy file="${tsk.jni.32}" todir="${i386}/win" overwrite="true"/>
<copy file="${tsk.jni.32}" todir="${x86}/win" overwrite="true"/>
<copy file="${tsk.jni.32}" todir="${i586}/win" overwrite="true"/>
<copy file="${tsk.jni.32}" todir="${i686}/win" overwrite="true"/>
</target>
</project>
......@@ -27,7 +27,6 @@
<property name="i386" location="build/NATIVELIBS/i386" />
<property name="i586" location="build/NATIVELIBS/i586" />
<property name="i686" location="build/NATIVELIBS/i686"/>
<property name="crt" location="${basedir}/crt" />
<path id="libraries">
<fileset dir="${lib}">
......
......@@ -34,10 +34,6 @@
public class LibraryUtils {
public static final String[] EXTS = new String[] { ".so", ".dylib", ".dll", ".jnilib" };
public static final Lib[] CRT_LIBS = new Lib[] { Lib.MSVCP, Lib.MSVCR };
public static final Lib[] OTHER_LIBS = new Lib[] { Lib.ZLIB, Lib.LIBEWF };
/**
* The libraries the TSK Datamodel needs.
......@@ -66,51 +62,6 @@ public String getUnixName() {
}
}
/**
* Load all libraries needed for the current platform except the TSK JNI.
*
* @return
*/
public static boolean loadAuxilliaryLibs() {
System.out.println("Java lib path: " + System.getProperty("java.library.path"));
boolean loaded = true;
if (LibraryUtils.isWindows()) {
loaded = LibraryUtils.loadCRTLibs();
}
// Always try to load from jar first.
for(Lib lib : LibraryUtils.getLibs()) {
// Always try to load from jar first.
loaded = LibraryUtils.loadLibFromJar(lib);
if (!loaded) {
// if that fails, try to load from system
loaded = loadLibFromSystem(lib);
}
if (!loaded) {
System.out.println("SleuthkitJNI: failed to load " + lib.getLibName());
} else {
System.out.println("SleuthkitJNI: loaded " + lib.getLibName());
}
}
return loaded;
}
/**
* Try to load the given Library from the System path.
*
* @param lib
* @return
*/
private static boolean loadLibFromSystem(Lib lib) {
String libName = (isWindows() ? lib.getLibName() : lib.getUnixName());
try {
System.loadLibrary(libName);
} catch (UnsatisfiedLinkError e) {
return false;
}
return true;
}
/**
* Load the Sleuthkit JNI.
*
......@@ -125,42 +76,6 @@ public static boolean loadSleuthkitJNI() {
}
return loaded;
}
/** Load the CRT Libraries.
*
* @return
*/
private static boolean loadCRTLibs() {
boolean loaded = true;
try {
// on windows force loading ms crt dependencies first
// in case linker can't find them on some systems
// Note: if shipping with a different CRT version, this will only print a warning
// and try to use linker mechanism to find the correct versions of libs.
// We should update this if we officially switch to a new version of CRT/compiler
for(LibraryUtils.Lib crt : LibraryUtils.getCRTLibs()) {
loaded = LibraryUtils.loadLibFromJar(crt);
if(!loaded) {
System.out.println("SleuthkitJNI: failed to load " + crt.getLibName());
} else {
System.out.println("SleuthkitJNI: loaded " + crt.getLibName());
}
}
} catch (UnsatisfiedLinkError e1) {
System.out.println(e1.toString());
try {
//Try to load from system path.
System.out.println("Can't find CRT libraries, attempting to load from System.loadLibrary");
System.loadLibrary("msvcr100");
System.loadLibrary("msvcp100");
loaded = true;
} catch (UnsatisfiedLinkError e2) {
System.out.println("SleuthkitJNI: error loading CRT libraries, " + e2.toString());
loaded = false;
}
}
return loaded;
}
/**
* Get the name of the current platform.
......@@ -265,12 +180,4 @@ private static boolean loadLibFromJar(Lib library) {
}
return true;
}
private static Lib[] getCRTLibs() {
return CRT_LIBS;
}
private static Lib[] getLibs() {
return OTHER_LIBS;
}
}
......@@ -118,7 +118,6 @@ public class SleuthkitJNI {
//Linked library loading
static {
LibraryUtils.loadAuxilliaryLibs();
LibraryUtils.loadSleuthkitJNI();
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment