distribution/packages/games/libretro/flycast/package.mk
2022-02-14 16:15:16 -05:00

82 lines
2.8 KiB
Makefile

################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# 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, 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 OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="flycast"
PKG_VERSION="886188804de48a4bd9324046598e8dedfd0d2099"
PKG_SHA256="9e84dcd7efe38198c2b34904f3e0ff44455b1391b1f281fb3ef940e58b113ee3"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/flycast"
PKG_URL="$PKG_SITE/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain $OPENGLES"
PKG_LONGDESC="Flycast is a multiplatform Sega Dreamcast emulator "
PKG_TOOLCHAIN="make"
PKG_BUILD_FLAGS="-gold"
pre_configure_target() {
sed -i 's/define CORE_OPTION_NAME "reicast"/define CORE_OPTION_NAME "flycast"/g' core/libretro/libretro_core_option_defines.h
# Flycast defaults to -O3 but then CHD v5 do not seem to work on EmuELEC so we change it to -O2 to fix the issue
#PKG_MAKE_OPTS_TARGET="ARCH=arm HAVE_OPENMP=1 GIT_VERSION=${PKG_VERSION:0:7} FORCE_GLES=1 SET_OPTIM=-O2 HAVE_LTCG=0"
PKG_MAKE_OPTS_TARGET="ARCH=arm HAVE_OPENMP=1 GIT_VERSION=${PKG_VERSION:0:7} FORCE_GLES=1 HAVE_LTCG=0"
if [ "${ARCH}" == "aarch64" ]; then
PKG_MAKE_OPTS_TARGET+=" WITH_DYNAREC=arm64"
fi
}
pre_make_target() {
export BUILD_SYSROOT=$SYSROOT_PREFIX
if [ "$OPENGLES_SUPPORT" = "yes" ]; then
PKG_MAKE_OPTS_TARGET+=" FORCE_GLES=1 LDFLAGS=-lrt"
fi
if [ "${ARCH}" == "aarch64" ]; then
case $PROJECT in
Amlogic-ng)
PKG_MAKE_OPTS_TARGET+=" platform=odroid-n2"
;;
Amlogic)
PKG_MAKE_OPTS_TARGET+=" platform=arm64"
;;
esac
else
case $PROJECT in
Amlogic-ng)
PKG_MAKE_OPTS_TARGET+=" platform=AMLG12B"
;;
Amlogic)
PKG_MAKE_OPTS_TARGET+=" platform=AMLGX"
;;
esac
fi
if [[ "$DEVICE" =~ RG351 ]] || [[ "$DEVICE" =~ RG552 ]]; then
if [ "$ARCH" == "arm" ]; then
PKG_MAKE_OPTS_TARGET+=" platform=classic_armv8_a35"
else
PKG_MAKE_OPTS_TARGET+=" platform=arm64"
fi
fi
}
makeinstall_target() {
mkdir -p $INSTALL/usr/lib/libretro
cp flycast_libretro.so $INSTALL/usr/lib/libretro/
}