get-deps.sh revision 309512
1118611Snjl#!/bin/sh 2118611Snjl# 3118611Snjl# 4118611Snjl# Licensed to the Apache Software Foundation (ASF) under one 5118611Snjl# or more contributor license agreements. See the NOTICE file 6118611Snjl# distributed with this work for additional information 7316303Sjkim# regarding copyright ownership. The ASF licenses this file 8316303Sjkim# to you under the Apache License, Version 2.0 (the 9316303Sjkim# "License"); you may not use this file except in compliance 10316303Sjkim# with the License. You may obtain a copy of the License at 11316303Sjkim# 12118611Snjl# http://www.apache.org/licenses/LICENSE-2.0 13118611Snjl# 14316303Sjkim# Unless required by applicable law or agreed to in writing, 15316303Sjkim# software distributed under the License is distributed on an 16316303Sjkim# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17316303Sjkim# KIND, either express or implied. See the License for the 18316303Sjkim# specific language governing permissions and limitations 19316303Sjkim# under the License. 20316303Sjkim# 21316303Sjkim# 22316303Sjkim# 23316303Sjkim# get-deps.sh -- download the dependencies useful for building Subversion 24316303Sjkim# 25316303Sjkim 26316303Sjkim# If changing this file please take care to try to make your changes as 27316303Sjkim# portable as possible. That means at a minimum only use POSIX supported 28316303Sjkim# features and functions. However, it may be desirable to use an even 29316303Sjkim# more narrow set of features than POSIX, e.g. Solaris /bin/sh only has 30316303Sjkim# a subset of the POSIX shell features. If in doubt, limit yourself to 31316303Sjkim# features already used in the file. Reviewing the history of changes 32316303Sjkim# may be useful as well. 33316303Sjkim 34316303SjkimAPR_VERSION=${APR_VERSION:-"1.4.6"} 35316303SjkimAPU_VERSION=${APU_VERSION:-"1.5.1"} 36316303SjkimSERF_VERSION=${SERF_VERSION:-"1.3.8"} 37316303SjkimZLIB_VERSION=${ZLIB_VERSION:-"1.2.8"} 38316303SjkimSQLITE_VERSION=${SQLITE_VERSION:-"3.7.15.1"} 39316303SjkimGMOCK_VERSION=${GMOCK_VERSION:-"1.6.0"} 40316303SjkimHTTPD_VERSION=${HTTPD_VERSION:-"2.4.10"} 41316303SjkimAPR_ICONV_VERSION=${APR_ICONV_VERSION:-"1.2.1"} 42316303Sjkim 43316303SjkimAPR=apr-${APR_VERSION} 44316303SjkimAPR_UTIL=apr-util-${APU_VERSION} 45316303SjkimSERF=serf-${SERF_VERSION} 46316303SjkimZLIB=zlib-${ZLIB_VERSION} 47316303SjkimSQLITE_VERSION_LIST=`echo $SQLITE_VERSION | sed -e 's/\./ /g'` 48316303SjkimSQLITE=sqlite-amalgamation-`printf %d%02d%02d%02d $SQLITE_VERSION_LIST` 49316303SjkimGMOCK=gmock-${GMOCK_VERSION} 50316303SjkimGMOCK_URL=https://googlemock.googlecode.com/files/ 51316303Sjkim 52316303SjkimHTTPD=httpd-${HTTPD_VERSION} 53316303SjkimAPR_ICONV=apr-iconv-${APR_ICONV_VERSION} 54316303Sjkim 55316303SjkimBASEDIR=`pwd` 56316303SjkimTEMPDIR=$BASEDIR/temp 57316303Sjkim 58316303SjkimHTTP_FETCH= 59316303Sjkim[ -z "$HTTP_FETCH" ] && type wget >/dev/null 2>&1 && HTTP_FETCH="wget -q -nc" 60316303Sjkim[ -z "$HTTP_FETCH" ] && type curl >/dev/null 2>&1 && HTTP_FETCH="curl -sOL" 61316303Sjkim[ -z "$HTTP_FETCH" ] && type fetch >/dev/null 2>&1 && HTTP_FETCH="fetch -q" 62316303Sjkim 63316303Sjkim# Need this uncommented if any of the specific versions of the ASF tarballs to 64316303Sjkim# be downloaded are no longer available on the general mirrors. 65316303SjkimAPACHE_MIRROR=http://archive.apache.org/dist 66316303Sjkim 67316303Sjkim# helpers 68316303Sjkimusage() { 69316303Sjkim echo "Usage: $0" 70316303Sjkim echo "Usage: $0 [ apr | serf | zlib | sqlite | gmock ] ..." 71316303Sjkim exit $1 72316303Sjkim} 73316303Sjkim 74316303Sjkim# getters 75316303Sjkimget_apr() { 76316303Sjkim cd $TEMPDIR 77316303Sjkim test -d $BASEDIR/apr || $HTTP_FETCH $APACHE_MIRROR/apr/$APR.tar.bz2 78316303Sjkim test -d $BASEDIR/apr-util || $HTTP_FETCH $APACHE_MIRROR/apr/$APR_UTIL.tar.bz2 79316303Sjkim cd $BASEDIR 80316303Sjkim 81316303Sjkim test -d $BASEDIR/apr || bzip2 -dc $TEMPDIR/$APR.tar.bz2 | tar -xf - 82316303Sjkim test -d $BASEDIR/apr-util || bzip2 -dc $TEMPDIR/$APR_UTIL.tar.bz2 | tar -xf - 83316303Sjkim 84316303Sjkim test -d $BASEDIR/apr || mv $APR apr 85316303Sjkim test -d $BASEDIR/apr-util || mv $APR_UTIL apr-util 86316303Sjkim} 87316303Sjkim 88316303Sjkimget_serf() { 89316303Sjkim test -d $BASEDIR/serf && return 90316303Sjkim 91316303Sjkim cd $TEMPDIR 92316303Sjkim $HTTP_FETCH https://archive.apache.org/dist/serf/$SERF.tar.bz2 93316303Sjkim cd $BASEDIR 94316303Sjkim 95316303Sjkim bzip2 -dc $TEMPDIR/$SERF.tar.bz2 | tar -xf - 96316303Sjkim 97316303Sjkim mv $SERF serf 98316303Sjkim} 99316303Sjkim 100316303Sjkimget_zlib() { 101316303Sjkim test -d $BASEDIR/zlib && return 102316303Sjkim 103316303Sjkim cd $TEMPDIR 104316303Sjkim $HTTP_FETCH http://sourceforge.net/projects/libpng/files/zlib/$ZLIB_VERSION/$ZLIB.tar.gz 105316303Sjkim cd $BASEDIR 106316303Sjkim 107316303Sjkim gzip -dc $TEMPDIR/$ZLIB.tar.gz | tar -xf - 108316303Sjkim 109316303Sjkim mv $ZLIB zlib 110316303Sjkim} 111316303Sjkim 112316303Sjkimget_sqlite() { 113316303Sjkim test -d $BASEDIR/sqlite-amalgamation && return 114316303Sjkim 115316303Sjkim cd $TEMPDIR 116316303Sjkim $HTTP_FETCH http://www.sqlite.org/$SQLITE.zip 117316303Sjkim cd $BASEDIR 118316303Sjkim 119217365Sjkim unzip -q $TEMPDIR/$SQLITE.zip 120217365Sjkim 121217365Sjkim mv $SQLITE sqlite-amalgamation 122217365Sjkim 123217365Sjkim} 124217365Sjkim 125217365Sjkimget_gmock() { 126217365Sjkim test -d $BASEDIR/gmock-fused && return 127217365Sjkim 128217365Sjkim cd $TEMPDIR 129217365Sjkim $HTTP_FETCH ${GMOCK_URL}/${GMOCK}.zip 130217365Sjkim cd $BASEDIR 131217365Sjkim 132217365Sjkim unzip -q $TEMPDIR/$GMOCK.zip 133118611Snjl 134316303Sjkim mv $GMOCK/fused-src gmock-fused 135316303Sjkim rm -fr $GMOCK 136316303Sjkim} 137316303Sjkim 138316303Sjkim# main() 139316303Sjkimget_deps() { 140316303Sjkim mkdir -p $TEMPDIR 141316303Sjkim 142316303Sjkim for i in zlib serf sqlite-amalgamation apr apr-util gmock-fused; do 143316303Sjkim if [ -d $i ]; then 144316303Sjkim echo "Local directory '$i' already exists; the downloaded copy won't be used" >&2 145316303Sjkim fi 146316303Sjkim done 147217365Sjkim 148217365Sjkim if [ $# -gt 0 ]; then 149118611Snjl for target in "$@"; do 150316303Sjkim if [ "$target" != "deps" ]; then 151118611Snjl get_$target || usage 152151937Sjkim else 153118611Snjl usage 154193529Sjkim fi 155118611Snjl done 156193529Sjkim else 157193529Sjkim get_apr 158118611Snjl get_serf 159118611Snjl get_zlib 160118611Snjl get_sqlite 161118611Snjl 162151937Sjkim echo 163118611Snjl echo "If you require mod_dav_svn, the recommended version of httpd is:" 164151937Sjkim echo " $APACHE_MIRROR/httpd/$HTTPD.tar.bz2" 165151937Sjkim 166151937Sjkim echo 167151937Sjkim echo "If you require apr-iconv, its recommended version is:" 168151937Sjkim echo " $APACHE_MIRROR/apr/$APR_ICONV.tar.bz2" 169151937Sjkim fi 170151937Sjkim 171151937Sjkim rm -rf $TEMPDIR 172151937Sjkim} 173151937Sjkim 174151937Sjkimget_deps "$@" 175151937Sjkim