From 00349eee28b12a7274dbe0399d86129c16967c76 Mon Sep 17 00:00:00 2001
From: Jeff Wallace <wallace.je@husky.neu.edu>
Date: Fri, 27 Sep 2013 10:59:55 -0400
Subject: [PATCH] Added logic to pass ewf and zlib directories to ant build
 file.

---
 bindings/java/Makefile.am    | 15 ++++++++++++++-
 bindings/java/build-unix.xml | 25 +++++++++++++++++++++----
 configure.ac                 | 14 +++++++++++++-
 3 files changed, 48 insertions(+), 6 deletions(-)

diff --git a/bindings/java/Makefile.am b/bindings/java/Makefile.am
index b6b196c62..7b41257ab 100644
--- a/bindings/java/Makefile.am
+++ b/bindings/java/Makefile.am
@@ -1,11 +1,24 @@
 SUBDIRS = jni
 
+Z_PATH=@Z_PATH@
+EWF_PATH=@EWF_PATH@
+ANT_PROPS=
+
+if X_ZLIB
+  ANT_PROPS+=-Dlib.z.path=$(Z_PATH)
+endif
+
+if X_LIBEWF
+  ANT_PROPS+=-Dlib.ewf.path=$(EWF_PATH)
+endif
+
 tsk_jar = $(top_builddir)/bindings/java/dist/Tsk_DataModel.jar
 jardir = $(datadir)/java
 jar_DATA = $(tsk_jar)
 
+
 $(tsk_jar): 
-	ant dist	
+	ant dist $(ANT_PROPS) 
 
 CLEANFILES = $(tsk_jar)
 
diff --git a/bindings/java/build-unix.xml b/bindings/java/build-unix.xml
index f1451406e..81edd272e 100644
--- a/bindings/java/build-unix.xml
+++ b/bindings/java/build-unix.xml
@@ -30,6 +30,9 @@
         <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 -->
@@ -42,16 +45,16 @@
         <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="/usr/lib/libz.dylib"/>
-		<property name="libewf.jni" location="/usr/local/lib/libewf.dylib"/>
+		<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="${x86_64}/mac/zlib.dylib"/>
-		<copy file="${libewf.jni}" tofile="${x86_64}/mac/libewf.dylib"/>
+		<copy file="${zlib.jni}" tofile="${amd64}/mac/zlib.dylib"/>
+		<copy file="${libewf.jni}" tofile="${amd64}/mac/libewf.dylib"/>
     </target>
 
     <!-- Non-OS X -->
@@ -63,18 +66,32 @@
 	<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" />
diff --git a/configure.ac b/configure.ac
index 8d6ed482c..5f5aea254 100644
--- a/configure.ac
+++ b/configure.ac
@@ -153,6 +153,12 @@ AS_IF(
     [AC_MSG_NOTICE([NOT checking for zlib because with_zlib is no])]
 )
 
+AM_CONDITIONAL([X_ZLIB],[test "x$with_zlib" != "xno" && test "x$with_zlib" != "xyes"])
+AS_IF([test "x$with_zlib" != "xno"],
+   [Z_PATH="${with_zlib}/lib"],
+   [AC_MSG_NOTICE([failed to make Z_PATH])]
+)
+AC_SUBST(Z_PATH, $Z_PATH)
 
 #needed for sqllite
 AC_CHECK_LIB(dl, dlopen) 
@@ -181,10 +187,16 @@ AS_IF([test "x$with_libewf" != "xno"],
     )]
     # Check for the header file first to make sure they have the dev install
     [AC_CHECK_HEADERS([libewf.h],
-      [AC_CHECK_LIB([ewf], [libewf_get_version])]
+      [AC_CHECK_LIB([ewf], [libewf_get_version], [], [NO_LIBEWF=true])]
     )]
 )
 
+AM_CONDITIONAL([X_LIBEWF],[test "x$with_libewf" != "xno" && test "x$with_libewf" != "xyes"])
+AS_IF([test "x$with_libewf" != "xno"],
+   [EWF_PATH="${with_libewf}/lib"],
+)
+AC_SUBST(EWF_PATH, $EWF_PATH)
+   
 # sqlite requires pthread libraries - this was copied from its configure.ac
 # AC_SEARCH_LIBS(pthread_create, pthread)
 AC_SEARCH_LIBS(dlopen, dl)
-- 
GitLab