diff --git a/libretro-build-common.sh b/libretro-build-common.sh index daa3f10e..9fad40bc 100755 --- a/libretro-build-common.sh +++ b/libretro-build-common.sh @@ -1,6 +1,7 @@ # vim: set ts=3 sw=3 noet ft=sh : bash . "${BASE_DIR}/script-modules/fetch-rules.sh" +. "${BASE_DIR}/script-modules/cpu.sh" die() { echo $1 @@ -660,51 +661,26 @@ build_libretro_mupen64() { echo_cmd "cd \"$build_dir\"" mkdir -p obj - if [ "$X86" ] && [ "$X86_64" ]; then - echo '=== Building Mupen 64 Plus (x86_64 dynarec) ===' - if [ -z "$NOCLEAN" ]; then - echo_cmd "$MAKE WITH_DYNAREC='x86_64' platform=\"$FORMAT_COMPILER_TARGET_ALT\" \"-j$JOBS\" clean" || die 'Failed to clean Mupen 64 (x86_64 dynarec)' - fi - if [ "$CC $CXX" != " " ]; then - echo_cmd "$MAKE WITH_DYNAREC='x86_64' platform=\"$FORMAT_COMPILER_TARGET_ALT\" CC=\"$CC\" CXX=\"$CXX\" \"-j$JOBS\"" || die 'Failed to build Mupen 64 (x86_64 dynarec)' - else - # TODO: Remove this condition post-1.1 - echo_cmd "$MAKE WITH_DYNAREC='x86_64' platform=\"$FORMAT_COMPILER_TARGET_ALT\" \"-j$JOBS\"" || die 'Failed to build Mupen 64 (x86_64 dynarec)' - fi - elif [ "$X86" ]; then - echo '=== Building Mupen 64 Plus (x86 32bit dynarec) ===' - if [ -z "$NOCLEAN" ]; then - echo_cmd "$MAKE WITH_DYNAREC='x86' platform=\"$FORMAT_COMPILER_TARGET_ALT\" \"-j$JOBS\" clean" || die 'Failed to clean Mupen 64 (x86 dynarec)' - fi - if [ "$CC $CXX" != " " ]; then - echo_cmd "$MAKE WITH_DYNAREC='x86' platform=\"$FORMAT_COMPILER_TARGET_ALT\" CC=\"$CC\" CXX=\"$CXX\" \"-j$JOBS\"" || die 'Failed to build Mupen 64 (x86 dynarec)' - else - # TODO: Remove this condition post-1.1 - echo_cmd "$MAKE WITH_DYNAREC='x86' platform=\"$FORMAT_COMPILER_TARGET_ALT\" \"-j$JOBS\"" || die 'Failed to build Mupen 64 (x86 dynarec)' - fi - elif [ "${CORTEX_A8}" ] || [ "${CORTEX_A9}" ] || [ "${IOS}" ]; then - echo '=== Building Mupen 64 Plus (ARM dynarec) ===' - if [ -z "$NOCLEAN" ]; then - echo_cmd "$MAKE WITH_DYNAREC='arm' platform=\"$FORMAT_COMPILER_TARGET_ALT\" \"-j$JOBS\"" || die 'Failed to clean Mupen 64 (ARM dynarec)' - fi - if [ "$CC $CXX" != " " ]; then - echo_cmd "$MAKE WITH_DYNAREC='arm' platform=\"$FORMAT_COMPILER_TARGET_ALT\" CC=\"$CC\" CXX=\"$CXX\" \"-j$JOBS\"" || die 'Failed to build Mupen 64 (ARM dynarec)' - else - # TODO: Remove this condition post-1.1 - echo_cmd "$MAKE WITH_DYNAREC='arm' platform=\"$FORMAT_COMPILER_TARGET_ALT\" \"-j$JOBS\"" || die 'Failed to build Mupen 64 (ARM dynarec)' - fi - else - echo '=== Building Mupen 64 Plus ===' - if [ -z "$NOCLEAN" ]; then - echo_cmd "$MAKE \"-j$JOBS\" clean" || die 'Failed to clean Mupen 64' - fi - if [ "$CC $CXX" != " " ]; then - echo_cmd "$MAKE platform=\"$FORMAT_COMPILER_TARGET_ALT\" CC=\"$CC\" CXX=\"$CXX\" \"-j$JOBS\"" || die 'Failed to build Mupen 64' - else - # TODO: Remove this condition post-1.1 - echo_cmd "$MAKE platform=\"$FORMAT_COMPILER_TARGET_ALT\" \"-j$JOBS\"" || die 'Failed to build Mupen 64' - fi + + if iscpu_x86_64 $ARCH; then + dynarec="WITH_DYNAREC=x86_64" + elif iscpu_x86 $ARCH; then + dynarec="WITH_DYNAREC=x86" + elif [ "${CORTEX_A8}" ] || [ "${CORTEX_A9}" ] || [ "$platform" = "ios" ]; then + dynarec="WITH_DYNAREC=arm" fi + + echo '=== Building Mupen 64 Plus ===' + if [ -z "$NOCLEAN" ]; then + echo_cmd "$MAKE $dynarec platform=\"$FORMAT_COMPILER_TARGET_ALT\" \"-j$JOBS\" clean" || die 'Failed to clean Mupen 64' + fi + + if [ "$CC $CXX" != " " ]; then + echo_cmd "$MAKE $dynarec platform=\"$FORMAT_COMPILER_TARGET_ALT\" CC=\"$CC\" CXX=\"$CXX\" \"-j$JOBS\"" || die 'Failed to build Mupen 64' + else + echo_cmd "$MAKE $dynarec platform=\"$FORMAT_COMPILER_TARGET_ALT\" \"-j$JOBS\"" || die 'Failed to build Mupen 64' + fi + echo_cmd "cp \"mupen64plus$CORE_SUFFIX\" \"$RARCH_DIST_DIR\"" ret=$? build_summary_log $ret "mupen64plus" diff --git a/libretro-config.sh b/libretro-config.sh index 90ace695..cce972a0 100755 --- a/libretro-config.sh +++ b/libretro-config.sh @@ -24,6 +24,7 @@ case "$platform" in DIST_DIR="ios" FORMAT_EXT=dylib IOS=1 + ARCH=armv7 FORMAT=_ios FORMAT_COMPILER_TARGET=ios FORMAT_COMPILER_TARGET_ALT=ios diff --git a/script-modules/cpu.sh b/script-modules/cpu.sh index 711da99a..6df7a4d4 100644 --- a/script-modules/cpu.sh +++ b/script-modules/cpu.sh @@ -13,32 +13,33 @@ host_cpu() { -cpu_isx86() { +iscpu_x86() { case ${1:-`uname -m`} in - i386|i586|i686|x86_64) echo "true" ;; - *) [ "${PROCESSOR_ARCHITEW6432}" = "AMD64" ] && echo "true" ;; + i386|i486|i586|i686|x86_64) return 0 ;; + *) [ "${PROCESSOR_ARCHITEW6432}" = "AMD64" ] && return 0 ;; esac + return 1 } -cpu_isx86_64() { +iscpu_x86_64() { [ ${1:-`uname -m`} = "x86_64" ] && return 0 return 1 } -cpu_isarm() { +iscpu_arm() { case ${1:-`uname -m`} in armv*) return 0 ;; esac return 1 } -cpu_isarmv5() { +iscpu_armv5() { [ "${1:-`uname -m`}" = "armv5tel" ] && return 0 return 1 } # Consider using armv6* here? -cpu_isarmv6() { +iscpu_armv6() { case ${1:-`uname -m`} in armv6l|armv6) return 0 ;; esac @@ -47,7 +48,7 @@ cpu_isarmv6() { # Consider using armv7* here? # armv7s is Apple A6 chip -cpu_isarmv7() { +iscpu_armv7() { case ${1:-`uname -m`} in armv7l|armv7|armv7s) return 0 ;; esac