moved all of the downloaded and generated stuff to a single folder

This makes the separation between our source code and everything else
much cleaner. It also makes it easier to ignore all of the output code
etc etc. The deploy etc commands haven't been tested yet, but I don't
think I broke them.
diff --git a/aos/build/download_externals.sh b/aos/build/download_externals.sh
index 13c8eff..be77aa5 100755
--- a/aos/build/download_externals.sh
+++ b/aos/build/download_externals.sh
@@ -2,8 +2,19 @@
 
 set -e
 
-AOS=`dirname $0`/..
-EXTERNALS=${AOS}/externals
+AOS=$(readlink -f $(dirname $0)/..)
+. $(dirname $0)/tools_config
+
+TMPDIR=/tmp/$$-aos-tmpdir
+mkdir -p ${EXTERNALS}
+mkdir -p ${COMPILED}
+
+# get and build ninja
+[ -d ${NINJA_DIR} ] || git clone --branch ${NINJA_RELEASE} https://github.com/martine/ninja.git ${NINJA_DIR}
+[ -x ${NINJA} ] || ${NINJA_DIR}/bootstrap.py
+
+# get gyp
+[ -d ${GYP_DIR} ] || ( svn co http://gyp.googlecode.com/svn/trunk -r ${GYP_REVISION} ${GYP_DIR} && patch -p1 -d ${GYP_DIR} < ${AOS}/externals/gyp.patch )
 
 # get gccdist
 GCCDIST=${EXTERNALS}/gccdist
@@ -32,7 +43,7 @@
 LIBJPEG_VERSION=8d
 LIBJPEG_DIR=${EXTERNALS}/jpeg-${LIBJPEG_VERSION}
 # NOTE: this directory ends up in #include names
-LIBJPEG_PREFIX=${EXTERNALS}/libjpeg
+LIBJPEG_PREFIX=${COMPILED}/libjpeg
 LIBJPEG_LIB=${LIBJPEG_PREFIX}/lib/libjpeg.a
 LIBJPEG_TAR=${EXTERNALS}/jpegsrc.v${LIBJPEG_VERSION}.tar.gz
 [ -f ${LIBJPEG_TAR} ] || wget http://www.ijg.org/files/jpegsrc.v${LIBJPEG_VERSION}.tar.gz -O ${LIBJPEG_TAR}
@@ -41,26 +52,26 @@
 
 # get gtest
 GTEST_VERSION=1.6.0
-GTEST_DIR=${EXTERNALS}/gtest-${GTEST_VERSION}-p1
+GTEST_DIR=${EXTERNALS}/gtest-${GTEST_VERSION}
 GTEST_ZIP=${EXTERNALS}/gtest-${GTEST_VERSION}.zip
-TMPDIR=/tmp/$$-aos-tmpdir
 [ -f ${GTEST_ZIP} ] || wget http://googletest.googlecode.com/files/gtest-${GTEST_VERSION}.zip -O ${GTEST_ZIP}
-[ -d ${GTEST_DIR} ] || ( unzip ${GTEST_ZIP} -d ${TMPDIR} && mv ${TMPDIR}/gtest-${GTEST_VERSION} ${GTEST_DIR} && cd ${GTEST_DIR} && patch -p1 < ../gtest.patch )
+[ -d ${GTEST_DIR} ] || ( unzip ${GTEST_ZIP} -d ${TMPDIR} && mv ${TMPDIR}/gtest-${GTEST_VERSION} ${GTEST_DIR} && cd ${GTEST_DIR} && patch -p1 < ${AOS}/externals/gtest.patch )
 
 # get and build ctemplate
 # This is the next revision after the 2.2 release and it only adds spaces to
 # make gcc 4.7 with --std=c++11 happy (user-defined string literals...).
 CTEMPLATE_VERSION=129
-CTEMPLATE_DIR=${EXTERNALS}/ctemplate-${CTEMPLATE_VERSION}
+CTEMPLATE_TAR=${EXTERNALS}/ctemplate-${CTEMPLATE_VERSION}.tar.gz
+CTEMPLATE_DIR=${COMPILED}/ctemplate-${CTEMPLATE_VERSION}
 CTEMPLATE_PREFIX=${CTEMPLATE_DIR}-prefix
 CTEMPLATE_LIB=${CTEMPLATE_PREFIX}/lib/libctemplate.a
 CTEMPLATE_URL=http://ctemplate.googlecode.com
 if [[ "${CTEMPLATE_VERSION}" =~ /\./ ]]; then
 	CTEMPLATE_URL=${CTEMPLATE_URL}/files/ctemplate-${CTEMPLATE_VERSION}.tar.gz
-	[ -f ${CTEMPLATE_DIR}.tar.gz ] || \
-		wget ${CTEMPLATE_URL} -O ${CTEMPLATE_DIR}.tar.gz
+	[ -f ${CTEMPLATE_TAR} ] || \
+		wget ${CTEMPLATE_URL} -O ${CTEMPLATE_TAR}
 	[ -d ${CTEMPLATE_DIR} ] || ( mkdir ${CTEMPLATE_DIR} && tar \
-		--strip-components=1 -C ${CTEMPLATE_DIR} -xf ${CTEMPLATE_DIR}.tar.gz )
+		--strip-components=1 -C ${CTEMPLATE_DIR} -xf ${CTEMPLATE_TAR} )
 else
 	CTEMPLATE_URL=${CTEMPLATE_URL}/svn/trunk
 	[ -d ${CTEMPLATE_DIR} ] || \
@@ -73,13 +84,14 @@
 
 # get and build gflags
 GFLAGS_VERSION=2.0
-GFLAGS_DIR=${EXTERNALS}/gflags-${GFLAGS_VERSION}
+GFLAGS_TAR=${EXTERNALS}/gflags-${GFLAGS_VERSION}.tar.gz
+GFLAGS_DIR=${COMPILED}/gflags-${GFLAGS_VERSION}
 GFLAGS_PREFIX=${GFLAGS_DIR}-prefix
 GFLAGS_LIB=${GFLAGS_PREFIX}/lib/libgflags.a
 GFLAGS_URL=https://gflags.googlecode.com/files/gflags-${GFLAGS_VERSION}.tar.gz
-[ -f ${GFLAGS_DIR}.tar.gz ] || wget ${GFLAGS_URL} -O ${GFLAGS_DIR}.tar.gz
+[ -f ${GFLAGS_TAR} ] || wget ${GFLAGS_URL} -O ${GFLAGS_TAR}
 [ -d ${GFLAGS_DIR} ] || ( mkdir ${GFLAGS_DIR} && tar \
-  --strip-components=1 -C ${GFLAGS_DIR} -xf ${GFLAGS_DIR}.tar.gz )
+  --strip-components=1 -C ${GFLAGS_DIR} -xf ${GFLAGS_TAR} )
 [ -f ${GFLAGS_LIB} ] || env -i PATH="${PATH}" \
   CFLAGS='-m32' CXXFLAGS='-m32' LDFLAGS='-m32' \
   bash -c "cd ${GFLAGS_DIR} && ./configure \
@@ -88,13 +100,14 @@
 # get and build libusb
 LIBUSB_VERSION=1.0.9
 LIBUSB_APIVERSION=1.0
-LIBUSB_DIR=${EXTERNALS}/libusb-${LIBUSB_VERSION}
+LIBUSB_TAR=${EXTERNALS}/libusb-${LIBUSB_VERSION}.tar.bz2
+LIBUSB_DIR=${COMPILED}/libusb-${LIBUSB_VERSION}
 LIBUSB_PREFIX=${LIBUSB_DIR}-prefix
 LIBUSB_LIB=${LIBUSB_PREFIX}/lib/libusb-${LIBUSB_APIVERSION}.a
 LIBUSB_URL=http://sourceforge.net/projects/libusb/files/libusb-${LIBUSB_APIVERSION}/libusb-${LIBUSB_VERSION}/libusb-${LIBUSB_VERSION}.tar.bz2
-[ -f ${LIBUSB_DIR}.tar.bz2 ] || wget ${LIBUSB_URL} -O ${LIBUSB_DIR}.tar.bz2
+[ -f ${LIBUSB_TAR} ] || wget ${LIBUSB_URL} -O ${LIBUSB_TAR}
 [ -d ${LIBUSB_DIR} ] || ( mkdir ${LIBUSB_DIR} && tar \
-  --strip-components=1 -C ${LIBUSB_DIR} -xf ${LIBUSB_DIR}.tar.bz2 )
+  --strip-components=1 -C ${LIBUSB_DIR} -xf ${LIBUSB_TAR} )
 [ -f ${LIBUSB_LIB} ] || env -i PATH="${PATH}" \
   CFLAGS='-m32' CXXFLAGS='-m32' LDFLAGS='-m32' \
   bash -c "cd ${LIBUSB_DIR} && ./configure \
@@ -109,14 +122,15 @@
 
 # get and build libevent
 LIBEVENT_VERSION=2.0.21
-LIBEVENT_DIR=${EXTERNALS}/libevent-${LIBEVENT_VERSION}
+LIBEVENT_TAR=${EXTERNALS}/libevent-${LIBEVENT_VERSION}.tar.gz
+LIBEVENT_DIR=${COMPILED}/libevent-${LIBEVENT_VERSION}
 LIBEVENT_PREFIX=${LIBEVENT_DIR}-prefix
 LIBEVENT_LIB=${LIBEVENT_PREFIX}/lib/libevent.a
 LIBEVENT_URL=https://github.com/downloads/libevent/libevent
 LIBEVENT_URL=${LIBEVENT_URL}/libevent-${LIBEVENT_VERSION}-stable.tar.gz
-[ -f ${LIBEVENT_DIR}.tar.gz ] || wget ${LIBEVENT_URL} -O ${LIBEVENT_DIR}.tar.gz
+[ -f ${LIBEVENT_TAR} ] || wget ${LIBEVENT_URL} -O ${LIBEVENT_TAR}
 [ -d ${LIBEVENT_DIR} ] || ( mkdir ${LIBEVENT_DIR} && tar \
-  --strip-components=1 -C ${LIBEVENT_DIR} -xf ${LIBEVENT_DIR}.tar.gz )
+  --strip-components=1 -C ${LIBEVENT_DIR} -xf ${LIBEVENT_TAR} )
 [ -f ${LIBEVENT_LIB} ] || env -i PATH="${PATH}" \
   CFLAGS='-m32' CXXFLAGS='-m32' LDFLAGS='-m32' \
   bash -c "cd ${LIBEVENT_DIR} && ./configure \
@@ -124,15 +138,18 @@
 
 # get and build libcdd
 LIBCDD_VERSION=094g
-LIBCDD_DIR=${EXTERNALS}/libcdd-${LIBCDD_VERSION}
+LIBCDD_TAR=${EXTERNALS}/libcdd-${LIBCDD_VERSION}.tar.gz
+LIBCDD_DIR=${COMPILED}/libcdd-${LIBCDD_VERSION}
 LIBCDD_PREFIX=${LIBCDD_DIR}-prefix
 LIBCDD_LIB=${LIBCDD_PREFIX}/lib/libcdd.a
 LIBCDD_URL=ftp://ftp.ifor.math.ethz.ch/pub/fukuda/cdd/cddlib-${LIBCDD_VERSION}.tar.gz
-[ -f ${LIBCDD_DIR}.tar.gz ] || \
-        wget ${LIBCDD_URL} -O ${LIBCDD_DIR}.tar.gz
+[ -f ${LIBCDD_TAR} ] || \
+        wget ${LIBCDD_URL} -O ${LIBCDD_TAR}
 [ -d ${LIBCDD_DIR} ] || ( mkdir ${LIBCDD_DIR} && tar \
-        --strip-components=1 -C ${LIBCDD_DIR} -xf ${LIBCDD_DIR}.tar.gz )
+        --strip-components=1 -C ${LIBCDD_DIR} -xf ${LIBCDD_TAR} )
 [ -f ${LIBCDD_LIB} ] || env -i PATH="${PATH}" \
         CFLAGS='-m32' CXXFLAGS='-m32' LDFLAGS='-m32' \
         bash -c "cd ${LIBCDD_DIR} && ./configure --disable-shared \
         --prefix=`readlink -f ${LIBCDD_PREFIX}` && make && make install"
+
+rm -rf ${TMPDIR}