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