#!/bin/sh # # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # # # # get-deps.sh -- download the dependencies useful for building Subversion # # If changing this file please take care to try to make your changes as # portable as possible. That means at a minimum only use POSIX supported # features and functions. However, it may be desirable to use an even # more narrow set of features than POSIX, e.g. Solaris /bin/sh only has # a subset of the POSIX shell features. If in doubt, limit yourself to # features already used in the file. Reviewing the history of changes # may be useful as well. setglobal APR_VERSION = $(APR_VERSION:-"1.4.6") setglobal APU_VERSION = $(APU_VERSION:-"1.5.1") setglobal SERF_VERSION = $(SERF_VERSION:-"1.3.8") setglobal ZLIB_VERSION = $(ZLIB_VERSION:-"1.2.8") setglobal SQLITE_VERSION = $(SQLITE_VERSION:-"3.7.15.1") setglobal GMOCK_VERSION = $(GMOCK_VERSION:-"1.6.0") setglobal HTTPD_VERSION = $(HTTPD_VERSION:-"2.4.10") setglobal APR_ICONV_VERSION = $(APR_ICONV_VERSION:-"1.2.1") setglobal APR = "apr-$(APR_VERSION)" setglobal APR_UTIL = "apr-util-$(APU_VERSION)" setglobal SERF = "serf-$(SERF_VERSION)" setglobal ZLIB = "zlib-$(ZLIB_VERSION)" setglobal SQLITE_VERSION_LIST = $[echo $SQLITE_VERSION | sed -e 's/\./ /g] setglobal SQLITE = "sqlite-amalgamation-$[printf %d%02d%02d%02d $SQLITE_VERSION_LIST]" setglobal GMOCK = "gmock-$(GMOCK_VERSION)" setglobal GMOCK_URL = 'https://googlemock.googlecode.com/files/' setglobal HTTPD = "httpd-$(HTTPD_VERSION)" setglobal APR_ICONV = "apr-iconv-$(APR_ICONV_VERSION)" setglobal BASEDIR = $[pwd] setglobal TEMPDIR = "$BASEDIR/temp" setglobal HTTP_FETCH = '' test -z $HTTP_FETCH && type wget >/dev/null !2 > !1 && setglobal HTTP_FETCH = '"wget -q -nc'" test -z $HTTP_FETCH && type curl >/dev/null !2 > !1 && setglobal HTTP_FETCH = '"curl -sOL'" test -z $HTTP_FETCH && type fetch >/dev/null !2 > !1 && setglobal HTTP_FETCH = '"fetch -q'" # Need this uncommented if any of the specific versions of the ASF tarballs to # be downloaded are no longer available on the general mirrors. setglobal APACHE_MIRROR = 'http://archive.apache.org/dist' # helpers proc usage { echo "Usage: $0" echo "Usage: $0 [ apr | serf | zlib | sqlite | gmock ] ..." exit $1 } # getters proc get_apr { cd $TEMPDIR test -d $BASEDIR/apr || $HTTP_FETCH $APACHE_MIRROR/apr/$APR.tar.bz2 test -d $BASEDIR/apr-util || $HTTP_FETCH $APACHE_MIRROR/apr/$APR_UTIL.tar.bz2 cd $BASEDIR test -d $BASEDIR/apr || bzip2 -dc $TEMPDIR/$APR.tar.bz2 | tar -xf - test -d $BASEDIR/apr-util || bzip2 -dc $TEMPDIR/$APR_UTIL.tar.bz2 | tar -xf - test -d $BASEDIR/apr || mv $APR apr test -d $BASEDIR/apr-util || mv $APR_UTIL apr-util } proc get_serf { test -d $BASEDIR/serf && return cd $TEMPDIR $HTTP_FETCH https://archive.apache.org/dist/serf/$SERF.tar.bz2 cd $BASEDIR bzip2 -dc $TEMPDIR/$SERF.tar.bz2 | tar -xf - mv $SERF serf } proc get_zlib { test -d $BASEDIR/zlib && return cd $TEMPDIR $HTTP_FETCH http://sourceforge.net/projects/libpng/files/zlib/$ZLIB_VERSION/$ZLIB.tar.gz cd $BASEDIR gzip -dc $TEMPDIR/$ZLIB.tar.gz | tar -xf - mv $ZLIB zlib } proc get_sqlite { test -d $BASEDIR/sqlite-amalgamation && return cd $TEMPDIR $HTTP_FETCH http://www.sqlite.org/$SQLITE.zip cd $BASEDIR unzip -q $TEMPDIR/$SQLITE.zip mv $SQLITE sqlite-amalgamation } proc get_gmock { test -d $BASEDIR/gmock-fused && return cd $TEMPDIR $HTTP_FETCH $(GMOCK_URL)/$(GMOCK).zip cd $BASEDIR unzip -q $TEMPDIR/$GMOCK.zip mv $GMOCK/fused-src gmock-fused rm -fr $GMOCK } # main() proc get_deps { mkdir -p $TEMPDIR for i in [zlib serf sqlite-amalgamation apr apr-util gmock-fused] { if test -d $i { echo "Local directory '$i' already exists; the downloaded copy won't be used" > !2 } } if test $Argc -gt 0 { for target in [@Argv] { if test $target != "deps" { get_$target || usage } else { usage } } } else { get_apr get_serf get_zlib get_sqlite echo echo "If you require mod_dav_svn, the recommended version of httpd is:" echo " $APACHE_MIRROR/httpd/$HTTPD.tar.bz2" echo echo "If you require apr-iconv, its recommended version is:" echo " $APACHE_MIRROR/apr/$APR_ICONV.tar.bz2" } rm -rf $TEMPDIR } get_deps @Argv