3 # Copyright (C) 2005, 2006 Apple Computer, Inc. All rights reserved.
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions
9 # 1. Redistributions of source code must retain the above copyright
10 # notice, this list of conditions and the following disclaimer.
11 # 2. Redistributions in binary form must reproduce the above copyright
12 # notice, this list of conditions and the following disclaimer in the
13 # documentation and/or other materials provided with the distribution.
14 # 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
15 # its contributors may be used to endorse or promote products derived
16 # from this software without specific prior written permission.
18 # THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
19 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21 # DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
22 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 # A script to download the extra libraries needed to build WebKit on UNIX-based OSes.
30 # libxml/libxslt need to be added, but so far I've had them on all the (UNIX) machines
31 # I've tested on, so I don't have a machine to test the code on.
35 scriptDir="$(cd $(dirname $0);pwd)"
36 WK_ROOT=$scriptDir/../..
39 DL_DIR=/tmp/webkit-deps
40 # NOTE: If you change this, make sure the dir is on the path.
41 DEPS_PREFIX=$WK_ROOT/WebKitLibraries/unix
44 if [ "${OSTYPE:0:6}" == "darwin" ]; then
52 ICU_TARBALL="icu-$ICU_VERSION.tgz"
53 ICU_URL="ftp://ftp.software.ibm.com/software/globalization/icu/$ICU_VERSION/$ICU_TARBALL"
55 # dependent app, not lib, what should we do for these?
58 GPERF_TARBALL="gperf-$GPERF_VERSION.tar.gz"
59 GPERF_URL="ftp://mirrors.kernel.org/gnu/gperf/$GPERF_TARBALL"
61 PKG_CONFIG_VERSION="0.20"
62 PKG_CONFIG_TARBALL="pkg-config-$PKG_CONFIG_VERSION.tar.gz"
63 PKG_CONFIG_URL="http://pkgconfig.freedesktop.org/releases/$PKG_CONFIG_TARBALL"
66 ICONV_TARBALL="libiconv-$ICONV_VERSION.tar.gz"
67 ICONV_URL="http://ftp.gnu.org/pub/gnu/libiconv/$ICONV_TARBALL"
70 LIBJPEG_TARBALL="jpegsrc.v$LIBJPEG_VERSION.tar.gz"
71 LIBJPEG_URL="http://wxwebkit.wxcommunity.com/downloads/deps/$LIBJPEG_TARBALL"
73 LIBPNG_VERSION="1.2.33"
74 LIBPNG_TARBALL="libpng-$LIBPNG_VERSION.tar.gz"
75 LIBPNG_URL="http://wxwebkit.wxcommunity.com/downloads/deps/$LIBPNG_TARBALL"
77 LIBCURL_VERSION="7.19.6"
78 LIBCURL_TARBALL="curl-$LIBCURL_VERSION.tar.gz"
79 LIBCURL_URL="http://curl.haxx.se/download/$LIBCURL_TARBALL"
81 export MAC_OS_X_DEPLOYMENT_TARGET=10.4
83 ARCH_FLAGS="-arch i386 -arch ppc -arch x86_64"
84 SDK="/Developer/SDKs/MacOSX10.4u.sdk"
86 if [ ! -d $SDK ]; then
87 SDK="/Developer/SDKs/MacOSX10.5.sdk"
90 if [ "${OSTYPE:0:6}" == "darwin" ]; then
97 if [ `which icu-config >/dev/null 2>&1` ]; then
98 $DL_CMD -o $DL_DIR/$ICU_TARBALL $ICU_URL
100 tar xzvf $DL_DIR/$ICU_TARBALL
101 cd $DL_DIR/icu/source
103 chmod +x configure install-sh
105 if [ "${OSTYPE:0:6}" == "darwin" ]; then
106 ./configure --prefix=$DEPS_PREFIX --disable-dependency-tracking
107 make CFLAGS="-O -g -isysroot $SDK $ARCH_FLAGS" \
111 ./configure --prefix=$DEPS_PREFIX
121 # TODO: What would be a good way to test for this?
122 if [ ! -f $DEPS_PREFIX/lib/libiconv.$DLLEXT ]; then
123 $DL_CMD -o $DL_DIR/$ICONV_TARBALL $ICONV_URL
125 tar xzvf $DL_DIR/$ICONV_TARBALL
126 cd $DL_DIR/libiconv-$ICONV_VERSION
128 if [ "${OSTYPE:0:6}" == "darwin" ]; then
129 ./configure --prefix=$DEPS_PREFIX --disable-dependency-tracking
130 make CFLAGS="-O -g -isysroot $SDK $ARCH_FLAGS" \
131 LDFLAGS="$ARCH_FLAGS"
134 ./configure --prefix=$DEPS_PREFIX
140 rm -rf $DL_DIR/libiconv-$ICONV_VERSION
143 if [ ! -f $DEPS_PREFIX/lib/libjpeg.a ]; then
144 $DL_CMD -o $DL_DIR/$LIBJPEG_TARBALL $LIBJPEG_URL
146 tar xzvf $DL_DIR/$LIBJPEG_TARBALL
147 cd $DL_DIR/jpeg-$LIBJPEG_VERSION
149 # jpeg install command expects this to exist.
150 mkdir -p $DEPS_PREFIX/man/man1
152 if [ "${OSTYPE:0:6}" == "darwin" ]; then
153 ./configure --prefix=$DEPS_PREFIX --disable-dependency-tracking
154 make CFLAGS="-O -g -isysroot $SDK $ARCH_FLAGS" \
155 LDFLAGS="$ARCH_FLAGS"
158 ./configure --prefix=$DEPS_PREFIX
163 cp libjpeg.a $DEPS_PREFIX/lib
164 cp *.h $DEPS_PREFIX/include
167 rm -rf $DL_DIR/jpeg-$LIBJPEG_VERSION
170 if [ ! -f $DEPS_PREFIX/lib/libpng.a ]; then
171 $DL_CMD -o $DL_DIR/$LIBPNG_TARBALL $LIBPNG_URL
173 tar xzvf $DL_DIR/$LIBPNG_TARBALL
174 cd $DL_DIR/libpng-$LIBPNG_VERSION
176 if [ "${OSTYPE:0:6}" == "darwin" ]; then
177 ./configure --prefix=$DEPS_PREFIX --disable-dependency-tracking --disable-shared
178 make CFLAGS="-O -g -isysroot $SDK $ARCH_FLAGS" \
179 LDFLAGS="$ARCH_FLAGS"
182 ./configure --prefix=$DEPS_PREFIX
189 rm -rf $DL_DIR/libpng-$LIBPNG_VERSION
192 if [ ! -f $DEPS_PREFIX/lib/libcurl.$DLLEXT ]; then
193 $DL_CMD -o $DL_DIR/$LIBCURL_TARBALL $LIBCURL_URL
195 tar xzvf $DL_DIR/$LIBCURL_TARBALL
196 cd $DL_DIR/curl-$LIBCURL_VERSION
198 if [ "${OSTYPE:0:6}" == "darwin" ]; then
199 # CURL creates different build headers for 32 and 64 bit, so to get a universal build,
200 # we must first create a 32 bit version of the header, then a 64 bit version, and
201 # have the original header simply decide which to use.
202 export CFLAGS="-O -g -isysroot $SDK -mmacosx-version-min=10.4 -arch i386 -arch ppc"
203 ./configure --prefix=$DEPS_PREFIX --disable-dependency-tracking
205 mkdir -p $DEPS_PREFIX/include/curl
207 cp include/curl/curlbuild.h include/curl/curlbuild32.h
211 export CFLAGS="-O -g -isysroot $SDK -mmacosx-version-min=10.4 -arch x86_64 -arch ppc64"
212 ./configure --prefix=$DEPS_PREFIX --disable-dependency-tracking
214 cp include/curl/curlbuild.h include/curl/curlbuild64.h
218 export CFLAGS="-O -g -isysroot $SDK -mmacosx-version-min=10.4 $ARCH_FLAGS"
219 ./configure --prefix=$DEPS_PREFIX --disable-dependency-tracking
221 cat > include/curl/curlbuild.h <<EOF
223 #include "curlbuild64.h"
225 #include "curlbuild32.h"
229 make CFLAGS="-O -g -isysroot $SDK $ARCH_FLAGS" \
230 LDFLAGS="$ARCH_FLAGS"
233 cp include/curl/curlbuild32.h $DEPS_PREFIX/include/curl/curlbuild32.h
234 cp include/curl/curlbuild64.h $DEPS_PREFIX/include/curl/curlbuild64.h
235 cp include/curl/curlbuild.h $DEPS_PREFIX/include/curl/curlbuild.h
238 ./configure --prefix=$DEPS_PREFIX
245 rm -rf $DL_DIR/curl-$LIBCURL_VERSION