2015-02-16 22:19:30 -05:00
|
|
|
#! /usr/bin/env bash
|
|
|
|
# vim: set ts=3 sw=3 noet ft=sh : bash
|
2013-02-10 12:30:38 -05:00
|
|
|
|
2014-07-26 21:56:49 -04:00
|
|
|
. ./libretro-config.sh
|
|
|
|
|
2014-08-18 01:07:05 -04:00
|
|
|
#split TARGET_ABI string into an array we can iterate over
|
|
|
|
IFS=' ' read -ra ABIS <<< "$TARGET_ABIS"
|
|
|
|
|
2013-07-12 11:31:12 -04:00
|
|
|
# BSDs don't have readlink -f
|
|
|
|
read_link()
|
|
|
|
{
|
2015-02-16 22:19:30 -05:00
|
|
|
TARGET_FILE="$1"
|
|
|
|
cd $(dirname "$TARGET_FILE")
|
|
|
|
TARGET_FILE=$(basename "$TARGET_FILE")
|
2013-07-12 11:31:12 -04:00
|
|
|
|
2015-02-16 22:19:30 -05:00
|
|
|
while [ -L "$TARGET_FILE" ]
|
|
|
|
do
|
|
|
|
TARGET_FILE=$(readlink "$TARGET_FILE")
|
|
|
|
cd $(dirname "$TARGET_FILE")
|
|
|
|
TARGET_FILE=$(basename "$TARGET_FILE")
|
|
|
|
done
|
2013-07-12 11:31:12 -04:00
|
|
|
|
2015-02-16 22:19:30 -05:00
|
|
|
PHYS_DIR=$(pwd -P)
|
|
|
|
RESULT="$PHYS_DIR/$TARGET_FILE"
|
|
|
|
echo $RESULT
|
2013-07-12 11:31:12 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
SCRIPT=$(read_link "$0")
|
|
|
|
echo "Script: $SCRIPT"
|
2013-04-29 16:12:35 -04:00
|
|
|
BASE_DIR=$(dirname $SCRIPT)
|
|
|
|
RARCH_DIR=$BASE_DIR/dist
|
2013-04-29 16:36:13 -04:00
|
|
|
RARCH_DIST_DIR=$RARCH_DIR/android
|
2013-10-29 21:11:09 -04:00
|
|
|
FORMAT=_android
|
2013-05-17 20:11:06 -04:00
|
|
|
FORMAT_EXT=so
|
2013-07-12 11:31:12 -04:00
|
|
|
|
2013-02-10 12:30:38 -05:00
|
|
|
die()
|
|
|
|
{
|
2015-02-16 22:19:30 -05:00
|
|
|
echo $1
|
|
|
|
#exit 1
|
2013-02-10 12:30:38 -05:00
|
|
|
}
|
|
|
|
|
2014-06-22 19:50:36 -04:00
|
|
|
|
2014-06-22 17:34:25 -04:00
|
|
|
|
2014-08-22 07:13:37 -04:00
|
|
|
# $1 is core name
|
2014-08-22 07:40:22 -04:00
|
|
|
# $2 is subdir (if there's no subdir, put "." here)
|
|
|
|
build_libretro_generic_makefile()
|
2014-06-21 12:34:11 -04:00
|
|
|
{
|
2015-02-16 22:19:30 -05: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
|
|
|
|
else
|
|
|
|
echo "${1} not fetched, skipping ..."
|
|
|
|
fi
|
2014-06-21 12:34:11 -04:00
|
|
|
}
|
|
|
|
|
2014-08-22 07:13:37 -04:00
|
|
|
build_libretro_vba_next() {
|
2015-02-16 22:19:30 -05:00
|
|
|
build_libretro_generic_makefile "vba_next" "libretro/jni"
|
2014-08-22 07:40:22 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
build_libretro_vbam() {
|
2015-02-16 22:19:30 -05:00
|
|
|
build_libretro_generic_makefile "vbam" "src/libretro/jni"
|
2014-06-21 12:22:10 -04:00
|
|
|
}
|
|
|
|
|
2013-02-10 12:30:38 -05:00
|
|
|
build_libretro_prboom()
|
|
|
|
{
|
2015-02-16 22:19:30 -05:00
|
|
|
build_libretro_generic_makefile "prboom" "libretro/jni"
|
2013-09-22 22:21:31 -04:00
|
|
|
}
|
|
|
|
|
2014-08-22 07:40:22 -04:00
|
|
|
build_libretro_tyrquake() {
|
2015-02-16 22:19:30 -05:00
|
|
|
build_libretro_generic_makefile "tyrquake" "libretro/jni"
|
2013-02-10 12:30:38 -05:00
|
|
|
}
|
|
|
|
|
2014-11-01 18:26:32 -04:00
|
|
|
build_libretro_ppsspp() {
|
2015-02-16 22:19:30 -05:00
|
|
|
build_libretro_generic_makefile "ppsspp" "libretro/jni"
|
2014-11-01 18:26:32 -04:00
|
|
|
}
|
2014-08-22 07:40:22 -04:00
|
|
|
|
2014-08-22 07:13:37 -04:00
|
|
|
build_libretro_quicknes() {
|
2015-02-16 22:19:30 -05:00
|
|
|
build_libretro_generic_makefile "quicknes" "libretro/jni"
|
2014-08-22 07:13:37 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
build_libretro_handy() {
|
2015-02-16 22:19:30 -05:00
|
|
|
build_libretro_generic_makefile "handy" "libretro/jni"
|
2014-08-22 07:13:37 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
build_libretro_yabause() {
|
2015-02-16 22:19:30 -05:00
|
|
|
build_libretro_generic_makefile "yabause" "libretro/jni"
|
2014-08-22 07:13:37 -04:00
|
|
|
}
|
|
|
|
|
2014-08-22 07:40:22 -04:00
|
|
|
build_libretro_fceumm() {
|
2015-02-16 22:19:30 -05:00
|
|
|
build_libretro_generic_makefile "fceumm" "src/drivers/libretro/jni"
|
2014-08-22 07:40:22 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
build_libretro_gambatte() {
|
2015-02-16 22:19:30 -05:00
|
|
|
build_libretro_generic_makefile "gambatte" "libgambatte/libretro/jni"
|
2014-08-22 07:40:22 -04:00
|
|
|
}
|
|
|
|
|
2014-11-02 15:10:50 -05:00
|
|
|
|
2014-08-22 07:40:22 -04:00
|
|
|
|
|
|
|
build_libretro_dinothawr() {
|
2015-02-16 22:19:30 -05:00
|
|
|
build_libretro_generic_makefile "dinothawr" "android/eclipse/jni"
|
2014-01-20 05:01:06 -05:00
|
|
|
}
|
|
|
|
|
2014-11-01 04:27:34 -04:00
|
|
|
|
2014-08-22 09:39:20 -04:00
|
|
|
build_libretro_desmume() {
|
2015-02-16 22:19:30 -05:00
|
|
|
build_libretro_generic_makefile "desmume" "desmume/src/libretro/jni"
|
2013-07-31 09:47:58 -04:00
|
|
|
}
|
|
|
|
|
2014-08-22 09:39:20 -04:00
|
|
|
build_libretro_fb_alpha() {
|
2015-02-16 22:19:30 -05:00
|
|
|
build_libretro_generic_makefile "fb_alpha" "svn-current/trunk/projectfiles/libretro-android/jni"
|
2014-08-22 09:39:20 -04:00
|
|
|
}
|
2013-07-31 09:37:07 -04:00
|
|
|
|
2013-04-29 16:12:35 -04:00
|
|
|
create_dist_dir()
|
|
|
|
{
|
2015-02-16 22:19:30 -05:00
|
|
|
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
|
2013-04-29 16:12:35 -04:00
|
|
|
}
|
|
|
|
|
2013-12-15 20:15:02 -05:00
|
|
|
build_libretro_bsnes()
|
2013-09-06 02:01:33 -04:00
|
|
|
{
|
2015-02-16 22:19:30 -05:00
|
|
|
CORENAME="bsnes"
|
|
|
|
#TODO - maybe accuracy/balanced cores as well
|
|
|
|
cd $BASE_DIR
|
|
|
|
if [ -d "libretro-${CORENAME}" ]; then
|
|
|
|
echo "=== Building ${CORENAME} ==="
|
|
|
|
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}_performance_libretro${FORMAT}.${FORMAT_EXT}
|
|
|
|
done
|
|
|
|
else
|
|
|
|
echo "${CORENAME} not fetched, skipping ..."
|
|
|
|
fi
|
2014-11-02 15:40:26 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
build_libretro_bsnes_mercury()
|
|
|
|
{
|
2015-02-16 22:19:30 -05:00
|
|
|
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
|
|
|
|
echo "${CORENAME} not fetched, skipping ..."
|
|
|
|
fi
|
2013-09-06 02:01:33 -04:00
|
|
|
}
|
|
|
|
|
2013-10-19 14:22:44 -04:00
|
|
|
|
2014-07-12 22:22:50 -04:00
|
|
|
|
2013-04-29 16:12:35 -04:00
|
|
|
create_dist_dir
|
|
|
|
|
2013-05-03 11:22:09 -04:00
|
|
|
if [ $1 ]; then
|
2015-11-08 21:24:41 -05:00
|
|
|
WANT_CORES="$1"
|
2013-05-03 11:22:09 -04:00
|
|
|
else
|
2015-11-08 21:24:41 -05:00
|
|
|
WANT_CORES=" \
|
|
|
|
2048 \
|
|
|
|
4do \
|
|
|
|
bluemsx \
|
|
|
|
fmsx \
|
|
|
|
mednafen_lynx \
|
|
|
|
mednafen_ngp \
|
|
|
|
mednafen_pce_fast \
|
|
|
|
mednafen_supergrafx \
|
|
|
|
mednafen_pcfx \
|
|
|
|
mednafen_vb \
|
|
|
|
mednafen_wswan \
|
|
|
|
mednafen_psx \
|
|
|
|
catsfc \
|
|
|
|
snes9x \
|
|
|
|
snes9x_next \
|
|
|
|
genesis_plus_gx \
|
|
|
|
virtualjaguar \
|
|
|
|
stella \
|
|
|
|
gpsp \
|
|
|
|
dosbox \
|
|
|
|
picodrive \
|
|
|
|
3dengine \
|
|
|
|
prosystem \
|
|
|
|
meteor \
|
|
|
|
nxengine \
|
|
|
|
o2em \
|
2015-11-08 21:28:21 -05:00
|
|
|
pcsx_rearmed \
|
2015-11-08 21:32:56 -05:00
|
|
|
mupen64plus \
|
2015-11-08 21:35:46 -05:00
|
|
|
vecx \
|
|
|
|
nestopia \
|
|
|
|
tgbdual"
|
2015-11-08 21:24:41 -05:00
|
|
|
build_libretro_bsnes
|
|
|
|
build_libretro_bsnes_mercury
|
2013-05-03 11:22:09 -04:00
|
|
|
fi
|
2015-11-08 21:24:41 -05:00
|
|
|
|
|
|
|
for core in $WANT_CORES; do
|
|
|
|
path="jni"
|
2015-11-08 21:35:46 -05:00
|
|
|
if [ $core = "snes9x" ] || [ $core = "snes9x_next" ] || [ $core = "genesis_plus_gx" ] || [ $core = "meteor" ] || [ $core = "nestopia" ]; then
|
2015-11-08 21:24:41 -05:00
|
|
|
path="libretro/jni"
|
|
|
|
fi
|
|
|
|
build_libretro_generic_makefile $core $path
|
|
|
|
done
|
|
|
|
|