Fix some paths in mainDexClasses.
- path for dx.jar in SDK case
- path for proguard.sh in PROGUARD_HOME case.
- there could be error at andling path with spaces.
Change-Id: I56be6e5a1aaf26bac2a16ba32bf152563ab6afc3
diff --git a/dx/etc/mainDexClasses b/dx/etc/mainDexClasses
index 39760ec..154a4df 100644
--- a/dx/etc/mainDexClasses
+++ b/dx/etc/mainDexClasses
@@ -17,21 +17,21 @@
function makeTempJar ()
{
local tempDir=/tmp
- if [ ! -e ${tempDir} ]; then
+ if [ ! -e "${tempDir}" ]; then
tempDir=.
fi
local tempfile="${tempDir}/mainDexClasses-$$.tmp.jar"
- if [ -e ${tempfile} ]; then
+ if [ -e "${tempfile}" ]; then
echo "Failed to create temporary file" >2
exit 6
fi
- echo ${tempfile}
+ echo "${tempfile}"
}
function cleanTmp ()
{
- if [ -e ${tmpOut} ] ; then
- rm ${tmpOut}
+ if [ -e "${tmpOut}" ] ; then
+ rm "${tmpOut}"
fi
}
@@ -68,7 +68,7 @@
if [ ! -r "$libdir/$jarfile" ]; then
# set dx.jar location for the SDK case
- libdir=`dirname "$progdir"`/platform-tools/lib
+ libdir="$libdir/lib"
fi
@@ -83,39 +83,47 @@
fi
proguardExec="proguard.sh"
-proguard=${PROGUARD_HOME}/${proguardExec}
+proguard=${PROGUARD_HOME}/bin/${proguardExec}
-if [ ! -r ${proguard} ]; then
+if [ ! -r "${proguard}" ]; then
# set proguard location for the SDK case
proguardBaseDir=`dirname "$progdir"`
- #"${progdir}"/../..
+ # "${progdir}"/../..
proguardBaseDir=`dirname "$proguardBaseDir"`
proguard="${proguardBaseDir}"/tools/proguard/bin/${proguardExec}
fi
-if [ ! -r ${proguard} ]; then
+if [ ! -r "${proguard}" ]; then
# set proguard location for the Android tree case
proguardBaseDir=`dirname "$proguardBaseDir"`
- # ${progdir}"/../../../..
+ # "${progdir}"/../../../..
proguardBaseDir=`dirname "$proguardBaseDir"`
proguard="${proguardBaseDir}"/external/proguard/bin/${proguardExec}
fi
-if [ ! -r ${proguard} ]; then
+if [ ! -r "${proguard}" ]; then
+ proguard="`which proguard`"
+fi
+
+if [ -z "${proguard}" -o ! -r "${proguard}" ]; then
+ proguard="`which ${proguardExec}`"
+fi
+
+if [ -z "${proguard}" -o ! -r "${proguard}" ]; then
echo `basename "$prog"`": can't find ${proguardExec}" 1>&2
exit 1
fi
-shrinkedAndroidJar=${SHRINKED_ANDROID_JAR}
-if [ -z ${shrinkedAndroidJar} ]; then
+shrinkedAndroidJar="${SHRINKED_ANDROID_JAR}"
+if [ -z "${shrinkedAndroidJar}" ]; then
shrinkedAndroidJar=shrinkedAndroid.jar
fi
-if [ ! -r ${shrinkedAndroidJar} ]; then
+if [ ! -r "${shrinkedAndroidJar}" ]; then
shrinkedAndroidJar=${libdir}/${shrinkedAndroidJar}
fi
-if [ ! -r ${shrinkedAndroidJar} ]; then
+if [ ! -r "${shrinkedAndroidJar}" ]; then
echo `basename "$prog"`": can't find shrinkedAndroid.jar" 1>&2
exit 1
fi
@@ -147,4 +155,4 @@
-libraryjars "${shrinkedAndroidJar}" -dontoptimize -dontobfuscate -dontpreverify \
-include "${baserules}" 1>/dev/null || exit 10
-exec java -cp "$jarpath" com.android.multidex.ClassReferenceListBuilder ${tmpOut} ${@} || exit 11
+exec java -cp "$jarpath" com.android.multidex.ClassReferenceListBuilder "${tmpOut}" ${@} || exit 11