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