blob: d7d968dab6e40037dbc65248f08e16fc0e4b9789 [file] [log] [blame]
#!/bin/bash
# Builds lame for MMX/SSE testing
# Copyright (C) 2003-2006 IBM
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
source "$POUNDER_HOME/libpounder.sh"
# Is it already installed?
PROG=`which lame`
if [ ! -z "$PROG" ]; then
exit 0
fi
# If we can't find nasm...
NASM=`which nasm`
if [ -z "$NASM" ]; then
# Build it so we can test MMX/SSE.
NASM_PKG=nasm-0.98.38
NASM_TAR="$NASM_PKG.tar.gz"
# Retrieve tarball
cd "$POUNDER_OPTDIR"
if [ ! -f "$NASM_TAR" ]; then
if [ $USE_CACHE -eq 1 ]; then
wget "${POUNDER_CACHE}${NASM_TAR}"
fi
if [ ! -f "$NASM_TAR" ]; then
get_from_sourceforge nasm $NASM_TAR
fi
fi
# Unpack if necessary
if [ ! -d "NASM_PKG" ]; then
tar -xzf "$NASM_TAR"
fi
# Build
cd "$NASM_PKG"
./configure
make $*
export PATH=`/bin/ls -d $POUNDER_OPTDIR/nasm*/`:$PATH
fi
# Retrieve binary for lame, if necessary
PKGNAME=lame-3.96.1
TARNAME="$PKGNAME.tar.gz"
PROGNAME=lame
cd "$POUNDER_OPTDIR"
if [ ! -f "$TARNAME" ]; then
if [ $USE_CACHE -eq 1 ]; then
wget "${POUNDER_CACHE}${TARNAME}"
fi
if [ ! -f "$TARNAME" ]; then
get_from_sourceforge $PROGNAME $TARNAME
fi
fi
# Unpack if necessary
if [ ! -d "PKGNAME" ]; then
tar -xzf "$TARNAME"
fi
# Build with MMX/SSE/3dnow/whatever support
cd "$PKGNAME"
./configure --enable-nasm
make $*
# Now build schedutils for CPU affinity assignments
_PKGNAME=schedutils-1.4.0
S_TARNAME="$S_PKGNAME.tar.gz"
S_PROGNAME=taskset
# Is it already installed?
S_PROG=`which $S_PROGNAME`
if [ ! -z "$S_PROG" ]; then
exit 0
fi
# Does this OS support taskset?
grep sched_setaffinity /usr/include/sched.h > /dev/null 2>&1
if [ $? -ne 0 ]; then
# Can't find the sched_setaffinity syscall; abort.
# Probably we want to remove the schedutils dir in case
# this install was leftover from another distro.
cd "$POUNDER_OPTDIR"
rm -rf "$S_PKGNAME"
exit 0
fi
# Retrieve tarball, if necessary
cd "$POUNDER_OPTDIR"
if [ ! -f "$S_TARNAME" ]; then
if [ $USE_CACHE -eq 1 ]; then
wget "${POUNDER_CACHE}${S_TARNAME}"
fi
if [ ! -f "$S_TARNAME" ]; then
wget "http://tech9.net/rml/schedutils/packages/$VERSION/$S_TARNAME"
fi
fi
# Unpack if necessary
if [ ! -d "S_PKGNAME" ]; then
tar -xzf "$S_TARNAME"
fi
# Build
cd "$S_PKGNAME"
make $*