mirror of
https://github.com/libretro/libretro-super
synced 2024-11-28 20:14:22 +00:00
137 lines
3.0 KiB
Bash
Executable File
137 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
. ./libretro-config.sh
|
|
|
|
# BSDs don't have readlink -f
|
|
read_link()
|
|
{
|
|
TARGET_FILE="$1"
|
|
cd $(dirname "$TARGET_FILE")
|
|
TARGET_FILE=$(basename "$TARGET_FILE")
|
|
|
|
while [ -L "$TARGET_FILE" ]
|
|
do
|
|
TARGET_FILE=$(readlink "$TARGET_FILE")
|
|
cd $(dirname "$TARGET_FILE")
|
|
TARGET_FILE=$(basename "$TARGET_FILE")
|
|
done
|
|
|
|
PHYS_DIR=$(pwd -P)
|
|
RESULT="$PHYS_DIR/$TARGET_FILE"
|
|
echo $RESULT
|
|
}
|
|
|
|
SCRIPT=$(read_link "$0")
|
|
echo "Script: $SCRIPT"
|
|
BASE_DIR=$(dirname "$SCRIPT")
|
|
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
|
|
./configure $ENABLE_GLES $ENABLE_NEON
|
|
if [ -z "${NOCLEAN}" ]; then
|
|
${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
|