Added rules for core output dir and extra make args

This commit is contained in:
T. Joseph Carter 2015-03-12 06:53:41 -07:00
parent fba81c161f
commit 63c9674f6c
2 changed files with 23 additions and 127 deletions

View File

@ -184,6 +184,7 @@ build_libretro_generic_makefile() {
#
# $core_build_subdir Subdir of the makefile (if any)
# $core_build_makefile Name of the makefile (if not {GNUm,m,M}akefile)
# $core_build_args Extra arguments to make
# $core_build_platform Usually some variant of $FORMAT_COMPILER_TARGET
# $core_build_cores A list of cores produced by the builds
build_makefile() {
@ -211,14 +212,14 @@ build_makefile() {
echo_cmd "cd \"$build_dir\""
if [ -z "$NOCLEAN" ]; then
echo_cmd "$make_cmdline clean"
echo_cmd "$make_cmdline $core_build_args clean"
fi
make_cmdline="$make_cmdline $COMPILER"
echo_cmd "$make_cmdline"
echo_cmd "$make_cmdline $core_build_args"
# TODO: Make this a separate stage rule
for a in $core_build_cores; do
copy_core_to_dist $a
copy_core_to_dist ${core_build_products:+$core_build_products/}$a $a
done
else
echo "$1 not fetched, skipping ..."
@ -267,12 +268,14 @@ libretro_build_core() {
generic_makefile)
eval "core_build_makefile=\$libretro_${1}_build_makefile"
eval "core_build_subdir=\$libretro_${1}_build_subdir"
eval "core_build_args=\$libretro_${1}_build_args"
# TODO: Really, clean this up...
eval "core_build_platform=\$libretro_${1}_build_platform"
core_build_platform="${core_build_platform:-$FORMAT_COMPILER_TARGET}$opengl_type"
eval "core_build_cores=\${libretro_${1}_build_cores:-$1}"
eval "core_build_products=\$libretro_${1}_build_products"
echo "Building ${1}..."
build_makefile $1
;;
@ -414,122 +417,6 @@ create_dist_dir
########## LEGACY RULES
# TODO: Port these to modern rules
build_libretro_bnes() {
build_dir="$WORKDIR/libretro-bnes"
if build_should_skip bnes "$build_dir"; then
echo "Core bnes is already built, skipping..."
return
fi
if [ -d "$build_dir" ]; then
echo '=== Building bNES ==='
echo_cmd "cd \"$build_dir\""
mkdir -p obj
if [ -z "$NOCLEAN" ]; then
echo_cmd "$MAKE -f Makefile \"-j$JOBS\" clean" || die 'Failed to clean bNES'
fi
echo_cmd "$MAKE -f Makefile $COMPILER \"-j$JOBS\" compiler=\"${CXX11}\"" || die 'Failed to build bNES'
copy_core_to_dist "bnes"
build_save_revision $? "bnes"
else
echo 'bNES not fetched, skipping ...'
fi
}
build_libretro_bsnes_modern() {
build_dir="$WORKDIR/libretro-$1"
if [ -d "$build_dir" ]; then
echo "=== Building $1 ==="
echo_cmd "cd \"$build_dir\""
if [ -z "$NOCLEAN" ]; then
echo_cmd "rm -f obj/*.{o,\"$FORMAT_EXT\"}"
echo_cmd "rm -f out/*.{o,\"$FORMAT_EXT\"}"
fi
cmdline="$MAKE target=libretro -j$JOBS"
cmdline="$cmdline platform=\"$FORMAT_COMPILER_TARGET\""
cmdline="$cmdline compiler=\"$CXX11\""
ret=0
for a in accuracy balanced performance; do
echo_cmd "$cmdline profile=$a"
copy_core_to_dist "out/${1}_$a" "${1}_$a"
[ $ret -eq 0 ] || break
done
return $ret
else
echo "$1 not fetched, skipping ..."
fi
}
build_libretro_bsnes() {
if build_should_skip bsnes "$WORKDIR/libretro-bsnes"; then
echo "Core bsnes is already built, skipping..."
return
fi
build_libretro_bsnes_modern "bsnes"
build_save_revision $? bsnes
}
build_libretro_bsnes_cplusplus98() {
CORENAME="bsnes_cplusplus98"
build_dir="$WORKDIR/libretro-$CORENAME"
if build_should_skip $CORENAME "$build_dir"; then
echo "Core $CORENAME is already built, skipping..."
return
fi
if [ -d "$build_dir" ]; then
echo "=== Building $CORENAME ==="
echo_cmd "cd \"$build_dir\""
if [ -z "$NOCLEAN" ]; then
# byuu's "make clean" doesn't
echo_cmd "rm -f obj/*.{o,\"$FORMAT_EXT\"}"
echo_cmd "rm -f out/*.{o,\"$FORMAT_EXT\"}"
fi
echo_cmd "$MAKE platform=\"$FORMAT_COMPILER_TARGET\" $COMPILER \"-j$JOBS\""
copy_core_to_dist "out/$CORENAME" "$CORENAME"
build_save_revision $? $CORENAME
else
echo "$CORENAME not fetched, skipping ..."
fi
}
build_libretro_bsnes_mercury() {
if build_should_skip bsnes_mercury "$WORKDIR/libretro-bsnes"; then
echo "Core bsnes_mercury is already built, skipping..."
return
fi
build_libretro_bsnes_modern "bsnes_mercury"
build_save_revision $? bsnes_mercury
}
build_libretro_emux() {
if build_should_skip emux "$WORKDIR/libretro-emux"; then
echo "Cores for emux are already built, skipping..."
return
fi
build_libretro_generic_makefile "emux" "libretro" "Makefile" $FORMAT_COMPILER_TARGET 1
copy_core_to_dist "emux_chip8"
copy_core_to_dist "emux_gb"
copy_core_to_dist "emux_nes"
copy_core_to_dist "emux_sms"
# TODO: Check for more than emux_sms here...
build_save_revision $? "emux"
}
build_libretro_mupen64() {
if check_opengl; then
build_dir="$WORKDIR/libretro-mupen64plus"

View File

@ -3,8 +3,11 @@
register_core "bsnes" -theos_ios -ngc -ps3 -psp1 -qnx -wii
libretro_bsnes_name="bsnes/higan"
libretro_bsnes_git_url="https://github.com/libretro/bsnes-libretro.git"
libretro_bsnes_build_rule=legacy
libretro_bsnes_build_legacy=build_libretro_bsnes
#libretro_bsnes_build_rule=legacy
#libretro_bsnes_build_legacy=build_libretro_bsnes
libretro_bsnes_build_args="compiler=\"${CXX11}\""
libretro_bsnes_build_products="out"
libretro_bsnes_build_cores="bsnes_accuracy bsnes_balanced bsnes_performance"
register_core "snes9x" -ngc -ps3 -psp1 -wii
libretro_snes9x_name="SNES9x"
@ -53,8 +56,7 @@ libretro_cap32_build_makefile="Makefile"
register_core "bnes" -ios -theos_ios -ngc -ps3 -psp1 -qnx -wii
libretro_bnes_name="bnes/higan"
libretro_bnes_git_url="https://github.com/libretro/bnes-libretro.git"
libretro_bnes_build_rule=legacy
libretro_bnes_build_legacy=build_libretro_bnes
libretro_bnes_build_args="compiler=\"${CXX11}\""
register_core "fceumm"
libretro_fceumm_name="FCEUmm"
@ -200,14 +202,14 @@ libretro_ffmpeg_build_opengl="optional"
register_core "bsnes_cplusplus98" -theos_ios -ngc -ps3 -psp1 -wii
libretro_bsnes_cplusplus98_name="bsnes C++98 (v0.85)"
libretro_bsnes_cplusplus98_git_url="https://github.com/libretro/bsnes-libretro-cplusplus98.git"
libretro_bsnes_cplusplus98_build_rule=legacy
libretro_bsnes_cplusplus98_build_legacy=build_libretro_bsnes_cplusplus98
libretro_bsnes_cplusplus98_build_products="out"
register_core "bsnes_mercury" -theos_ios -ngc -ps3 -psp1 -qnx -wii
libretro_bsnes_mercury_name="bsnes-mercury"
libretro_bsnes_mercury_git_url="https://github.com/libretro/bsnes-mercury.git"
libretro_bsnes_mercury_build_rule=legacy
libretro_bsnes_mercury_build_legacy=build_libretro_bsnes_mercury
libretro_bsnes_mercury_build_args="compiler=\"${CXX11}\""
libretro_bsnes_mercury_build_products="out"
libretro_bsnes_mercury_build_cores="bsnes_mercury_accuracy bsnes_mercury_balanced bsnes_mercury_performance"
register_core "picodrive" -theos_ios -ngc -ps3 -wii
libretro_picodrive_name="Picodrive"
@ -394,6 +396,10 @@ libretro_lutro_game_of_life_git_url="https://github.com/libretro/lutro-game-of-l
# build_makefile Name of makefile
# If unset, GNU make has rules for default makefile names
#
# build_subdir The subdir containing the makefile, if any
#
# build_args Any extra arguments to pass to make
#
# build_platform Set to override the default platform
# (e.g., $FORMAT_COMPILER_TARGET_ALT)
#
@ -403,6 +409,9 @@ libretro_lutro_game_of_life_git_url="https://github.com/libretro/lutro-game-of-l
# build_cores String containing the core(s) produced
# Defaults to "<core>"
#
# build_products Directory build products are located in
# bsnes puts cores in "out" for some reason
#
# Example:
#
# libretro_dinothawr_git_url="https://github.com/libretro/Dinothawr.git"