libretro-super/libretro-build-android-mk.sh

378 lines
8.8 KiB
Bash
Raw Normal View History

2013-12-08 20:10:42 -05:00
#!/bin/bash
2013-02-10 12:30:38 -05:00
. ./libretro-config.sh
#split TARGET_ABI string into an array we can iterate over
IFS=' ' read -ra ABIS <<< "$TARGET_ABIS"
# 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)
RARCH_DIR=$BASE_DIR/dist
RARCH_DIST_DIR=$RARCH_DIR/android
FORMAT=_android
2013-05-17 20:11:06 -04:00
FORMAT_EXT=so
2013-02-10 12:30:38 -05:00
die()
{
echo $1
#exit 1
}
2014-06-22 19:50:36 -04:00
2014-06-22 17:34:25 -04:00
# $1 is core name
# $2 is subdir (if there's no subdir, put "." here)
build_libretro_generic_makefile()
2014-06-21 12:34:11 -04:00
{
cd $BASE_DIR
if [ -d "libretro-${1}" ]; then
echo "=== Building ${1} ==="
cd libretro-${1}
cd ${2}
for a in "${ABIS[@]}"; do
if [ -z "${NOCLEAN}" ]; then
ndk-build clean APP_ABI=${a} || die "Failed to clean ${a} ${1}"
fi
ndk-build -j$JOBS APP_ABI=${a} || die "Failed to build ${a} ${1}"
cp ../libs/${a}/libretro.${FORMAT_EXT} $RARCH_DIST_DIR/${a}/${1}_libretro${FORMAT}.${FORMAT_EXT}
done
2014-06-21 12:34:11 -04:00
else
echo "${1} not fetched, skipping ..."
2014-06-21 12:34:11 -04:00
fi
}
build_libretro_2048() {
build_libretro_generic_makefile "2048" "jni"
}
2014-11-01 17:33:51 -04:00
build_libretro_4do() {
build_libretro_generic_makefile "4do" "jni"
}
2014-11-13 00:00:46 -05:00
build_libretro_bluemsx() {
build_libretro_generic_makefile "bluemsx" "jni"
}
2014-11-01 18:42:26 -04:00
build_libretro_fmsx() {
build_libretro_generic_makefile "fmsx" "jni"
}
2015-01-02 17:10:51 -05:00
build_libretro_dosbox() {
build_libretro_generic_makefile "dosbox" "jni"
}
build_libretro_stella() {
build_libretro_generic_makefile "stella" "jni"
2014-06-18 14:30:58 -04:00
}
build_libretro_genesis_plus_gx() {
build_libretro_generic_makefile "genesis_plus_gx" "libretro/jni"
2014-06-21 21:14:12 -04:00
}
2014-12-10 13:29:58 -05:00
build_libretro_gpsp() {
build_libretro_generic_makefile "gpsp" "jni"
}
build_libretro_vba_next() {
build_libretro_generic_makefile "vba_next" "libretro/jni"
}
build_libretro_vbam() {
2014-09-18 17:56:51 -04:00
build_libretro_generic_makefile "vbam" "src/libretro/jni"
2014-06-21 12:22:10 -04:00
}
build_libretro_catsfc() {
build_libretro_generic_makefile "catsfc" "jni"
}
2014-11-01 17:13:07 -04:00
build_libretro_prosystem() {
build_libretro_generic_makefile "prosystem" "jni"
}
build_libretro_tgbdual() {
build_libretro_generic_makefile "tgbdual" "libretro/jni"
}
build_libretro_snes9x() {
build_libretro_generic_makefile "snes9x" "libretro/jni"
2014-06-18 19:38:24 -04:00
}
build_libretro_snes9x_next() {
build_libretro_generic_makefile "snes9x_next" "libretro/jni"
2014-06-21 23:13:43 -04:00
}
build_libretro_beetle_bsnes() {
build_libretro_generic_makefile "mednafen_snes" "jni"
}
build_libretro_beetle_lynx() {
build_libretro_generic_makefile "mednafen_lynx" "jni"
2013-02-10 12:30:38 -05:00
}
build_libretro_beetle_gba() {
build_libretro_generic_makefile "mednafen_gba" "jni"
2014-07-29 13:19:15 -04:00
}
build_libretro_beetle_ngp() {
build_libretro_generic_makefile "mednafen_ngp" "jni"
2013-07-30 20:05:30 -04:00
}
build_libretro_beetle_wswan() {
build_libretro_generic_makefile "mednafen_wswan" "jni"
2013-02-10 12:30:38 -05:00
}
build_libretro_beetle_psx() {
build_libretro_generic_makefile "mednafen_psx" "jni"
2013-02-10 12:30:38 -05:00
}
build_libretro_beetle_pcfx() {
build_libretro_generic_makefile "mednafen_pcfx" "jni"
}
build_libretro_beetle_vb() {
build_libretro_generic_makefile "mednafen_vb" "jni"
}
build_libretro_beetle_pce_fast() {
build_libretro_generic_makefile "mednafen_pce_fast" "jni"
}
build_libretro_beetle_supergrafx() {
build_libretro_generic_makefile "mednafen_supergrafx" "jni"
2013-02-10 12:30:38 -05:00
}
build_libretro_nx() {
build_libretro_generic_makefile "nxengine" "jni"
2013-02-10 12:30:38 -05:00
}
build_libretro_prboom()
{
build_libretro_generic_makefile "prboom" "libretro/jni"
}
build_libretro_nestopia() {
build_libretro_generic_makefile "nestopia" "libretro/jni"
2013-02-10 12:30:38 -05:00
}
build_libretro_tyrquake() {
build_libretro_generic_makefile "tyrquake" "libretro/jni"
2013-02-10 12:30:38 -05:00
}
build_libretro_pcsx_rearmed() {
build_libretro_generic_makefile "pcsx_rearmed" "jni"
}
2014-11-01 18:26:32 -04:00
build_libretro_ppsspp() {
build_libretro_generic_makefile "ppsspp" "libretro/jni"
}
build_libretro_picodrive() {
build_libretro_generic_makefile "picodrive" "jni"
}
build_libretro_quicknes() {
build_libretro_generic_makefile "quicknes" "libretro/jni"
}
build_libretro_handy() {
build_libretro_generic_makefile "handy" "libretro/jni"
}
build_libretro_yabause() {
build_libretro_generic_makefile "yabause" "libretro/jni"
}
2014-11-01 03:04:41 -04:00
build_libretro_vecx() {
build_libretro_generic_makefile "vecx" "libretro/jni"
}
build_libretro_mupen64()
{
build_libretro_generic_makefile "mupen64plus" "libretro/jni"
}
2014-01-20 05:01:06 -05:00
build_libretro_3dengine() {
build_libretro_generic_makefile "3dengine" "jni"
}
2014-11-01 17:22:00 -04:00
build_libretro_o2em() {
build_libretro_generic_makefile "o2em" "jni"
}
build_libretro_fceumm() {
build_libretro_generic_makefile "fceumm" "src/drivers/libretro/jni"
}
build_libretro_gambatte() {
build_libretro_generic_makefile "gambatte" "libgambatte/libretro/jni"
}
2014-11-02 15:10:50 -05:00
build_libretro_meteor() {
build_libretro_generic_makefile "meteor" "libretro/jni"
}
build_libretro_dinothawr() {
build_libretro_generic_makefile "dinothawr" "android/eclipse/jni"
2014-01-20 05:01:06 -05:00
}
build_libretro_virtualjaguar() {
build_libretro_generic_makefile "virtualjaguar" "jni"
}
2014-08-22 09:39:20 -04:00
build_libretro_desmume() {
build_libretro_generic_makefile "desmume" "desmume/src/libretro/jni"
}
2014-08-22 09:39:20 -04:00
build_libretro_fb_alpha() {
build_libretro_generic_makefile "fb_alpha" "svn-current/trunk/projectfiles/libretro-android/jni"
}
create_dist_dir()
{
if [ -d $RARCH_DIR ]; then
echo "Directory $RARCH_DIR already exists, skipping creation..."
else
mkdir $RARCH_DIR
fi
if [ -d $RARCH_DIST_DIR ]; then
echo "Directory $RARCH_DIST_DIR already exists, skipping creation..."
else
mkdir $RARCH_DIST_DIR
fi
for a in "${ABIS[@]}"; do
if [ -d $RARCH_DIST_DIR/${a} ]; then
echo "Directory $RARCH_DIST_DIR/${a} already exists, skipping creation..."
else
mkdir $RARCH_DIST_DIR/${a}
fi
done
}
build_libretro_bsnes()
{
2014-08-11 14:11:34 -04:00
CORENAME="bsnes"
#TODO - maybe accuracy/balanced cores as well
cd $BASE_DIR
2014-08-11 14:11:34 -04:00
if [ -d "libretro-${CORENAME}" ]; then
2014-08-11 14:25:14 -04:00
echo "=== Building ${CORENAME} ==="
2014-08-11 14:11:34 -04:00
cd libretro-${CORENAME}/
2014-11-01 03:04:41 -04:00
cd target-libretro/jni
for a in "${ABIS[@]}"; do
if [ -z "${NOCLEAN}" ]; then
ndk-build clean APP_ABI=${a} || die "Failed to clean ${a} ${CORENAME}"
fi
ndk-build -j$JOBS APP_ABI=${a} || die "Failed to build ${a} ${CORENAME}"
2014-11-02 15:40:26 -05:00
cp ../libs/${a}/libretro_${CORENAME}_performance.${FORMAT_EXT} $RARCH_DIST_DIR/${a}/${CORENAME}_performance_libretro${FORMAT}.${FORMAT_EXT}
done
else
echo "${CORENAME} not fetched, skipping ..."
fi
}
build_libretro_bsnes_mercury()
{
CORENAME="bsnes"
#TODO - maybe accuracy/balanced cores as well
cd $BASE_DIR
if [ -d "libretro-${CORENAME}" ]; then
echo "=== Building ${CORENAME}-mercury ==="
cd libretro-${CORENAME}/
cd target-libretro/jni
for a in "${ABIS[@]}"; do
if [ -z "${NOCLEAN}" ]; then
ndk-build clean APP_ABI=${a} || die "Failed to clean ${a} ${CORENAME}"
fi
ndk-build -j$JOBS APP_ABI=${a} || die "Failed to build ${a} ${CORENAME}"
cp ../libs/${a}/libretro_${CORENAME}_performance.${FORMAT_EXT} $RARCH_DIST_DIR/${a}/${CORENAME}_mercury_performance_libretro${FORMAT}.${FORMAT_EXT}
done
else
2014-08-11 14:25:14 -04:00
echo "${CORENAME} not fetched, skipping ..."
fi
}
2014-07-12 22:22:50 -04:00
create_dist_dir
if [ $1 ]; then
$1
else
2014-07-29 13:19:15 -04:00
build_libretro_2048
2014-11-01 17:33:51 -04:00
build_libretro_4do
build_libretro_bluemsx
2014-11-01 18:42:26 -04:00
build_libretro_fmsx
#build_libretro_bsnes_cplusplus98
build_libretro_bsnes
2014-11-02 15:40:26 -05:00
build_libretro_bsnes_mercury
2014-06-22 19:50:36 -04:00
build_libretro_beetle_lynx
2014-11-01 03:04:41 -04:00
#build_libretro_beetle_gba
2014-06-22 17:34:25 -04:00
build_libretro_beetle_ngp
build_libretro_beetle_pce_fast
build_libretro_beetle_supergrafx
build_libretro_beetle_pcfx
build_libretro_beetle_vb
build_libretro_beetle_wswan
build_libretro_mednafen_psx
2014-11-01 03:04:41 -04:00
#build_libretro_beetle_bsnes
build_libretro_catsfc
build_libretro_snes9x
build_libretro_snes9x_next
build_libretro_genesis_plus_gx
2014-08-22 09:39:20 -04:00
build_libretro_fb_alpha
build_libretro_vbam
build_libretro_vba_next
#build_libretro_bnes
build_libretro_fceumm
build_libretro_gambatte
2014-11-02 15:10:50 -05:00
build_libretro_meteor
build_libretro_nx
build_libretro_prboom
build_libretro_stella
build_libretro_quicknes
build_libretro_nestopia
build_libretro_tyrquake
#build_libretro_mame078
#build_libretro_mame
build_libretro_dosbox
#build_libretro_scummvm
build_libretro_picodrive
build_libretro_handy
build_libretro_desmume
build_libretro_pcsx_rearmed
2014-07-12 22:22:50 -04:00
build_libretro_yabause
2014-11-01 03:04:41 -04:00
build_libretro_vecx
2014-11-01 17:13:07 -04:00
build_libretro_tgbdual
build_libretro_prosystem
build_libretro_dinothawr
build_libretro_virtualjaguar
build_libretro_mupen64
#build_libretro_ffmpeg
2014-03-09 16:11:12 -04:00
build_libretro_3dengine
#build_libretro_ppsspp
2014-11-01 17:20:52 -04:00
build_libretro_o2em
2014-12-10 13:29:58 -05:00
build_libretro_gpsp
fi