libretro-super/retroarch-build.sh
2015-02-23 02:47:45 -08:00

130 lines
2.6 KiB
Bash
Executable File

#! /usr/bin/env bash
# vim: set ts=3 sw=3 noet ft=sh : bash
SCRIPT="${0#./}"
BASE_DIR="${SCRIPT%/*}"
WORKDIR="$PWD"
if [ "$BASE_DIR" = "$SCRIPT" ]; then
BASE_DIR="$WORKDIR"
else
if [[ "$0" != /* ]]; then
# Make the path absolute
BASE_DIR="$WORKDIR/$BASE_DIR"
fi
fi
. "$BASE_DIR/libretro-config.sh"
if [ -z "$RARCH_DIST_DIR" ]; then
RARCH_DIR="$BASE_DIR/dist"
RARCH_DIST_DIR="$RARCH_DIR/$DIST_DIR"
fi
die()
{
echo $1
#exit 1
}
if [ "$HOST_CC" ]; then
CC="${HOST_CC}-gcc"
CXX="${HOST_CC}-g++"
STRIP="${HOST_CC}-strip"
fi
if [ -z "$MAKE" ]; then
if [ "$(expr substr $(uname -s) 1 7)" = "MINGW32" ]; then
MAKE=mingw32-make
else
MAKE=make
fi
fi
if [ -z "$CC" ]; then
if [ $FORMAT_COMPILER_TARGET = "osx" ]; then
CC=clang
elif [ "$(expr substr $(uname -s) 1 7)" = "MINGW32" ]; then
CC=mingw32-gcc
else
CC=gcc
fi
fi
if [ -z "$CXX" ]; then
if [ $FORMAT_COMPILER_TARGET = "osx" ]; then
CXX=clang++
elif [ "$(expr substr $(uname -s) 1 7)" = "MINGW32" ]; then
CXX=mingw32-g++
else
CXX=g++
fi
fi
echo "CC = $CC"
echo "CXX = $CXX"
echo "STRIP = $STRIP"
mkdir -p "$RARCH_DIST_DIR"
export RARCHCFLAGS=""
check_deps()
{
if [ $ENABLE_GLES ]; then
echo "=== Enabling OpenGL ES ==="
export ENABLE_GLES="--enable-gles"
fi
if [ $ARM_NEON ]; then
echo "=== Enabling ARM NEON support ==="
export ENABLE_NEON="--enable-neon"
fi
if [ $ARM_HARDFLOAT ]; then
echo "=== Enabling ARM Hard float ABI support ==="
export RARCHCFLAGS="${RARCHCFLAGS} -mfloat-abi=hard"
fi
if [ $ARM_SOFTFLOAT ]; then
echo "=== Enabling ARM Soft float ABI support ==="
export RARCHCFLAGS="${RARCHCFLAGS} -mfloat-abi=softfp"
fi
if [ "$CORTEX_A8" ]; then
echo "=== Enabling Cortex A8 CFLAGS ==="
export RARCHCFLAGS="${RARCHCFLAGS} -mcpu=cortex-a8 -mtune=cortex-a8"
fi
if [ "$CORTEX_A9" ]; then
echo "=== Enabling Cortex A9 CFLAGS ==="
export RARCHCFLAGS="${RARCHCFLAGS} -mcpu=cortex-a9 -mtune=cortex-a9"
fi
if [ $ARM_NEON ]; then
echo "=== Enabling ARM NEON support (CFLAGS) ==="
export RARCHCFLAGS="${RARCHCFLAGS} -mfpu=neon"
fi
}
build_retroarch()
{
cd "$BASE_DIR"
pwd
if [ -d "retroarch" ]; then
echo "=== Building RetroArch ==="
cd retroarch
check_deps
if [ -z "${NOCLEAN}" ]; then
./configure $ENABLE_GLES $ENABLE_NEON
${MAKE} -f Makefile platform=${FORMAT_COMPILER_TARGET} CC="gcc ${RARCHCFLAGS}" $COMPILER -j$JOBS clean || die "Failed to clean RetroArch"
fi
${MAKE} -f Makefile platform=${FORMAT_COMPILER_TARGET} CC="gcc ${RARCHCFLAGS}" $COMPILER -j$JOBS || die "Failed to build RetroArch"
else
echo "RetroArch not fetched, skipping ..."
fi
}
if [ $1 ]; then
$1
else
build_retroarch
fi