1251881Speter#!/bin/sh
2251881Speter#
3251881Speter#
4251881Speter# Licensed to the Apache Software Foundation (ASF) under one
5251881Speter# or more contributor license agreements.  See the NOTICE file
6251881Speter# distributed with this work for additional information
7251881Speter# regarding copyright ownership.  The ASF licenses this file
8251881Speter# to you under the Apache License, Version 2.0 (the
9251881Speter# "License"); you may not use this file except in compliance
10251881Speter# with the License.  You may obtain a copy of the License at
11251881Speter#
12251881Speter#   http://www.apache.org/licenses/LICENSE-2.0
13251881Speter#
14251881Speter# Unless required by applicable law or agreed to in writing,
15251881Speter# software distributed under the License is distributed on an
16251881Speter# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17251881Speter# KIND, either express or implied.  See the License for the
18251881Speter# specific language governing permissions and limitations
19251881Speter# under the License.
20251881Speter#
21251881Speter#
22251881Speter#
23251881Speter# get-deps.sh -- download the dependencies useful for building Subversion
24251881Speter#
25251881Speter
26251881Speter# If changing this file please take care to try to make your changes as
27251881Speter# portable as possible.  That means at a minimum only use POSIX supported
28251881Speter# features and functions.  However, it may be desirable to use an even
29251881Speter# more narrow set of features than POSIX, e.g. Solaris /bin/sh only has
30251881Speter# a subset of the POSIX shell features.  If in doubt, limit yourself to
31251881Speter# features already used in the file.  Reviewing the history of changes
32251881Speter# may be useful as well.
33251881Speter
34251881SpeterAPR_VERSION=${APR_VERSION:-"1.4.6"}
35251881SpeterAPU_VERSION=${APU_VERSION:-"1.5.1"}
36289166SpeterSERF_VERSION=${SERF_VERSION:-"1.3.8"}
37251881SpeterZLIB_VERSION=${ZLIB_VERSION:-"1.2.8"}
38251881SpeterSQLITE_VERSION=${SQLITE_VERSION:-"3.7.15.1"}
39251881SpeterGTEST_VERSION=${GTEST_VERSION:-"1.6.0"}
40269847SpeterHTTPD_VERSION=${HTTPD_VERSION:-"2.4.10"}
41251881SpeterAPR_ICONV_VERSION=${APR_ICONV_VERSION:-"1.2.1"}
42251881Speter
43251881SpeterAPR=apr-${APR_VERSION}
44251881SpeterAPR_UTIL=apr-util-${APU_VERSION}
45251881SpeterSERF=serf-${SERF_VERSION}
46251881SpeterZLIB=zlib-${ZLIB_VERSION}
47251881SpeterSQLITE_VERSION_LIST=`echo $SQLITE_VERSION | sed -e 's/\./ /g'`
48251881SpeterSQLITE=sqlite-amalgamation-`printf %d%02d%02d%02d $SQLITE_VERSION_LIST`
49251881SpeterGTEST=gtest-${GTEST_VERSION}
50251881SpeterGTEST_URL=http://googletest.googlecode.com/files/
51251881Speter
52251881SpeterHTTPD=httpd-${HTTPD_VERSION}
53251881SpeterAPR_ICONV=apr-iconv-${APR_ICONV_VERSION}
54251881Speter
55251881SpeterBASEDIR=`pwd`
56251881SpeterTEMPDIR=$BASEDIR/temp
57251881Speter
58251881SpeterHTTP_FETCH=
59251881Speter[ -z "$HTTP_FETCH" ] && type wget  >/dev/null 2>&1 && HTTP_FETCH="wget -q -nc"
60269847Speter[ -z "$HTTP_FETCH" ] && type curl  >/dev/null 2>&1 && HTTP_FETCH="curl -sOL"
61251881Speter[ -z "$HTTP_FETCH" ] && type fetch >/dev/null 2>&1 && HTTP_FETCH="fetch -q"
62251881Speter
63251881Speter# Need this uncommented if any of the specific versions of the ASF tarballs to
64251881Speter# be downloaded are no longer available on the general mirrors.
65251881SpeterAPACHE_MIRROR=http://archive.apache.org/dist
66251881Speter
67251881Speter# helpers
68251881Speterusage() {
69251881Speter    echo "Usage: $0"
70251881Speter    echo "Usage: $0 [ apr | serf | zlib | sqlite | gtest ] ..."
71251881Speter    exit $1
72251881Speter}
73251881Speter
74251881Speter# getters
75251881Speterget_apr() {
76251881Speter    cd $TEMPDIR
77251881Speter    test -d $BASEDIR/apr      || $HTTP_FETCH $APACHE_MIRROR/apr/$APR.tar.bz2
78251881Speter    test -d $BASEDIR/apr-util || $HTTP_FETCH $APACHE_MIRROR/apr/$APR_UTIL.tar.bz2
79251881Speter    cd $BASEDIR
80251881Speter
81251881Speter    test -d $BASEDIR/apr      || bzip2 -dc $TEMPDIR/$APR.tar.bz2 | tar -xf -
82251881Speter    test -d $BASEDIR/apr-util || bzip2 -dc $TEMPDIR/$APR_UTIL.tar.bz2 | tar -xf -
83251881Speter
84251881Speter    test -d $BASEDIR/apr      || mv $APR apr
85251881Speter    test -d $BASEDIR/apr-util || mv $APR_UTIL apr-util
86251881Speter}
87251881Speter
88251881Speterget_serf() {
89251881Speter    test -d $BASEDIR/serf && return
90251881Speter
91251881Speter    cd $TEMPDIR
92269847Speter    $HTTP_FETCH http://serf.googlecode.com/svn/src_releases/$SERF.tar.bz2
93251881Speter    cd $BASEDIR
94251881Speter
95251881Speter    bzip2 -dc $TEMPDIR/$SERF.tar.bz2 | tar -xf -
96251881Speter
97251881Speter    mv $SERF serf
98251881Speter}
99251881Speter
100251881Speterget_zlib() {
101251881Speter    test -d $BASEDIR/zlib && return
102251881Speter
103251881Speter    cd $TEMPDIR
104269847Speter    $HTTP_FETCH http://sourceforge.net/projects/libpng/files/zlib/$ZLIB_VERSION/$ZLIB.tar.gz
105251881Speter    cd $BASEDIR
106251881Speter
107251881Speter    gzip -dc $TEMPDIR/$ZLIB.tar.gz | tar -xf -
108251881Speter
109251881Speter    mv $ZLIB zlib
110251881Speter}
111251881Speter
112251881Speterget_sqlite() {
113251881Speter    test -d $BASEDIR/sqlite-amalgamation && return
114251881Speter
115251881Speter    cd $TEMPDIR
116251881Speter    $HTTP_FETCH http://www.sqlite.org/$SQLITE.zip
117251881Speter    cd $BASEDIR
118251881Speter
119251881Speter    unzip -q $TEMPDIR/$SQLITE.zip
120251881Speter
121251881Speter    mv $SQLITE sqlite-amalgamation
122251881Speter
123251881Speter}
124251881Speter
125251881Speterget_gtest() {
126251881Speter    test -d $BASEDIR/gtest && return
127251881Speter
128251881Speter    cd $TEMPDIR
129251881Speter    $HTTP_FETCH ${GTEST_URL}/${GTEST}.zip
130251881Speter    cd $BASEDIR
131251881Speter
132251881Speter    unzip -q $TEMPDIR/$GTEST.zip
133251881Speter
134251881Speter    mv $GTEST gtest
135251881Speter}
136251881Speter
137251881Speter# main()
138251881Speterget_deps() {
139251881Speter    mkdir -p $TEMPDIR
140251881Speter
141251881Speter    for i in zlib serf sqlite-amalgamation apr apr-util gtest; do
142251881Speter      if [ -d $i ]; then
143251881Speter        echo "Local directory '$i' already exists; the downloaded copy won't be used" >&2
144251881Speter      fi
145251881Speter    done
146251881Speter
147251881Speter    if [ $# -gt 0 ]; then
148251881Speter      for target in "$@"; do
149251881Speter        if [ "$target" != "deps" ]; then
150251881Speter          get_$target || usage
151251881Speter        else
152251881Speter          usage
153251881Speter        fi
154251881Speter      done
155251881Speter    else
156251881Speter      get_apr
157251881Speter      get_serf
158251881Speter      get_zlib
159251881Speter      get_sqlite
160251881Speter
161251881Speter      echo
162251881Speter      echo "If you require mod_dav_svn, the recommended version of httpd is:"
163251881Speter      echo "   $APACHE_MIRROR/httpd/$HTTPD.tar.bz2"
164251881Speter
165251881Speter      echo
166251881Speter      echo "If you require apr-iconv, its recommended version is:"
167251881Speter      echo "   $APACHE_MIRROR/apr/$APR_ICONV.tar.bz2"
168251881Speter    fi
169251881Speter
170251881Speter    rm -rf $TEMPDIR
171251881Speter}
172251881Speter
173251881Speterget_deps "$@"
174