blob: be77aa537f1c9942ca905d473e46f3814af88007 [file] [log] [blame]
Brian Silverman8efe23e2013-07-07 23:31:37 -07001#!/bin/bash
2
3set -e
brians343bc112013-02-10 01:53:46 +00004
Brian Silvermanf10de2a2013-11-16 19:56:11 -08005AOS=$(readlink -f $(dirname $0)/..)
6. $(dirname $0)/tools_config
7
8TMPDIR=/tmp/$$-aos-tmpdir
9mkdir -p ${EXTERNALS}
10mkdir -p ${COMPILED}
11
12# get and build ninja
13[ -d ${NINJA_DIR} ] || git clone --branch ${NINJA_RELEASE} https://github.com/martine/ninja.git ${NINJA_DIR}
14[ -x ${NINJA} ] || ${NINJA_DIR}/bootstrap.py
15
16# get gyp
17[ -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 )
brians343bc112013-02-10 01:53:46 +000018
19# get gccdist
20GCCDIST=${EXTERNALS}/gccdist
21[ -f ${GCCDIST}.zip ] || wget ftp://ftp.ni.com/pub/devzone/tut/updated_vxworks63gccdist.zip -O ${GCCDIST}.zip
22[ -d ${GCCDIST} ] || ( cd ${EXTERNALS} && unzip -q ${GCCDIST}.zip )
23
24# get eigen
Brian Silverman8efe23e2013-07-07 23:31:37 -070025EIGEN_VERSION=3.1.3
brians343bc112013-02-10 01:53:46 +000026EIGEN_DIR=${EXTERNALS}/eigen-${EIGEN_VERSION}
27[ -f ${EIGEN_DIR}.tar.bz2 ] || wget http://bitbucket.org/eigen/eigen/get/${EIGEN_VERSION}.tar.bz2 -O ${EIGEN_DIR}.tar.bz2
28[ -d ${EIGEN_DIR} ] || ( mkdir ${EIGEN_DIR} && tar --strip-components=1 -C ${EIGEN_DIR} -xf ${EIGEN_DIR}.tar.bz2 )
29
30# get the javacv binaries
31JAVACV_VERSION=0.2
32JAVACV_DIR=${EXTERNALS}/javacv-bin
33JAVACV_ZIP=${EXTERNALS}/javacv-${JAVACV_VERSION}-bin.zip
34[ -f ${JAVACV_ZIP} ] || wget http://javacv.googlecode.com/files/javacv-${JAVACV_VERSION}-bin.zip -O ${JAVACV_ZIP}
35[ -d ${JAVACV_DIR} ] || ( cd ${EXTERNALS} && unzip ${JAVACV_ZIP} )
36
37# get the simple one-jar template jar
38ONEJAR_VERSION=0.97
39ONEJAR_JAR=${EXTERNALS}/one-jar-boot-${ONEJAR_VERSION}.jar
40[ -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}
41
42# get and build libjpeg
43LIBJPEG_VERSION=8d
44LIBJPEG_DIR=${EXTERNALS}/jpeg-${LIBJPEG_VERSION}
45# NOTE: this directory ends up in #include names
Brian Silvermanf10de2a2013-11-16 19:56:11 -080046LIBJPEG_PREFIX=${COMPILED}/libjpeg
brians343bc112013-02-10 01:53:46 +000047LIBJPEG_LIB=${LIBJPEG_PREFIX}/lib/libjpeg.a
48LIBJPEG_TAR=${EXTERNALS}/jpegsrc.v${LIBJPEG_VERSION}.tar.gz
49[ -f ${LIBJPEG_TAR} ] || wget http://www.ijg.org/files/jpegsrc.v${LIBJPEG_VERSION}.tar.gz -O ${LIBJPEG_TAR}
50[ -d ${LIBJPEG_DIR} ] || ( mkdir ${LIBJPEG_DIR} && tar --strip-components=1 -C ${LIBJPEG_DIR} -xf ${LIBJPEG_TAR} )
51[ -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"
52
53# get gtest
54GTEST_VERSION=1.6.0
Brian Silvermanf10de2a2013-11-16 19:56:11 -080055GTEST_DIR=${EXTERNALS}/gtest-${GTEST_VERSION}
brians343bc112013-02-10 01:53:46 +000056GTEST_ZIP=${EXTERNALS}/gtest-${GTEST_VERSION}.zip
brians343bc112013-02-10 01:53:46 +000057[ -f ${GTEST_ZIP} ] || wget http://googletest.googlecode.com/files/gtest-${GTEST_VERSION}.zip -O ${GTEST_ZIP}
Brian Silvermanf10de2a2013-11-16 19:56:11 -080058[ -d ${GTEST_DIR} ] || ( unzip ${GTEST_ZIP} -d ${TMPDIR} && mv ${TMPDIR}/gtest-${GTEST_VERSION} ${GTEST_DIR} && cd ${GTEST_DIR} && patch -p1 < ${AOS}/externals/gtest.patch )
brians343bc112013-02-10 01:53:46 +000059
60# get and build ctemplate
Brian Silverman8efe23e2013-07-07 23:31:37 -070061# This is the next revision after the 2.2 release and it only adds spaces to
62# make gcc 4.7 with --std=c++11 happy (user-defined string literals...).
63CTEMPLATE_VERSION=129
Brian Silvermanf10de2a2013-11-16 19:56:11 -080064CTEMPLATE_TAR=${EXTERNALS}/ctemplate-${CTEMPLATE_VERSION}.tar.gz
65CTEMPLATE_DIR=${COMPILED}/ctemplate-${CTEMPLATE_VERSION}
brians343bc112013-02-10 01:53:46 +000066CTEMPLATE_PREFIX=${CTEMPLATE_DIR}-prefix
67CTEMPLATE_LIB=${CTEMPLATE_PREFIX}/lib/libctemplate.a
Brian Silverman8efe23e2013-07-07 23:31:37 -070068CTEMPLATE_URL=http://ctemplate.googlecode.com
69if [[ "${CTEMPLATE_VERSION}" =~ /\./ ]]; then
70 CTEMPLATE_URL=${CTEMPLATE_URL}/files/ctemplate-${CTEMPLATE_VERSION}.tar.gz
Brian Silvermanf10de2a2013-11-16 19:56:11 -080071 [ -f ${CTEMPLATE_TAR} ] || \
72 wget ${CTEMPLATE_URL} -O ${CTEMPLATE_TAR}
Brian Silverman8efe23e2013-07-07 23:31:37 -070073 [ -d ${CTEMPLATE_DIR} ] || ( mkdir ${CTEMPLATE_DIR} && tar \
Brian Silvermanf10de2a2013-11-16 19:56:11 -080074 --strip-components=1 -C ${CTEMPLATE_DIR} -xf ${CTEMPLATE_TAR} )
Brian Silverman8efe23e2013-07-07 23:31:37 -070075else
76 CTEMPLATE_URL=${CTEMPLATE_URL}/svn/trunk
77 [ -d ${CTEMPLATE_DIR} ] || \
78 svn checkout ${CTEMPLATE_URL} -r ${CTEMPLATE_VERSION} ${CTEMPLATE_DIR}
79fi
brians343bc112013-02-10 01:53:46 +000080[ -f ${CTEMPLATE_LIB} ] || env -i PATH="${PATH}" \
81 CFLAGS='-m32' CXXFLAGS='-m32' LDFLAGS='-m32' \
82 bash -c "cd ${CTEMPLATE_DIR} && ./configure --disable-shared \
83 --prefix=`readlink -f ${CTEMPLATE_PREFIX}` && make && make install"
Brian Silverman798c7782013-03-28 16:48:02 -070084
85# get and build gflags
86GFLAGS_VERSION=2.0
Brian Silvermanf10de2a2013-11-16 19:56:11 -080087GFLAGS_TAR=${EXTERNALS}/gflags-${GFLAGS_VERSION}.tar.gz
88GFLAGS_DIR=${COMPILED}/gflags-${GFLAGS_VERSION}
Brian Silverman798c7782013-03-28 16:48:02 -070089GFLAGS_PREFIX=${GFLAGS_DIR}-prefix
90GFLAGS_LIB=${GFLAGS_PREFIX}/lib/libgflags.a
91GFLAGS_URL=https://gflags.googlecode.com/files/gflags-${GFLAGS_VERSION}.tar.gz
Brian Silvermanf10de2a2013-11-16 19:56:11 -080092[ -f ${GFLAGS_TAR} ] || wget ${GFLAGS_URL} -O ${GFLAGS_TAR}
Brian Silverman798c7782013-03-28 16:48:02 -070093[ -d ${GFLAGS_DIR} ] || ( mkdir ${GFLAGS_DIR} && tar \
Brian Silvermanf10de2a2013-11-16 19:56:11 -080094 --strip-components=1 -C ${GFLAGS_DIR} -xf ${GFLAGS_TAR} )
Brian Silverman798c7782013-03-28 16:48:02 -070095[ -f ${GFLAGS_LIB} ] || env -i PATH="${PATH}" \
96 CFLAGS='-m32' CXXFLAGS='-m32' LDFLAGS='-m32' \
97 bash -c "cd ${GFLAGS_DIR} && ./configure \
98 --prefix=`readlink -f ${GFLAGS_PREFIX}` && make && make install"
99
100# get and build libusb
101LIBUSB_VERSION=1.0.9
102LIBUSB_APIVERSION=1.0
Brian Silvermanf10de2a2013-11-16 19:56:11 -0800103LIBUSB_TAR=${EXTERNALS}/libusb-${LIBUSB_VERSION}.tar.bz2
104LIBUSB_DIR=${COMPILED}/libusb-${LIBUSB_VERSION}
Brian Silverman798c7782013-03-28 16:48:02 -0700105LIBUSB_PREFIX=${LIBUSB_DIR}-prefix
106LIBUSB_LIB=${LIBUSB_PREFIX}/lib/libusb-${LIBUSB_APIVERSION}.a
107LIBUSB_URL=http://sourceforge.net/projects/libusb/files/libusb-${LIBUSB_APIVERSION}/libusb-${LIBUSB_VERSION}/libusb-${LIBUSB_VERSION}.tar.bz2
Brian Silvermanf10de2a2013-11-16 19:56:11 -0800108[ -f ${LIBUSB_TAR} ] || wget ${LIBUSB_URL} -O ${LIBUSB_TAR}
Brian Silverman798c7782013-03-28 16:48:02 -0700109[ -d ${LIBUSB_DIR} ] || ( mkdir ${LIBUSB_DIR} && tar \
Brian Silvermanf10de2a2013-11-16 19:56:11 -0800110 --strip-components=1 -C ${LIBUSB_DIR} -xf ${LIBUSB_TAR} )
Brian Silverman798c7782013-03-28 16:48:02 -0700111[ -f ${LIBUSB_LIB} ] || env -i PATH="${PATH}" \
112 CFLAGS='-m32' CXXFLAGS='-m32' LDFLAGS='-m32' \
113 bash -c "cd ${LIBUSB_DIR} && ./configure \
114 --prefix=`readlink -f ${LIBUSB_PREFIX}` && make && make install"
Brian Silverman6137a502013-04-22 15:41:36 -0700115
116# get the LLVM Compiler-RT source
117COMPILER_RT_TAG=RELEASE_32/final
118COMPILER_RT_VERSION=`echo ${COMPILER_RT_TAG} | sed s:/:_:`
119COMPILER_RT_DIR=${EXTERNALS}/compiler-rt-${COMPILER_RT_VERSION}
120COMPILER_RT_URL=http://llvm.org/svn/llvm-project/compiler-rt/tags/${COMPILER_RT_TAG}
121[ -d ${COMPILER_RT_DIR} ] || svn checkout ${COMPILER_RT_URL} ${COMPILER_RT_DIR}
Brian Silverman8efe23e2013-07-07 23:31:37 -0700122
123# get and build libevent
124LIBEVENT_VERSION=2.0.21
Brian Silvermanf10de2a2013-11-16 19:56:11 -0800125LIBEVENT_TAR=${EXTERNALS}/libevent-${LIBEVENT_VERSION}.tar.gz
126LIBEVENT_DIR=${COMPILED}/libevent-${LIBEVENT_VERSION}
Brian Silverman8efe23e2013-07-07 23:31:37 -0700127LIBEVENT_PREFIX=${LIBEVENT_DIR}-prefix
128LIBEVENT_LIB=${LIBEVENT_PREFIX}/lib/libevent.a
129LIBEVENT_URL=https://github.com/downloads/libevent/libevent
130LIBEVENT_URL=${LIBEVENT_URL}/libevent-${LIBEVENT_VERSION}-stable.tar.gz
Brian Silvermanf10de2a2013-11-16 19:56:11 -0800131[ -f ${LIBEVENT_TAR} ] || wget ${LIBEVENT_URL} -O ${LIBEVENT_TAR}
Brian Silverman8efe23e2013-07-07 23:31:37 -0700132[ -d ${LIBEVENT_DIR} ] || ( mkdir ${LIBEVENT_DIR} && tar \
Brian Silvermanf10de2a2013-11-16 19:56:11 -0800133 --strip-components=1 -C ${LIBEVENT_DIR} -xf ${LIBEVENT_TAR} )
Brian Silverman8efe23e2013-07-07 23:31:37 -0700134[ -f ${LIBEVENT_LIB} ] || env -i PATH="${PATH}" \
135 CFLAGS='-m32' CXXFLAGS='-m32' LDFLAGS='-m32' \
136 bash -c "cd ${LIBEVENT_DIR} && ./configure \
137 --prefix=`readlink -f ${LIBEVENT_PREFIX}` && make && make install"
Austin Schuh69155282013-10-27 14:52:35 -0700138
139# get and build libcdd
140LIBCDD_VERSION=094g
Brian Silvermanf10de2a2013-11-16 19:56:11 -0800141LIBCDD_TAR=${EXTERNALS}/libcdd-${LIBCDD_VERSION}.tar.gz
142LIBCDD_DIR=${COMPILED}/libcdd-${LIBCDD_VERSION}
Austin Schuh69155282013-10-27 14:52:35 -0700143LIBCDD_PREFIX=${LIBCDD_DIR}-prefix
144LIBCDD_LIB=${LIBCDD_PREFIX}/lib/libcdd.a
145LIBCDD_URL=ftp://ftp.ifor.math.ethz.ch/pub/fukuda/cdd/cddlib-${LIBCDD_VERSION}.tar.gz
Brian Silvermanf10de2a2013-11-16 19:56:11 -0800146[ -f ${LIBCDD_TAR} ] || \
147 wget ${LIBCDD_URL} -O ${LIBCDD_TAR}
Austin Schuh69155282013-10-27 14:52:35 -0700148[ -d ${LIBCDD_DIR} ] || ( mkdir ${LIBCDD_DIR} && tar \
Brian Silvermanf10de2a2013-11-16 19:56:11 -0800149 --strip-components=1 -C ${LIBCDD_DIR} -xf ${LIBCDD_TAR} )
Austin Schuh69155282013-10-27 14:52:35 -0700150[ -f ${LIBCDD_LIB} ] || env -i PATH="${PATH}" \
151 CFLAGS='-m32' CXXFLAGS='-m32' LDFLAGS='-m32' \
152 bash -c "cd ${LIBCDD_DIR} && ./configure --disable-shared \
153 --prefix=`readlink -f ${LIBCDD_PREFIX}` && make && make install"
Brian Silvermanf10de2a2013-11-16 19:56:11 -0800154
155rm -rf ${TMPDIR}