Brian Silverman | 8efe23e | 2013-07-07 23:31:37 -0700 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
| 3 | set -e |
brians | 343bc11 | 2013-02-10 01:53:46 +0000 | [diff] [blame] | 4 | |
Brian Silverman | f10de2a | 2013-11-16 19:56:11 -0800 | [diff] [blame] | 5 | AOS=$(readlink -f $(dirname $0)/..) |
| 6 | . $(dirname $0)/tools_config |
Brian Silverman | 63cf241 | 2013-11-17 05:44:36 -0800 | [diff] [blame] | 7 | COMPILED=${EXTERNALS}/../compiled-arm |
| 8 | |
Brian Silverman | d5e0fa6 | 2013-11-18 17:12:44 -0800 | [diff] [blame^] | 9 | export CC=arm-linux-gnueabihf-gcc-4.7 |
| 10 | export CXX=arm-linux-gnueabihf-g++-4.7 |
Brian Silverman | 63cf241 | 2013-11-17 05:44:36 -0800 | [diff] [blame] | 11 | # Flags that should get passed to all configure scripts. |
| 12 | # TODO(brians): If we're going to build everything ourselves, we should probably |
| 13 | # optimize it for our target. |
Brian Silverman | d5e0fa6 | 2013-11-18 17:12:44 -0800 | [diff] [blame^] | 14 | CONFIGURE_FLAGS="--host=arm-linux-gnueabihf CC=${CC} CXX=${CXX}" |
Brian Silverman | f10de2a | 2013-11-16 19:56:11 -0800 | [diff] [blame] | 15 | |
| 16 | TMPDIR=/tmp/$$-aos-tmpdir |
| 17 | mkdir -p ${EXTERNALS} |
| 18 | mkdir -p ${COMPILED} |
| 19 | |
| 20 | # get and build ninja |
| 21 | [ -d ${NINJA_DIR} ] || git clone --branch ${NINJA_RELEASE} https://github.com/martine/ninja.git ${NINJA_DIR} |
| 22 | [ -x ${NINJA} ] || ${NINJA_DIR}/bootstrap.py |
| 23 | |
| 24 | # get gyp |
| 25 | [ -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 ) |
brians | 343bc11 | 2013-02-10 01:53:46 +0000 | [diff] [blame] | 26 | |
| 27 | # get gccdist |
| 28 | GCCDIST=${EXTERNALS}/gccdist |
| 29 | [ -f ${GCCDIST}.zip ] || wget ftp://ftp.ni.com/pub/devzone/tut/updated_vxworks63gccdist.zip -O ${GCCDIST}.zip |
| 30 | [ -d ${GCCDIST} ] || ( cd ${EXTERNALS} && unzip -q ${GCCDIST}.zip ) |
| 31 | |
| 32 | # get eigen |
Brian Silverman | 8efe23e | 2013-07-07 23:31:37 -0700 | [diff] [blame] | 33 | EIGEN_VERSION=3.1.3 |
brians | 343bc11 | 2013-02-10 01:53:46 +0000 | [diff] [blame] | 34 | EIGEN_DIR=${EXTERNALS}/eigen-${EIGEN_VERSION} |
| 35 | [ -f ${EIGEN_DIR}.tar.bz2 ] || wget http://bitbucket.org/eigen/eigen/get/${EIGEN_VERSION}.tar.bz2 -O ${EIGEN_DIR}.tar.bz2 |
| 36 | [ -d ${EIGEN_DIR} ] || ( mkdir ${EIGEN_DIR} && tar --strip-components=1 -C ${EIGEN_DIR} -xf ${EIGEN_DIR}.tar.bz2 ) |
| 37 | |
| 38 | # get the javacv binaries |
| 39 | JAVACV_VERSION=0.2 |
| 40 | JAVACV_DIR=${EXTERNALS}/javacv-bin |
| 41 | JAVACV_ZIP=${EXTERNALS}/javacv-${JAVACV_VERSION}-bin.zip |
| 42 | [ -f ${JAVACV_ZIP} ] || wget http://javacv.googlecode.com/files/javacv-${JAVACV_VERSION}-bin.zip -O ${JAVACV_ZIP} |
| 43 | [ -d ${JAVACV_DIR} ] || ( cd ${EXTERNALS} && unzip ${JAVACV_ZIP} ) |
| 44 | |
| 45 | # get the simple one-jar template jar |
| 46 | ONEJAR_VERSION=0.97 |
| 47 | ONEJAR_JAR=${EXTERNALS}/one-jar-boot-${ONEJAR_VERSION}.jar |
| 48 | [ -f ${ONEJAR_JAR} ] || wget http://sourceforge.net/projects/one-jar/files/one-jar/one-jar-${ONEJAR_VERSION}/one-jar-boot-${ONEJAR_VERSION}.jar/download -O ${ONEJAR_JAR} |
| 49 | |
| 50 | # get and build libjpeg |
| 51 | LIBJPEG_VERSION=8d |
| 52 | LIBJPEG_DIR=${EXTERNALS}/jpeg-${LIBJPEG_VERSION} |
| 53 | # NOTE: this directory ends up in #include names |
Brian Silverman | f10de2a | 2013-11-16 19:56:11 -0800 | [diff] [blame] | 54 | LIBJPEG_PREFIX=${COMPILED}/libjpeg |
brians | 343bc11 | 2013-02-10 01:53:46 +0000 | [diff] [blame] | 55 | LIBJPEG_LIB=${LIBJPEG_PREFIX}/lib/libjpeg.a |
| 56 | LIBJPEG_TAR=${EXTERNALS}/jpegsrc.v${LIBJPEG_VERSION}.tar.gz |
| 57 | [ -f ${LIBJPEG_TAR} ] || wget http://www.ijg.org/files/jpegsrc.v${LIBJPEG_VERSION}.tar.gz -O ${LIBJPEG_TAR} |
| 58 | [ -d ${LIBJPEG_DIR} ] || ( mkdir ${LIBJPEG_DIR} && tar --strip-components=1 -C ${LIBJPEG_DIR} -xf ${LIBJPEG_TAR} ) |
Brian Silverman | 63cf241 | 2013-11-17 05:44:36 -0800 | [diff] [blame] | 59 | [ -f ${LIBJPEG_LIB} ] || bash -c \ |
| 60 | "cd ${LIBJPEG_DIR} && ./configure --disable-shared \ |
| 61 | ${CONFIGURE_FLAGS} --prefix=`readlink -f ${LIBJPEG_PREFIX}` \ |
| 62 | && make && make install" |
brians | 343bc11 | 2013-02-10 01:53:46 +0000 | [diff] [blame] | 63 | |
| 64 | # get gtest |
| 65 | GTEST_VERSION=1.6.0 |
Brian Silverman | f10de2a | 2013-11-16 19:56:11 -0800 | [diff] [blame] | 66 | GTEST_DIR=${EXTERNALS}/gtest-${GTEST_VERSION} |
brians | 343bc11 | 2013-02-10 01:53:46 +0000 | [diff] [blame] | 67 | GTEST_ZIP=${EXTERNALS}/gtest-${GTEST_VERSION}.zip |
brians | 343bc11 | 2013-02-10 01:53:46 +0000 | [diff] [blame] | 68 | [ -f ${GTEST_ZIP} ] || wget http://googletest.googlecode.com/files/gtest-${GTEST_VERSION}.zip -O ${GTEST_ZIP} |
Brian Silverman | f10de2a | 2013-11-16 19:56:11 -0800 | [diff] [blame] | 69 | [ -d ${GTEST_DIR} ] || ( unzip ${GTEST_ZIP} -d ${TMPDIR} && mv ${TMPDIR}/gtest-${GTEST_VERSION} ${GTEST_DIR} && cd ${GTEST_DIR} && patch -p1 < ${AOS}/externals/gtest.patch ) |
brians | 343bc11 | 2013-02-10 01:53:46 +0000 | [diff] [blame] | 70 | |
| 71 | # get and build ctemplate |
Brian Silverman | 8efe23e | 2013-07-07 23:31:37 -0700 | [diff] [blame] | 72 | # This is the next revision after the 2.2 release and it only adds spaces to |
| 73 | # make gcc 4.7 with --std=c++11 happy (user-defined string literals...). |
| 74 | CTEMPLATE_VERSION=129 |
Brian Silverman | f10de2a | 2013-11-16 19:56:11 -0800 | [diff] [blame] | 75 | CTEMPLATE_TAR=${EXTERNALS}/ctemplate-${CTEMPLATE_VERSION}.tar.gz |
| 76 | CTEMPLATE_DIR=${COMPILED}/ctemplate-${CTEMPLATE_VERSION} |
brians | 343bc11 | 2013-02-10 01:53:46 +0000 | [diff] [blame] | 77 | CTEMPLATE_PREFIX=${CTEMPLATE_DIR}-prefix |
| 78 | CTEMPLATE_LIB=${CTEMPLATE_PREFIX}/lib/libctemplate.a |
Brian Silverman | 8efe23e | 2013-07-07 23:31:37 -0700 | [diff] [blame] | 79 | CTEMPLATE_URL=http://ctemplate.googlecode.com |
| 80 | if [[ "${CTEMPLATE_VERSION}" =~ /\./ ]]; then |
| 81 | CTEMPLATE_URL=${CTEMPLATE_URL}/files/ctemplate-${CTEMPLATE_VERSION}.tar.gz |
Brian Silverman | f10de2a | 2013-11-16 19:56:11 -0800 | [diff] [blame] | 82 | [ -f ${CTEMPLATE_TAR} ] || \ |
| 83 | wget ${CTEMPLATE_URL} -O ${CTEMPLATE_TAR} |
Brian Silverman | 8efe23e | 2013-07-07 23:31:37 -0700 | [diff] [blame] | 84 | [ -d ${CTEMPLATE_DIR} ] || ( mkdir ${CTEMPLATE_DIR} && tar \ |
Brian Silverman | f10de2a | 2013-11-16 19:56:11 -0800 | [diff] [blame] | 85 | --strip-components=1 -C ${CTEMPLATE_DIR} -xf ${CTEMPLATE_TAR} ) |
Brian Silverman | 8efe23e | 2013-07-07 23:31:37 -0700 | [diff] [blame] | 86 | else |
| 87 | CTEMPLATE_URL=${CTEMPLATE_URL}/svn/trunk |
| 88 | [ -d ${CTEMPLATE_DIR} ] || \ |
| 89 | svn checkout ${CTEMPLATE_URL} -r ${CTEMPLATE_VERSION} ${CTEMPLATE_DIR} |
| 90 | fi |
Brian Silverman | 63cf241 | 2013-11-17 05:44:36 -0800 | [diff] [blame] | 91 | [ -f ${CTEMPLATE_LIB} ] || bash -c "cd ${CTEMPLATE_DIR} && \ |
| 92 | ./configure --disable-shared \ |
| 93 | ${CONFIGURE_FLAGS} --prefix=`readlink -f ${CTEMPLATE_PREFIX}` \ |
| 94 | && make && make install" |
Brian Silverman | 798c778 | 2013-03-28 16:48:02 -0700 | [diff] [blame] | 95 | |
| 96 | # get and build gflags |
| 97 | GFLAGS_VERSION=2.0 |
Brian Silverman | f10de2a | 2013-11-16 19:56:11 -0800 | [diff] [blame] | 98 | GFLAGS_TAR=${EXTERNALS}/gflags-${GFLAGS_VERSION}.tar.gz |
| 99 | GFLAGS_DIR=${COMPILED}/gflags-${GFLAGS_VERSION} |
Brian Silverman | 798c778 | 2013-03-28 16:48:02 -0700 | [diff] [blame] | 100 | GFLAGS_PREFIX=${GFLAGS_DIR}-prefix |
| 101 | GFLAGS_LIB=${GFLAGS_PREFIX}/lib/libgflags.a |
| 102 | GFLAGS_URL=https://gflags.googlecode.com/files/gflags-${GFLAGS_VERSION}.tar.gz |
Brian Silverman | f10de2a | 2013-11-16 19:56:11 -0800 | [diff] [blame] | 103 | [ -f ${GFLAGS_TAR} ] || wget ${GFLAGS_URL} -O ${GFLAGS_TAR} |
Brian Silverman | 798c778 | 2013-03-28 16:48:02 -0700 | [diff] [blame] | 104 | [ -d ${GFLAGS_DIR} ] || ( mkdir ${GFLAGS_DIR} && tar \ |
Brian Silverman | f10de2a | 2013-11-16 19:56:11 -0800 | [diff] [blame] | 105 | --strip-components=1 -C ${GFLAGS_DIR} -xf ${GFLAGS_TAR} ) |
Brian Silverman | 63cf241 | 2013-11-17 05:44:36 -0800 | [diff] [blame] | 106 | [ -f ${GFLAGS_LIB} ] || bash -c "cd ${GFLAGS_DIR} && ./configure \ |
| 107 | ${CONFIGURE_FLAGS} --prefix=`readlink -f ${GFLAGS_PREFIX}` \ |
| 108 | && make && make install" |
Brian Silverman | 798c778 | 2013-03-28 16:48:02 -0700 | [diff] [blame] | 109 | |
| 110 | # get and build libusb |
| 111 | LIBUSB_VERSION=1.0.9 |
| 112 | LIBUSB_APIVERSION=1.0 |
Brian Silverman | f10de2a | 2013-11-16 19:56:11 -0800 | [diff] [blame] | 113 | LIBUSB_TAR=${EXTERNALS}/libusb-${LIBUSB_VERSION}.tar.bz2 |
| 114 | LIBUSB_DIR=${COMPILED}/libusb-${LIBUSB_VERSION} |
Brian Silverman | 798c778 | 2013-03-28 16:48:02 -0700 | [diff] [blame] | 115 | LIBUSB_PREFIX=${LIBUSB_DIR}-prefix |
| 116 | LIBUSB_LIB=${LIBUSB_PREFIX}/lib/libusb-${LIBUSB_APIVERSION}.a |
| 117 | LIBUSB_URL=http://sourceforge.net/projects/libusb/files/libusb-${LIBUSB_APIVERSION}/libusb-${LIBUSB_VERSION}/libusb-${LIBUSB_VERSION}.tar.bz2 |
Brian Silverman | f10de2a | 2013-11-16 19:56:11 -0800 | [diff] [blame] | 118 | [ -f ${LIBUSB_TAR} ] || wget ${LIBUSB_URL} -O ${LIBUSB_TAR} |
Brian Silverman | 798c778 | 2013-03-28 16:48:02 -0700 | [diff] [blame] | 119 | [ -d ${LIBUSB_DIR} ] || ( mkdir ${LIBUSB_DIR} && tar \ |
Brian Silverman | f10de2a | 2013-11-16 19:56:11 -0800 | [diff] [blame] | 120 | --strip-components=1 -C ${LIBUSB_DIR} -xf ${LIBUSB_TAR} ) |
Brian Silverman | 63cf241 | 2013-11-17 05:44:36 -0800 | [diff] [blame] | 121 | [ -f ${LIBUSB_LIB} ] || bash -c "cd ${LIBUSB_DIR} && ./configure \ |
| 122 | ${CONFIGURE_FLAGS} --prefix=`readlink -f ${LIBUSB_PREFIX}` \ |
| 123 | && make && make install" |
Brian Silverman | 6137a50 | 2013-04-22 15:41:36 -0700 | [diff] [blame] | 124 | |
| 125 | # get the LLVM Compiler-RT source |
| 126 | COMPILER_RT_TAG=RELEASE_32/final |
| 127 | COMPILER_RT_VERSION=`echo ${COMPILER_RT_TAG} | sed s:/:_:` |
| 128 | COMPILER_RT_DIR=${EXTERNALS}/compiler-rt-${COMPILER_RT_VERSION} |
| 129 | COMPILER_RT_URL=http://llvm.org/svn/llvm-project/compiler-rt/tags/${COMPILER_RT_TAG} |
| 130 | [ -d ${COMPILER_RT_DIR} ] || svn checkout ${COMPILER_RT_URL} ${COMPILER_RT_DIR} |
Brian Silverman | 8efe23e | 2013-07-07 23:31:37 -0700 | [diff] [blame] | 131 | |
| 132 | # get and build libevent |
| 133 | LIBEVENT_VERSION=2.0.21 |
Brian Silverman | f10de2a | 2013-11-16 19:56:11 -0800 | [diff] [blame] | 134 | LIBEVENT_TAR=${EXTERNALS}/libevent-${LIBEVENT_VERSION}.tar.gz |
| 135 | LIBEVENT_DIR=${COMPILED}/libevent-${LIBEVENT_VERSION} |
Brian Silverman | 8efe23e | 2013-07-07 23:31:37 -0700 | [diff] [blame] | 136 | LIBEVENT_PREFIX=${LIBEVENT_DIR}-prefix |
| 137 | LIBEVENT_LIB=${LIBEVENT_PREFIX}/lib/libevent.a |
| 138 | LIBEVENT_URL=https://github.com/downloads/libevent/libevent |
| 139 | LIBEVENT_URL=${LIBEVENT_URL}/libevent-${LIBEVENT_VERSION}-stable.tar.gz |
Brian Silverman | f10de2a | 2013-11-16 19:56:11 -0800 | [diff] [blame] | 140 | [ -f ${LIBEVENT_TAR} ] || wget ${LIBEVENT_URL} -O ${LIBEVENT_TAR} |
Brian Silverman | 8efe23e | 2013-07-07 23:31:37 -0700 | [diff] [blame] | 141 | [ -d ${LIBEVENT_DIR} ] || ( mkdir ${LIBEVENT_DIR} && tar \ |
Brian Silverman | f10de2a | 2013-11-16 19:56:11 -0800 | [diff] [blame] | 142 | --strip-components=1 -C ${LIBEVENT_DIR} -xf ${LIBEVENT_TAR} ) |
Brian Silverman | 63cf241 | 2013-11-17 05:44:36 -0800 | [diff] [blame] | 143 | [ -f ${LIBEVENT_LIB} ] || bash -c "cd ${LIBEVENT_DIR} && ./configure \ |
| 144 | ${CONFIGURE_FLAGS} --prefix=`readlink -f ${LIBEVENT_PREFIX}` \ |
| 145 | && make && make install" |
| 146 | |
| 147 | # get and build gmp |
| 148 | GMP_VERSION=5.1.3 |
| 149 | GMP_TAR=${EXTERNALS}/gmp-${GMP_VERSION}.tar.lz |
| 150 | GMP_DIR=${COMPILED}/gmp-${GMP_VERSION} |
| 151 | GMP_PREFIX=${GMP_DIR}-prefix |
| 152 | GMP_LIB=${GMP_PREFIX}/lib/libgmp.a |
| 153 | GMP_URL=http://ftp.gmplib.org/gmp/gmp-${GMP_VERSION}.tar.lz |
| 154 | [ -f ${GMP_TAR} ] || wget ${GMP_URL} -O ${GMP_TAR} |
| 155 | [ -d ${GMP_DIR} ] || ( mkdir ${GMP_DIR} && tar \ |
| 156 | --strip-components=1 -C ${GMP_DIR} -xf ${GMP_TAR} ) |
| 157 | [ -f ${GMP_LIB} ] || bash -c "cd ${GMP_DIR} && ./configure \ |
| 158 | ${CONFIGURE_FLAGS} --prefix=$(readlink -f ${GMP_PREFIX}) \ |
| 159 | && make && make install" |
Austin Schuh | 6915528 | 2013-10-27 14:52:35 -0700 | [diff] [blame] | 160 | |
| 161 | # get and build libcdd |
| 162 | LIBCDD_VERSION=094g |
Brian Silverman | f10de2a | 2013-11-16 19:56:11 -0800 | [diff] [blame] | 163 | LIBCDD_TAR=${EXTERNALS}/libcdd-${LIBCDD_VERSION}.tar.gz |
| 164 | LIBCDD_DIR=${COMPILED}/libcdd-${LIBCDD_VERSION} |
Austin Schuh | 6915528 | 2013-10-27 14:52:35 -0700 | [diff] [blame] | 165 | LIBCDD_PREFIX=${LIBCDD_DIR}-prefix |
| 166 | LIBCDD_LIB=${LIBCDD_PREFIX}/lib/libcdd.a |
| 167 | LIBCDD_URL=ftp://ftp.ifor.math.ethz.ch/pub/fukuda/cdd/cddlib-${LIBCDD_VERSION}.tar.gz |
Brian Silverman | f10de2a | 2013-11-16 19:56:11 -0800 | [diff] [blame] | 168 | [ -f ${LIBCDD_TAR} ] || \ |
| 169 | wget ${LIBCDD_URL} -O ${LIBCDD_TAR} |
Austin Schuh | 6915528 | 2013-10-27 14:52:35 -0700 | [diff] [blame] | 170 | [ -d ${LIBCDD_DIR} ] || ( mkdir ${LIBCDD_DIR} && tar \ |
Brian Silverman | f10de2a | 2013-11-16 19:56:11 -0800 | [diff] [blame] | 171 | --strip-components=1 -C ${LIBCDD_DIR} -xf ${LIBCDD_TAR} ) |
Brian Silverman | 63cf241 | 2013-11-17 05:44:36 -0800 | [diff] [blame] | 172 | [ -f ${LIBCDD_LIB} ] || LDFLAGS=-L${GMP_PREFIX}/lib \ |
| 173 | bash -c "cd ${LIBCDD_DIR} && ./configure \ |
| 174 | --disable-shared ${CONFIGURE_FLAGS} \ |
| 175 | --prefix=$(readlink -f ${LIBCDD_PREFIX}) \ |
| 176 | && make gmpdir=${GMP_PREFIX} && make install" |
Brian Silverman | f10de2a | 2013-11-16 19:56:11 -0800 | [diff] [blame] | 177 | |
| 178 | rm -rf ${TMPDIR} |