1#!/bin/sh 2# 3# 4# Licensed to the Apache Software Foundation (ASF) under one 5# or more contributor license agreements. See the NOTICE file 6# distributed with this work for additional information 7# regarding copyright ownership. The ASF licenses this file 8# to you under the Apache License, Version 2.0 (the 9# "License"); you may not use this file except in compliance 10# with the License. You may obtain a copy of the License at 11# 12# http://www.apache.org/licenses/LICENSE-2.0 13# 14# Unless required by applicable law or agreed to in writing, 15# software distributed under the License is distributed on an 16# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17# KIND, either express or implied. See the License for the 18# specific language governing permissions and limitations 19# under the License. 20# 21# 22# 23# get-deps.sh -- download the dependencies useful for building Subversion 24# 25 26# If changing this file please take care to try to make your changes as 27# portable as possible. That means at a minimum only use POSIX supported 28# features and functions. However, it may be desirable to use an even 29# more narrow set of features than POSIX, e.g. Solaris /bin/sh only has 30# a subset of the POSIX shell features. If in doubt, limit yourself to 31# features already used in the file. Reviewing the history of changes 32# may be useful as well. 33 34APR_VERSION=${APR_VERSION:-"1.4.6"} 35APU_VERSION=${APU_VERSION:-"1.5.1"} 36SERF_VERSION=${SERF_VERSION:-"1.3.4"} 37ZLIB_VERSION=${ZLIB_VERSION:-"1.2.8"} 38SQLITE_VERSION=${SQLITE_VERSION:-"3.7.15.1"} 39GTEST_VERSION=${GTEST_VERSION:-"1.6.0"} 40HTTPD_VERSION=${HTTPD_VERSION:-"2.4.10"} 41APR_ICONV_VERSION=${APR_ICONV_VERSION:-"1.2.1"} 42 43APR=apr-${APR_VERSION} 44APR_UTIL=apr-util-${APU_VERSION} 45SERF=serf-${SERF_VERSION} 46ZLIB=zlib-${ZLIB_VERSION} 47SQLITE_VERSION_LIST=`echo $SQLITE_VERSION | sed -e 's/\./ /g'` 48SQLITE=sqlite-amalgamation-`printf %d%02d%02d%02d $SQLITE_VERSION_LIST` 49GTEST=gtest-${GTEST_VERSION} 50GTEST_URL=http://googletest.googlecode.com/files/ 51 52HTTPD=httpd-${HTTPD_VERSION} 53APR_ICONV=apr-iconv-${APR_ICONV_VERSION} 54 55BASEDIR=`pwd` 56TEMPDIR=$BASEDIR/temp 57 58HTTP_FETCH= 59[ -z "$HTTP_FETCH" ] && type wget >/dev/null 2>&1 && HTTP_FETCH="wget -q -nc" 60[ -z "$HTTP_FETCH" ] && type curl >/dev/null 2>&1 && HTTP_FETCH="curl -sOL" 61[ -z "$HTTP_FETCH" ] && type fetch >/dev/null 2>&1 && HTTP_FETCH="fetch -q" 62 63# Need this uncommented if any of the specific versions of the ASF tarballs to 64# be downloaded are no longer available on the general mirrors. 65APACHE_MIRROR=http://archive.apache.org/dist 66 67# helpers 68usage() { 69 echo "Usage: $0" 70 echo "Usage: $0 [ apr | serf | zlib | sqlite | gtest ] ..." 71 exit $1 72} 73 74# getters 75get_apr() { 76 cd $TEMPDIR 77 test -d $BASEDIR/apr || $HTTP_FETCH $APACHE_MIRROR/apr/$APR.tar.bz2 78 test -d $BASEDIR/apr-util || $HTTP_FETCH $APACHE_MIRROR/apr/$APR_UTIL.tar.bz2 79 cd $BASEDIR 80 81 test -d $BASEDIR/apr || bzip2 -dc $TEMPDIR/$APR.tar.bz2 | tar -xf - 82 test -d $BASEDIR/apr-util || bzip2 -dc $TEMPDIR/$APR_UTIL.tar.bz2 | tar -xf - 83 84 test -d $BASEDIR/apr || mv $APR apr 85 test -d $BASEDIR/apr-util || mv $APR_UTIL apr-util 86} 87 88get_serf() { 89 test -d $BASEDIR/serf && return 90 91 cd $TEMPDIR 92 $HTTP_FETCH http://serf.googlecode.com/svn/src_releases/$SERF.tar.bz2 93 cd $BASEDIR 94 95 bzip2 -dc $TEMPDIR/$SERF.tar.bz2 | tar -xf - 96 97 mv $SERF serf 98} 99 100get_zlib() { 101 test -d $BASEDIR/zlib && return 102 103 cd $TEMPDIR 104 $HTTP_FETCH http://sourceforge.net/projects/libpng/files/zlib/$ZLIB_VERSION/$ZLIB.tar.gz 105 cd $BASEDIR 106 107 gzip -dc $TEMPDIR/$ZLIB.tar.gz | tar -xf - 108 109 mv $ZLIB zlib 110} 111 112get_sqlite() { 113 test -d $BASEDIR/sqlite-amalgamation && return 114 115 cd $TEMPDIR 116 $HTTP_FETCH http://www.sqlite.org/$SQLITE.zip 117 cd $BASEDIR 118 119 unzip -q $TEMPDIR/$SQLITE.zip 120 121 mv $SQLITE sqlite-amalgamation 122 123} 124 125get_gtest() { 126 test -d $BASEDIR/gtest && return 127 128 cd $TEMPDIR 129 $HTTP_FETCH ${GTEST_URL}/${GTEST}.zip 130 cd $BASEDIR 131 132 unzip -q $TEMPDIR/$GTEST.zip 133 134 mv $GTEST gtest 135} 136 137# main() 138get_deps() { 139 mkdir -p $TEMPDIR 140 141 for i in zlib serf sqlite-amalgamation apr apr-util gtest; do 142 if [ -d $i ]; then 143 echo "Local directory '$i' already exists; the downloaded copy won't be used" >&2 144 fi 145 done 146 147 if [ $# -gt 0 ]; then 148 for target in "$@"; do 149 if [ "$target" != "deps" ]; then 150 get_$target || usage 151 else 152 usage 153 fi 154 done 155 else 156 get_apr 157 get_serf 158 get_zlib 159 get_sqlite 160 161 echo 162 echo "If you require mod_dav_svn, the recommended version of httpd is:" 163 echo " $APACHE_MIRROR/httpd/$HTTPD.tar.bz2" 164 165 echo 166 echo "If you require apr-iconv, its recommended version is:" 167 echo " $APACHE_MIRROR/apr/$APR_ICONV.tar.bz2" 168 fi 169 170 rm -rf $TEMPDIR 171} 172 173get_deps "$@" 174