summaryrefslogtreecommitdiff
path: root/setup.sh
blob: eba30cef0cf2b54ced9c6d7a672d25849fd6ee57 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/bin/sh

export CAIRO_TEST_TARGET=image
export CFLAGS="-O2 -g"
export CC=gcc
export CAIRO_VERSION=1.12.8
export MAKEOPTS=-j2

# setup build environment

export PREFIX=`pwd`/tmp
export LD_LIBRARY_PATH=$PREFIX/pixman/lib:$PREFIX/cairo/lib
export LD_RUN_PATH=$PREFIX/pixman/lib:$PREFIX/cairo/lib
export PKG_CONFIG_PATH=$PREFIX/pixman/lib/pkgconfig:$PREFIX/cairo/lib/pkgconfig

if [ ! -d "$PREFIX" ]; then
    mkdir $PREFIX
fi

# clone repositories

if [ ! -d "pixman" ]; then
    git clone git://anongit.freedesktop.org/pixman
fi

if [ ! -d "cairo" ]; then
    git clone git://anongit.freedesktop.org/cairo
    pushd cairo
    git checkout $CAIRO_VERSION
    popd
fi

# first time configure for pixman and cairo

if [ ! -f "pixman/configure" ]; then
    pushd pixman
    ./autogen.sh --prefix=$PREFIX/pixman --disable-gtk || exit 1
    popd
fi

if [ ! -f "cairo/configure" ]; then
    pushd cairo
    ./autogen.sh --prefix=$PREFIX/cairo || exit 1
    popd
fi

# first time compile and install for pixman and cairo

if [ ! -d "tmp/pixman" ]; then
    echo "Compiling pixman..."
    pushd pixman
    make $MAKEOPTS install || exit 1
    # make symlinks from pixman directory to make further installations unnecessary
    rm $PREFIX/pixman/lib/libpixman-1.so
    rm $PREFIX/pixman/lib/libpixman-1.so.0
    ln -s ../../../pixman/pixman/.libs/libpixman-1.so $PREFIX/pixman/lib/libpixman-1.so
    ln -s ../../../pixman/pixman/.libs/libpixman-1.so.0 $PREFIX/pixman/lib/libpixman-1.so.0
    popd
fi

if [ ! -d "tmp/cairo" ]; then
    echo "Compiling cairo..."
    pushd cairo
    make $MAKEOPTS install || exit 1
    popd

    # bind traces
    echo "Binding traces..."
    make clean
    make || exit 1
fi

echo
echo "Now you can do all the pixman hacking in 'pixman' directory"
echo "and run benchmarks using 'bench.sh script. The pixman shared"
echo "libraries used for the benchmark will be picked from"
echo "'pixman/pixman/.libs' directory."