libretro-super/libretro-build.sh

198 lines
4.1 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="$WORKDIR/dist"
RARCH_DIST_DIR="$RARCH_DIR/$DIST_DIR"
fi
if [ -z "$JOBS" ]; then
JOBS=7
fi
if [ "$HOST_CC" ]; then
CC="${HOST_CC}-gcc"
CXX="${HOST_CC}-g++"
CXX11="${HOST_CC}-g++"
STRIP="${HOST_CC}-strip"
fi
if [ -z "$MAKE" ]; then
if uname -s | grep -i MINGW > /dev/null 2>&1; then
MAKE=mingw32-make
else
if type gmake > /dev/null 2>&1; then
MAKE=gmake
else
MAKE=make
fi
fi
fi
if [ -z "$CC" ]; then
if [ $FORMAT_COMPILER_TARGET = "osx" ]; then
CC=cc
elif uname -s | grep -i MINGW32 > /dev/null 2>&1; then
CC=mingw32-gcc
else
CC=gcc
fi
fi
if [ -z "$CXX" ]; then
if [ $FORMAT_COMPILER_TARGET = "osx" ]; then
CXX=c++
CXX11="clang++ -std=c++11 -stdlib=libc++"
# FIXME: Do this right later.
if [ "$ARCH" = "i386" ]; then
CC="cc -arch i386"
CXX="c++ -arch i386"
CXX11="clang++ -arch i386 -std=c++11 -stdlib=libc++"
fi
elif uname -s | grep -i MINGW32 > /dev/null 2>&1; then
CXX=mingw32-g++
CXX11=mingw32-g++
else
CXX=g++
CXX11=g++
fi
fi
FORMAT_COMPILER_TARGET_ALT=$FORMAT_COMPILER_TARGET
if [ "$FORMAT_COMPILER_TARGET" = "ios" ]; then
echo "iOS path: ${IOSSDK}"
echo "iOS version: ${IOSVER}"
fi
echo "CC = $CC"
echo "CXX = $CXX"
echo "CXX11 = $CXX11"
echo "STRIP = $STRIP"
. "$BASE_DIR/libretro-build-common.sh"
build_default_cores() {
# These build everywhere libretro-build.sh works
# (They also use rules builds, which will help later)
libretro_build_core 2048
libretro_build_core 3dengine
libretro_build_core 4do
libretro_build_core bluemsx
libretro_build_core catsfc
libretro_build_core desmume
libretro_build_core dosbox
libretro_build_core fb_alpha
libretro_build_core fceumm
libretro_build_core fmsx
libretro_build_core gambatte
libretro_build_core gpsp
libretro_build_core handy
libretro_build_core meteor
libretro_build_core nestopia
libretro_build_core nxengine
libretro_build_core o2em
libretro_build_core prboom
libretro_build_core prosystem
libretro_build_core quicknes
libretro_build_core snes9x
libretro_build_core snes9x_next
libretro_build_core stella
libretro_build_core tgbdual
libretro_build_core tyrquake
libretro_build_core vba_next
libretro_build_core vbam
libretro_build_core vecx
libretro_build_core virtualjaguar
# Nothing past here supports theos
[ "$platform" = "theos_ios" ] && return
libretro_build_core bsnes
libretro_build_core bsnes_cplusplus98
libretro_build_core bsnes_mercury
libretro_build_core dinothawr
libretro_build_core emux
libretro_build_core fuse
libretro_build_core genesis_plus_gx
libretro_build_core gw
libretro_build_core hatari
libretro_build_core lutro
libretro_build_core mame
libretro_build_core mame078
libretro_build_core mednafen_gba
libretro_build_core mednafen_lynx
libretro_build_core mednafen_ngp
libretro_build_core mednafen_pce_fast
libretro_build_core mednafen_pcfx
libretro_build_core mednafen_psx
libretro_build_core mednafen_snes
libretro_build_core mednafen_supergrafx
libretro_build_core mednafen_vb
libretro_build_core mednafen_wswan
libretro_build_core mupen64plus
libretro_build_core picodrive
libretro_build_core scummvm
libretro_build_core stonesoup
libretro_build_core yabause
if [ $platform != "win" ]; then
libretro_build_core pcsx_rearmed
fi
if [ $platform != "ios" ]; then
libretro_build_core ffmpeg
libretro_build_core ppsspp
libretro_build_core bnes
fi
build_libretro_test
}
mkdir -p "$RARCH_DIST_DIR"
if [ -n "$SKIP_UNCHANGED" ]; then
[ -z "$BUILD_REVISIONS_DIR" ] && BUILD_REVISIONS_DIR="$WORKDIR/build-revisions"
echo "mkdir -p \"$BUILD_REVISIONS_DIR\""
mkdir -p "$BUILD_REVISIONS_DIR"
fi
if [ -n "$1" ]; then
while [ -n "$1" ]; do
case "$1" in
build_libretro_*)
# "Old"-style
$1
;;
*)
# New style (just generic cores for now)
libretro_build_core $1
;;
esac
shift
done
else
build_default_cores
fi
summary