mirror of
https://github.com/libretro/libretro-super
synced 2024-12-01 04:03:00 +00:00
364 lines
12 KiB
Bash
Executable File
364 lines
12 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
|
|
. $BASE_DIR/script-modules/fetch-rules.sh
|
|
|
|
|
|
# Keep three copies so we don't have to rebuild stuff all the time.
|
|
# FIXME: If you need 3 copies of source to compile 3 sets of objects, you're
|
|
# doing it wrong. We should fix this.
|
|
fetch_project_bsnes()
|
|
{
|
|
echo "=== Fetching $3 ==="
|
|
fetch_git "$1" "$2" ""
|
|
fetch_git "$WORKDIR/$2" "$2/perf" ""
|
|
fetch_git "$WORKDIR/$2" "$2/balanced" ""
|
|
}
|
|
|
|
# TODO: Move all of these rules to their own file
|
|
|
|
# FIXME: Not ready for a meta-fetch rule
|
|
#libretro_bsnes_fetch_url="https://github.com/libretro/bsnes-libretro.git"
|
|
#libretro_bsnes_name="bsnes/higan"
|
|
|
|
libretro_snes9x_fetch_url="https://github.com/libretro/snes9x.git"
|
|
libretro_snes9x_name="SNES9x"
|
|
|
|
libretro_snes9x_next_fetch_url="https://github.com/libretro/snes9x-next.git"
|
|
libretro_snes9x_next_name="SNES9x Next"
|
|
|
|
libretro_genesis_plus_gx_fetch_url="https://github.com/libretro/Genesis-Plus-GX.git"
|
|
libretro_genesis_plus_gx="Genesis Plus GX"
|
|
|
|
libretro_fb_alpha_fetch_url="https://github.com/libretro/fba-libretro.git"
|
|
libretro_fb_alpha_name="Final Burn Alpha"
|
|
|
|
libretro_vba_next_fetch_url="https://github.com/libretro/vba-next.git"
|
|
libretro_vba_next_name="VBA Next"
|
|
|
|
libretro_vbam_fetch_url="https://github.com/libretro/vbam-libretro.git"
|
|
libretro_vbam_name="VBA-M"
|
|
|
|
libretro_handy_fetch_url="https://github.com/libretro/libretro-handy.git"
|
|
libretro_handy_name="Handy"
|
|
|
|
libretro_bnes_fetch_url="https://github.com/libretro/bnes-libretro.git"
|
|
libretro_bnes_name="bnes/higan"
|
|
|
|
libretro_fceumm_fetch_url="https://github.com/libretro/libretro-fceumm.git"
|
|
libretro_fceumm_name="FCEUmm"
|
|
|
|
libretro_gambatte_fetch_url="https://github.com/libretro/gambatte-libretro.git"
|
|
libretro_gambatte_name="Gambatte"
|
|
|
|
libretro_meteor_fetch_url="https://github.com/libretro/meteor-libretro.git"
|
|
libretro_meteor_name="Meteor"
|
|
|
|
libretro_nxengine_fetch_url="https://github.com/libretro/nxengine-libretro.git"
|
|
libretro_nxengine_name="NXEngine"
|
|
|
|
libretro_prboom_fetch_url="https://github.com/libretro/libretro-prboom.git"
|
|
libretro_prboom_name="PrBoom"
|
|
|
|
libretro_stella_fetch_url="https://github.com/libretro/stella-libretro.git"
|
|
libretro_stella_name="Stella"
|
|
|
|
libretro_desmume_fetch_url="https://github.com/libretro/desmume.git"
|
|
libretro_desmume_name="DeSmuME"
|
|
|
|
libretro_quicknes_fetch_url="https://github.com/libretro/QuickNES_Core.git"
|
|
libretro_quicknes_name="QuickNES"
|
|
|
|
libretro_nestopia_fetch_url="https://github.com/libretro/nestopia.git"
|
|
libretro_nestopia_name="Nestopia"
|
|
|
|
libretro_tyrquake_fetch_url="https://github.com/libretro/tyrquake.git"
|
|
libretro_tyrquake_name="TyrQuake"
|
|
|
|
libretro_pcsx_rearmed_fetch_url="https://github.com/libretro/pcsx_rearmed.git"
|
|
libretro_pcsx_rearmed_name="PCSX ReARMed"
|
|
|
|
libretro_mednafen_gba_fetch_url="https://github.com/libretro/beetle-gba-libretro.git"
|
|
libretro_mednafen_gba_name="Mednafen/Beetle GBA"
|
|
|
|
libretro_mednafen_lynx_fetch_url="https://github.com/libretro/beetle-lynx-libretro.git"
|
|
libretro_mednafen_lynx_name="Mednafen/Beetle Lynx"
|
|
|
|
libretro_mednafen_ngp_fetch_url="https://github.com/libretro/beetle-ngp-libretro.git"
|
|
libretro_mednafen_ngp_name="Mednafen/Beetle NeoPop"
|
|
|
|
libretro_mednafen_pce_fast_fetch_url="https://github.com/libretro/beetle-pce-fast-libretro.git"
|
|
libretro_mednafen_pce_fast_name="Mednafen/Beetle PCE FAST"
|
|
|
|
libretro_mednafen_supergrafx_fetch_url="https://github.com/libretro/beetle-supergrafx-libretro.git"
|
|
libretro_mednafen_supergrafx_name="Mednafen/Beetle SuperGrafx"
|
|
|
|
libretro_mednafen_psx_fetch_url="https://github.com/libretro/mednafen-psx-libretro.git"
|
|
libretro_mednafen_psx_name="Mednafen PSX"
|
|
|
|
libretro_mednafen_pcfx_fetch_url="https://github.com/libretro/beetle-pcfx-libretro.git"
|
|
libretro_mednafen_pcfx_name="Mednafen/Beetle PC-FX"
|
|
|
|
libretro_mednafen_snes_fetch_url="https://github.com/libretro/beetle-bsnes-libretro.git"
|
|
libretro_mednafen_snes_name="Mednafen/Beetle bsnes"
|
|
|
|
libretro_mednafen_vb_fetch_url="https://github.com/libretro/beetle-vb-libretro.git"
|
|
libretro_mednafen_vb_name="Mednafen/Beetle VB"
|
|
|
|
libretro_mednafen_wswan_fetch_url="https://github.com/libretro/beetle-wswan-libretro.git"
|
|
libretro_mednafen_wswan_name="Mednafen/Beetle WonderSwan"
|
|
|
|
libretro_scummvm_fetch_url="https://github.com/libretro/scummvm.git"
|
|
libretro_scummvm_name="ScummVM"
|
|
|
|
libretro_yabause_fetch_url="https://github.com/libretro/yabause.git"
|
|
libretro_yabause_name="Yabause"
|
|
|
|
libretro_dosbox_fetch_url="https://github.com/libretro/dosbox-libretro.git"
|
|
libretro_dosbox_name="DOSBox"
|
|
|
|
libretro_virtualjaguar_fetch_url="https://github.com/libretro/virtualjaguar-libretro.git"
|
|
libretro_virtualjaguar_name="Virtual Jaguar"
|
|
|
|
libretro_mame078_fetch_url="https://github.com/libretro/mame2003-libretro.git"
|
|
libretro_mame078_name="MAME 2003 (0.78)"
|
|
|
|
libretro_mame139_fetch_url="https://github.com/libretro/mame2010-libretro.git"
|
|
libretro_mame139_name="MAME 2010 (0.139)"
|
|
|
|
libretro_mame_fetch_url="https://github.com/libretro/mame.git"
|
|
libretro_mame_name="MAME (git)"
|
|
|
|
libretro_ffmpeg_fetch_url="https://github.com/libretro/FFmpeg.git"
|
|
libretro_ffmpeg_name="FFmpeg"
|
|
|
|
libretro_bsnes_cplusplus98_fetch_url="https://github.com/libretro/bsnes-libretro-cplusplus98.git"
|
|
libretro_bsnes_cplusplus98_name="bsnes C++98 (v0.85)"
|
|
|
|
libretro_bsnes_mercury_fetch_url="https://github.com/libretro/bsnes-mercury.git"
|
|
libretro_bsnes_mercury_name="bsnes-mercury"
|
|
|
|
libretro_picodrive_fetch_url="https://github.com/libretro/picodrive.git"
|
|
libretro_picodrive_name="Picodrive"
|
|
libretro_picodrive_git_submodules="1"
|
|
libretro_picodrive_git_submodules_update="1"
|
|
|
|
libretro_tgbdual_fetch_url="https://github.com/libretro/tgbdual-libretro.git"
|
|
libretro_tgbdual_name="TGB Dual"
|
|
|
|
libretro_mupen64plus_fetch_url="https://github.com/libretro/mupen64plus-libretro.git"
|
|
libretro_mupen64plus_name="Mupen64Plus"
|
|
|
|
libretro_dinothawr_fetch_url="https://github.com/libretro/Dinothawr.git"
|
|
|
|
libretro_uae_fetch_url="https://github.com/libretro/libretro-uae.git"
|
|
libretro_uae_name="UAE"
|
|
|
|
libretro_3dengine_fetch_url="https://github.com/libretro/libretro-3dengine.git"
|
|
libretro_3dengine_name="3DEngine"
|
|
|
|
libretro_remotejoy_fetch_url="https://github.com/libretro/libretro-remotejoy.git"
|
|
libretro_remotejoy_name="RemoteJoy"
|
|
|
|
libretro_bluemsx_fetch_url="https://github.com/libretro/blueMSX-libretro.git"
|
|
libretro_bluemsx_name="blueMSX"
|
|
|
|
libretro_fmsx_fetch_url="https://github.com/libretro/fmsx-libretro.git"
|
|
libretro_fmsx_name="fMSX"
|
|
|
|
libretro_2048_fetch_url="https://github.com/libretro/libretro-2048.git"
|
|
|
|
libretro_vecx_fetch_url="https://github.com/libretro/libretro-vecx.git"
|
|
|
|
libretro_ppsspp_fetch_url="https://github.com/libretro/ppsspp.git"
|
|
libretro_ppsspp_name="PPSSPP"
|
|
libretro_ppsspp_git_submodules="1"
|
|
libretro_ppsspp_git_submodules_update="1"
|
|
|
|
libretro_prosystem_fetch_url="https://github.com/libretro/prosystem-libretro.git"
|
|
libretro_prosystem_name="ProSystem"
|
|
|
|
libretro_o2em_fetch_url="https://github.com/libretro/libretro-o2em.git"
|
|
libretro_o2em_name="O2EM"
|
|
|
|
libretro_4do_fetch_url="https://github.com/libretro/4do-libretro.git"
|
|
libretro_4do_name="4DO"
|
|
|
|
libretro_catsfc_fetch_url="https://github.com/libretro/CATSFC-libretro.git"
|
|
libretro_catsfc_name="CATSFC"
|
|
|
|
libretro_stonesoup_fetch_url="https://github.com/libretro/crawl-ref.git"
|
|
libretro_stonesoup_name="Dungeon Crawl Stone Soup"
|
|
libretro_stonesoup_git_submodules="1"
|
|
|
|
libretro_hatari_fetch_url="https://github.com/libretro/hatari.git"
|
|
libretro_hatari_name="Hatari"
|
|
|
|
libretro_tempgba_fetch_url="https://github.com/libretro/TempGBA-libretro.git"
|
|
libretro_tempgba_name="TempGBA"
|
|
|
|
libretro_gpsp_fetch_url="https://github.com/libretro/gpsp.git"
|
|
libretro_gpsp_name="gpSP"
|
|
|
|
libretro_emux_fetch_url="https://github.com/libretro/emux.git"
|
|
libretro_emux_name="Emux"
|
|
|
|
libretro_fuse_fetch_url="https://github.com/libretro/fuse-libretro.git"
|
|
libretro_fuse_name="Fuse"
|
|
|
|
|
|
# libretro_fetch_core: Download the given core using its fetch rules
|
|
#
|
|
# $1 Name of the core to fetch
|
|
libretro_fetch_core() {
|
|
eval "core_name=\$libretro_${1}_name"
|
|
[ -z "$core_name" ] && core_name="$1"
|
|
echo "=== $core_name"
|
|
|
|
eval "core_fetch_rule=\$libretro_${1}_fetch_rule"
|
|
[ -z "$core_fetch_rule" ] && core_fetch_rule=fetch_git
|
|
|
|
eval "core_dir=\$libretro_${1}_dir"
|
|
[ -z "$core_dir" ] && core_dir="libretro-$1"
|
|
|
|
case "$core_fetch_rule" in
|
|
fetch_git)
|
|
eval "core_fetch_url=\$libretro_${1}_fetch_url"
|
|
if [ -z "$core_fetch_url" ]; then
|
|
echo "libretro_fetch_core:No URL set to fetch $1 via git."
|
|
exit 1
|
|
fi
|
|
|
|
eval "core_git_submodules=\$libretro_${1}_git_submodules"
|
|
eval "core_git_submodules_update=\$libretro_${1}_git_submodules_update"
|
|
|
|
echo "Fetching ${1}..."
|
|
$core_fetch_rule "$core_fetch_url" "$core_dir" "" $core_git_submodules $core_git_submodules_update
|
|
;;
|
|
*)
|
|
echo "libretro_fetch_core:Unknown fetch rule for $1: \"$core_fetch_rule\"."
|
|
exit 1
|
|
;;
|
|
esac
|
|
}
|
|
|
|
fetch_retroarch() {
|
|
echo "=== Fetching RetroArch ==="
|
|
fetch_git "https://github.com/libretro/RetroArch.git" "retroarch" ""
|
|
fetch_git "https://github.com/libretro/common-shaders.git" "retroarch/media/shaders_cg" ""
|
|
fetch_git "https://github.com/libretro/common-overlays.git" "retroarch/media/overlays" ""
|
|
fetch_git "https://github.com/libretro/retroarch-assets.git" "retroarch/media/assets" ""
|
|
fetch_git "https://github.com/libretro/retroarch-joypad-autoconfig.git" "retroarch/media/autoconfig" ""
|
|
fetch_git "https://github.com/libretro/libretro-database.git" "retroarch/media/libretrodb" ""
|
|
}
|
|
|
|
fetch_tools() {
|
|
fetch_git "https://github.com/libretro/libretro-manifest.git" "libretro-manifest" "libretro/libretro-manifest"
|
|
fetch_git "https://github.com/libretro/libretrodb.git" "libretrodb" "libretro/libretrodb"
|
|
fetch_git "https://github.com/libretro/libretro-dat-pull.git" "libretro-dat-pull" "libretro/libretro-dat-pull"
|
|
fetch_git "https://github.com/libretro/libretro-common.git" "libretro-common" "libretro/common"
|
|
}
|
|
|
|
fetch_libretro_bsnes() {
|
|
fetch_project_bsnes "https://github.com/libretro/bsnes-libretro.git" "libretro-bsnes" "libretro/bSNES"
|
|
}
|
|
|
|
|
|
if [ -n "$1" ]; then
|
|
while [ -n "$1" ]; do
|
|
case "$1" in
|
|
fetch_libretro_*)
|
|
# "Old"-style
|
|
$1
|
|
;;
|
|
*)
|
|
# New style (just cores for now)
|
|
libretro_fetch_core $1
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
else
|
|
fetch_retroarch
|
|
fetch_tools
|
|
|
|
# TODO: Modular rules-based fetch needed
|
|
fetch_libretro_bsnes
|
|
|
|
libretro_fetch_core snes9x
|
|
libretro_fetch_core snes9x_next
|
|
libretro_fetch_core genesis_plus_gx
|
|
libretro_fetch_core fb_alpha
|
|
libretro_fetch_core vba_next
|
|
libretro_fetch_core vbam
|
|
libretro_fetch_core handy
|
|
libretro_fetch_core bnes
|
|
libretro_fetch_core fceumm
|
|
libretro_fetch_core gambatte
|
|
libretro_fetch_core meteor
|
|
libretro_fetch_core nxengine
|
|
libretro_fetch_core prboom
|
|
libretro_fetch_core stella
|
|
libretro_fetch_core desmume
|
|
libretro_fetch_core quicknes
|
|
libretro_fetch_core nestopia
|
|
libretro_fetch_core tyrquake
|
|
libretro_fetch_core pcsx_rearmed
|
|
libretro_fetch_core mednafen_gba
|
|
libretro_fetch_core mednafen_lynx
|
|
libretro_fetch_core mednafen_ngp
|
|
libretro_fetch_core mednafen_pce_fast
|
|
libretro_fetch_core mednafen_supergrafx
|
|
libretro_fetch_core mednafen_psx
|
|
libretro_fetch_core mednafen_pcfx
|
|
libretro_fetch_core mednafen_snes
|
|
libretro_fetch_core mednafen_vb
|
|
libretro_fetch_core mednafen_wswan
|
|
libretro_fetch_core scummvm
|
|
libretro_fetch_core yabause
|
|
libretro_fetch_core dosbox
|
|
libretro_fetch_core virtualjaguar
|
|
libretro_fetch_core mame078
|
|
libretro_fetch_core mame139
|
|
libretro_fetch_core mame
|
|
libretro_fetch_core ffmpeg
|
|
libretro_fetch_core bsnes_cplusplus98
|
|
libretro_fetch_core bsnes_mercury
|
|
libretro_fetch_core picodrive
|
|
libretro_fetch_core tgbdual
|
|
libretro_fetch_core mupen64plus
|
|
libretro_fetch_core dinothawr
|
|
libretro_fetch_core uae
|
|
libretro_fetch_core 3dengine
|
|
libretro_fetch_core remotejoy
|
|
libretro_fetch_core bluemsx
|
|
libretro_fetch_core fmsx
|
|
libretro_fetch_core 2048
|
|
libretro_fetch_core vecx
|
|
libretro_fetch_core ppsspp
|
|
libretro_fetch_core prosystem
|
|
libretro_fetch_core o2em
|
|
libretro_fetch_core 4do
|
|
libretro_fetch_core catsfc
|
|
libretro_fetch_core stonesoup
|
|
libretro_fetch_core hatari
|
|
libretro_fetch_core tempgba
|
|
libretro_fetch_core gpsp
|
|
libretro_fetch_core emux
|
|
libretro_fetch_core fuse
|
|
fi
|