| #!/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 $* |