blob: 79599395f80b1e404b8f8989d268cd83fe7e0ae1 [file] [log] [blame] [edit]
#!/bin/sh
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
PPATH=/usr/lib/pkgconfig
LPATH="$(pwd)"
export PKG_CONFIG_PATH="${LPATH}"/lib/pkgconfig:"${PPATH}"
# Print an early message about what we think we're building.
# Informative only, if this fails, comment it out.
arch=$(python -c 'import platform; print platform.architecture()[0]')
echo "Builiding for $arch ..."
rm -f .xorg.stop
for p in util-macros-1.11.0 xproto-7.0.20 xcb-proto-1.6 libXfont-1.4.3 \
dri2proto-2.3 libxkbfile-1.0.7 libdrm-2.4.26 \
libXmu-1.0.5 ; do
if [ -f $p.succeeded ] ; then
echo $p already done
else
tar xzf ../$p.tar.gz
if [ -f $p/configure ] ; then
( cd $p && ./configure --prefix="$LPATH" --exec_prefix="$LPATH" && \
make && make install ) >$p.output 2>&1 && mv $p.output $p.succeeded
else
( cd $p && ./autogen.sh --prefix="$LPATH" --exec_prefix="$LPATH" && \
make && make install ) >$p.output 2>&1 && mv $p.output $p.succeeded
fi
if [ -f $p.succeeded ] ; then
echo $p done
else
echo $p FAILED ; tail -80 $p.output ; echo $p FAILED
touch .xorg.stop
break
fi
fi
done
mv=7.11
p=Mesa-${mv}
if [ -f $p.succeeded ] ; then
echo $p already done
else
tar xzf ../MesaGLUT-${mv}.tar.gz
tar xzf ../MesaLib-${mv}.tar.gz
( cd $p && ./configure --prefix="$LPATH" --exec_prefix="$LPATH" \
--with-gallium-drivers= --with-dri-drivers= && \
make && make install ) >$p.output 2>&1 && mv $p.output $p.succeeded
if [ -f $p.succeeded ] ; then
echo $p done
else
echo $p FAILED ; tail -80 $p.output ; echo $p FAILED
touch .xorg.stop
fi
fi
#
# The builders are wilder/older versions of linux. pixman is missing a
# referenced symbol on Hardy. Xfont fails to read the fonts, and it has
# recursive dependencies we have to add to the top level to link statically.
# pixman is also a dependency of libfb.la, so we have to subvert that too.
# Peter Mayo - Feb 24, 2011
#
function makeXvfbMoreStatically() {
[ -f Xvfb ] && rm -f Xvfb
make -n Xvfb 2>&1 | tail -1 |\
sed -e "s/^.*;//" \
-e "s%libfb.la%.libs/libfb.a%" -e "s% -l\(pixman-1\)% /usr/lib/lib\1.a%" \
-e "s% -l\(Xfont\)% ../../../lib/lib\1.a -lfreetype -lfontenc%" \
| bash -x
}
if [ \! -f .xorg.stop ] ; then
p=xorg-server-1.9.3.901
[ -d bin ] || mkdir bin
tar xzf ../$p.tar.gz
echo building in $p ...
( cd $p && ./configure --disable-config-hal --disable-dri --disable-glx \
--prefix=/usr && \
( cd fb && make ) && \
( cd xfixes && make ) && \
( cd Xext && make ) && \
( cd dbe && make ) && \
( cd record && make ) && \
( cd randr && make ) && \
( cd render && make ) && \
( cd damageext && make ) && \
( cd miext/damage && make ) && \
( cd miext/shadow && make ) && \
( cd Xi && make ) && \
( cd xkb && make ) && \
( cd composite && make ) && \
( cd dix && make ) && \
( cd mi && make ) && \
( cd os && make ) && \
( cd glx && make ) && \
( cd hw/vfb && make Xvfb && makeXvfbMoreStatically ) ) >$p.output 2>&1 && \
mv $p.output $p.succeeded
if [ -f $p.succeeded ] ; then
cp $p/hw/vfb/Xvfb bin/.
echo "Built Xvfb for $arch sucessfully."
else
echo $p FAILED ; tail -80 $p.output ; echo $p FAILED \; see $p.output
fi
fi