merging in the most recent version of everything else
diff --git a/aos/build/download_externals.sh b/aos/build/download_externals.sh
index 70b3685..5868637 100755
--- a/aos/build/download_externals.sh
+++ b/aos/build/download_externals.sh
@@ -2,8 +2,32 @@
set -e
-AOS=`dirname $0`/..
-EXTERNALS=${AOS}/externals
+AOS=$(readlink -f $(dirname $0)/..)
+. $(dirname $0)/tools_config
+COMPILED=${EXTERNALS}/../compiled-arm
+
+CROSS_COMPILE=arm-linux-gnueabihf-
+
+export CC=${CROSS_COMPILE}gcc-4.7
+export CXX=${CROSS_COMPILE}g++-4.7
+export CFLAGS="-mcpu=cortex-a8 -mfpu=neon"
+export CXXFLAGS="-mcpu=cortex-a8 -mfpu=neon"
+export OBJDUMP=${CROSS_COMPLIE}objdump
+# Flags that should get passed to all configure scripts.
+# Some of them need to set LDFLAGS separately to work around stupid configure
+# scripts, so we can't just set that here.
+CONFIGURE_FLAGS="--host=arm-linux-gnueabihf CC=${CC} CXX=${CXX} CFLAGS=\"${CFLAGS}\" CXXFLAGS=\"${CXXFLAGS}\" OBJDUMP=${OBJDUMP}"
+
+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} ] || env -i "PATH=$PATH" ${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
@@ -30,75 +54,78 @@
# get and build libjpeg
LIBJPEG_VERSION=8d
-LIBJPEG_DIR=${EXTERNALS}/jpeg-${LIBJPEG_VERSION}
+LIBJPEG_DIR=${COMPILED}/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}
[ -d ${LIBJPEG_DIR} ] || ( mkdir ${LIBJPEG_DIR} && tar --strip-components=1 -C ${LIBJPEG_DIR} -xf ${LIBJPEG_TAR} )
-[ -f ${LIBJPEG_LIB} ] || env -i PATH="${PATH}" bash -c "cd ${LIBJPEG_DIR} && CFLAGS='-m32' ./configure --disable-shared --prefix=`readlink -f ${LIBJPEG_PREFIX}` && make && make install"
+[ -f ${LIBJPEG_LIB} ] || bash -c \
+ "cd ${LIBJPEG_DIR} && ./configure --disable-shared \
+ ${CONFIGURE_FLAGS} --prefix=`readlink -f ${LIBJPEG_PREFIX}` \
+ && make && make install"
# get gtest
GTEST_VERSION=1.6.0
-GTEST_DIR=${EXTERNALS}/gtest-${GTEST_VERSION}-p2
+GTEST_DIR=${EXTERNALS}/gtest-${GTEST_VERSION}-p1
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} ] || \
svn checkout ${CTEMPLATE_URL} -r ${CTEMPLATE_VERSION} ${CTEMPLATE_DIR}
fi
-[ -f ${CTEMPLATE_LIB} ] || env -i PATH="${PATH}" \
- CFLAGS='-m32' CXXFLAGS='-m32' LDFLAGS='-m32' \
- bash -c "cd ${CTEMPLATE_DIR} && ./configure --disable-shared \
- --prefix=`readlink -f ${CTEMPLATE_PREFIX}` && make && make install"
+[ -f ${CTEMPLATE_LIB} ] || bash -c "cd ${CTEMPLATE_DIR} && \
+ ./configure --disable-shared \
+ ${CONFIGURE_FLAGS} --prefix=`readlink -f ${CTEMPLATE_PREFIX}` \
+ && make && make install"
# 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 )
-[ -f ${GFLAGS_LIB} ] || env -i PATH="${PATH}" \
- CFLAGS='-m32' CXXFLAGS='-m32' LDFLAGS='-m32' \
- bash -c "cd ${GFLAGS_DIR} && ./configure \
- --prefix=`readlink -f ${GFLAGS_PREFIX}` && make && make install"
+ --strip-components=1 -C ${GFLAGS_DIR} -xf ${GFLAGS_TAR} )
+[ -f ${GFLAGS_LIB} ] || bash -c "cd ${GFLAGS_DIR} && ./configure \
+ ${CONFIGURE_FLAGS} --prefix=`readlink -f ${GFLAGS_PREFIX}` \
+ && make && make install"
# 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 )
-[ -f ${LIBUSB_LIB} ] || env -i PATH="${PATH}" \
- CFLAGS='-m32' CXXFLAGS='-m32' LDFLAGS='-m32' \
- bash -c "cd ${LIBUSB_DIR} && ./configure \
- --prefix=`readlink -f ${LIBUSB_PREFIX}` && make && make install"
+ --strip-components=1 -C ${LIBUSB_DIR} -xf ${LIBUSB_TAR} )
+[ -f ${LIBUSB_LIB} ] || bash -c "cd ${LIBUSB_DIR} && ./configure \
+ ${CONFIGURE_FLAGS} --prefix=`readlink -f ${LIBUSB_PREFIX}` \
+ && make && make install"
# get the LLVM Compiler-RT source
COMPILER_RT_TAG=RELEASE_32/final
@@ -109,15 +136,48 @@
# 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 )
-[ -f ${LIBEVENT_LIB} ] || env -i PATH="${PATH}" \
- CFLAGS='-m32' CXXFLAGS='-m32' LDFLAGS='-m32' \
- bash -c "cd ${LIBEVENT_DIR} && ./configure \
- --prefix=`readlink -f ${LIBEVENT_PREFIX}` && make && make install"
+ --strip-components=1 -C ${LIBEVENT_DIR} -xf ${LIBEVENT_TAR} )
+[ -f ${LIBEVENT_LIB} ] || bash -c "cd ${LIBEVENT_DIR} && ./configure \
+ ${CONFIGURE_FLAGS} --prefix=`readlink -f ${LIBEVENT_PREFIX}` \
+ && make && make install"
+
+# get and build gmp
+GMP_VERSION=5.1.3
+GMP_TAR=${EXTERNALS}/gmp-${GMP_VERSION}.tar.lz
+GMP_DIR=${COMPILED}/gmp-${GMP_VERSION}
+GMP_PREFIX=${GMP_DIR}-prefix
+GMP_LIB=${GMP_PREFIX}/lib/libgmp.a
+GMP_URL=ftp://ftp.gmplib.org/pub/gmp/gmp-${GMP_VERSION}.tar.lz
+[ -f ${GMP_TAR} ] || wget ${GMP_URL} -O ${GMP_TAR}
+[ -d ${GMP_DIR} ] || ( mkdir ${GMP_DIR} && tar \
+ --strip-components=1 -C ${GMP_DIR} -xf ${GMP_TAR} )
+[ -f ${GMP_LIB} ] || bash -c "cd ${GMP_DIR} && ./configure \
+ ${CONFIGURE_FLAGS} --prefix=$(readlink -f ${GMP_PREFIX}) \
+ && make && make install"
+
+# get and build libcdd
+LIBCDD_VERSION=094g
+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_TAR} ] || \
+ wget ${LIBCDD_URL} -O ${LIBCDD_TAR}
+[ -d ${LIBCDD_DIR} ] || ( mkdir ${LIBCDD_DIR} && tar \
+ --strip-components=1 -C ${LIBCDD_DIR} -xf ${LIBCDD_TAR} )
+[ -f ${LIBCDD_LIB} ] || LDFLAGS=-L${GMP_PREFIX}/lib \
+ bash -c "cd ${LIBCDD_DIR} && ./configure \
+ --disable-shared ${CONFIGURE_FLAGS} \
+ --prefix=$(readlink -f ${LIBCDD_PREFIX}) \
+ && make gmpdir=${GMP_PREFIX} && make install"
+
+rm -rf ${TMPDIR}