Merge pull request #169 from iKarith/master

Some build script refactoring
This commit is contained in:
Twinaphex 2015-02-03 08:18:57 +01:00
commit feeb2adca9
4 changed files with 205 additions and 174 deletions

View File

@ -1,10 +1,57 @@
#!/bin/bash
# vi: ts=3 sw=3 et ft=sh
die() {
echo $1
#exit 1
}
if [ "$HOST_CC" ]; then
CC="${HOST_CC}-gcc"
CXX="${HOST_CC}-g++"
CXX11="${HOST_CC}-g++"
STRIP="${HOST_CC}-strip"
fi
if [ -z "$MAKE" ]; then
if uname -s | grep -i MINGW32 > /dev/null 2>&1; then
MAKE=mingw32-make
else
if type gmake > /dev/null 2>&1; then
MAKE=gmake
else
MAKE=make
fi
fi
fi
if [ -z "$CC" ]; then
if [ $FORMAT_COMPILER_TARGET = "osx" ]; then
CC=cc
elif uname -s | grep -i MINGW32 > /dev/null 2>&1; then
CC=mingw32-gcc
else
CC=gcc
fi
fi
if [ -z "$CXX" ]; then
if [ $FORMAT_COMPILER_TARGET = "osx" ]; then
CXX=c++
CXX11="clang++ -std=c++11 -stdlib=libc++"
elif uname -s | grep -i MINGW32 > /dev/null 2>&1; then
CXX=mingw32-g++
CXX11=mingw32-g++
else
CXX=g++
CXX11=g++
fi
fi
FORMAT_COMPILER_TARGET_ALT=$FORMAT_COMPILER_TARGET
echo "CC = $CC"
echo "CXX = $CXX"
echo "STRIP = $STRIP"
if [ "${CC}" ] && [ "${CXX}" ]; then
COMPILER="CC=\"${CC}\" CXX=\"${CXX}\""
else
@ -27,6 +74,11 @@ echo "${FORMAT_COMPILER_TARGET_ALT}"
RESET_FORMAT_COMPILER_TARGET=$FORMAT_COMPILER_TARGET
RESET_FORMAT_COMPILER_TARGET_ALT=$FORMAT_COMPILER_TARGET_ALT
if [ -z "$RARCH_DIST_DIR" ]; then
RARCH_DIR="${WORKDIR}/dist"
RARCH_DIST_DIR="$RARCH_DIR/$DIST_DIR"
fi
build_summary_log() {
if [ -z "${NOBUILD_SUMMARY}" ]; then
if [ "${1}" -eq "0" ]; then
@ -59,7 +111,7 @@ reset_compiler_targets() {
}
build_libretro_pcsx_rearmed_interpreter() {
cd "${BASE_DIR}"
cd "${WORKDIR}"
if [ -d 'libretro-pcsx_rearmed' ]; then
echo '=== Building PCSX ReARMed Interpreter ==='
cd libretro-pcsx_rearmed
@ -81,7 +133,7 @@ build_libretro_pcsx_rearmed_interpreter() {
# $4 is Makefile name
# $5 is preferred platform
build_libretro_generic_makefile_subcore() {
cd $BASE_DIR
cd ${WORKDIR}
if [ -d "libretro-${1}" ]; then
echo "=== Building ${2} ==="
cd libretro-${1}/
@ -124,7 +176,7 @@ copy_core_to_dist() {
# $3 is Makefile name
# $4 is preferred platform
build_libretro_generic_makefile() {
cd "${BASE_DIR}"
cd "${WORKDIR}"
if [ -d "libretro-${1}" ]; then
echo "=== Building ${1} ==="
cd libretro-${1}
@ -308,7 +360,6 @@ build_libretro_meteor() {
}
build_libretro_nestopia() {
echo command build_libretro_generic_makefile "nestopia" "libretro" "Makefile" ${FORMAT_COMPILER_TARGET}
build_libretro_generic_makefile "nestopia" "libretro" "Makefile" ${FORMAT_COMPILER_TARGET}
}
@ -364,7 +415,7 @@ build_libretro_ppsspp() {
build_libretro_mame() {
cd "${BASE_DIR}"
cd "${WORKDIR}"
if [ -d 'libretro-mame' ]; then
echo ''
echo '=== Building MAME ==='
@ -397,7 +448,7 @@ build_libretro_mame() {
}
build_libretro_mess() {
cd "${BASE_DIR}"
cd "${WORKDIR}"
if [ -d 'libretro-mame' ]; then
echo ''
echo '=== Building MESS ==='
@ -424,7 +475,7 @@ build_libretro_mess() {
}
rebuild_libretro_mess() {
cd "${BASE_DIR}"
cd "${WORKDIR}"
if [ -d 'libretro-mame' ]; then
echo ''
echo '=== Building MESS ==='
@ -451,7 +502,7 @@ rebuild_libretro_mess() {
}
build_libretro_ume() {
cd "${BASE_DIR}"
cd "${WORKDIR}"
if [ -d 'libretro-mame' ]; then
echo ''
echo '=== Building UME ==='
@ -478,7 +529,7 @@ build_libretro_ume() {
}
rebuild_libretro_ume() {
cd "${BASE_DIR}"
cd "${WORKDIR}"
if [ -d 'libretro-mame' ]; then
echo ''
echo '=== Building MESS ==='
@ -509,7 +560,7 @@ rebuild_libretro_ume() {
# $3 is profile name
# $4 is compiler
build_libretro_bsnes_modern() {
cd "${BASE_DIR}"
cd "${WORKDIR}"
if [ -d "libretro-${1}" ]; then
echo "=== Building ${1} ${3} ==="
cd libretro-${1}
@ -540,7 +591,7 @@ build_libretro_bsnes_mercury() {
build_libretro_bsnes_cplusplus98() {
CORENAME="bsnes_cplusplus98"
cd "${BASE_DIR}"
cd "${WORKDIR}"
if [ -d "libretro-${CORENAME}" ]; then
echo "=== Building ${CORENAME} ==="
cd libretro-${CORENAME}
@ -557,7 +608,7 @@ build_libretro_bsnes_cplusplus98() {
}
build_libretro_bnes() {
cd "${BASE_DIR}"
cd "${WORKDIR}"
if [ -d 'libretro-bnes' ]; then
echo '=== Building bNES ==='
cd libretro-bnes
@ -576,7 +627,7 @@ build_libretro_bnes() {
build_libretro_mupen64() {
check_opengl
cd "${BASE_DIR}"
cd "${WORKDIR}"
if [ -d 'libretro-mupen64plus' ]; then
cd libretro-mupen64plus
@ -618,14 +669,14 @@ build_summary() {
if [ -z "${NOBUILD_SUMMARY}" ]; then
echo "=== Core Build Summary ===" > ${BUILD_SUMMARY}
if [ -r "${BUILD_SUCCESS}" ]; then
echo "$(wc -l < ${BUILD_SUCCESS}) core(s) successfully built:" >> ${BUILD_SUMMARY}
echo "`wc -l < ${BUILD_SUCCESS}` core(s) successfully built:" >> ${BUILD_SUMMARY}
${BUILD_SUMMARY_FMT} ${BUILD_SUCCESS} >> ${BUILD_SUMMARY}
else
echo " 0 cores successfully built. :(" >> ${BUILD_SUMMARY}
echo "$(wc -l < ${BUILD_FAIL}) core(s) failed to build:"
echo "`wc -l < ${BUILD_FAIL}` core(s) failed to build:"
fi
if [ -r "${BUILD_FAIL}" ]; then
echo "$(wc -l < ${BUILD_FAIL}) core(s) failed to build:" >> ${BUILD_SUMMARY}
echo "`wc -l < ${BUILD_FAIL}` core(s) failed to build:" >> ${BUILD_SUMMARY}
${BUILD_SUMMARY_FMT} ${BUILD_FAIL} >> ${BUILD_SUMMARY}
else
echo " 0 cores failed to build! :D" >> ${BUILD_SUMMARY}

View File

@ -1,93 +1,29 @@
#!/bin/bash
. ./libretro-config.sh
#! /bin/bash
# vi: sw=3 ts=3 et
# BSDs don't have readlink -f
read_link()
{
TARGET_FILE="$1"
cd $(dirname "$TARGET_FILE")
TARGET_FILE=$(basename "$TARGET_FILE")
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")
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
PHYS_DIR="`pwd -P`"
RESULT="${PHYS_DIR}/${TARGET_FILE}"
echo ${RESULT}
}
SCRIPT="`read_link "$0"`"
BASE_DIR="`dirname "${SCRIPT}"`"
WORKDIR="`pwd`"
SCRIPT=$(read_link "$0")
echo "Script: $SCRIPT"
BASE_DIR=$(dirname "$SCRIPT")
if [ -z "$RARCH_DIST_DIR" ]; then
RARCH_DIR="$BASE_DIR/dist"
RARCH_DIST_DIR="$RARCH_DIR/$DIST_DIR"
fi
if [ -z "$JOBS" ]; then
JOBS=7
fi
die()
{
echo $1
#exit 1
}
if [ "$HOST_CC" ]; then
CC="${HOST_CC}-gcc"
CXX="${HOST_CC}-g++"
CXX11="${HOST_CC}-g++"
STRIP="${HOST_CC}-strip"
fi
if [ -z "$MAKE" ]; then
if uname -s | grep -i MINGW32 > /dev/null 2>&1; then
MAKE=mingw32-make
else
if type gmake > /dev/null 2>&1; then
MAKE=gmake
else
MAKE=make
fi
fi
fi
if [ -z "$CC" ]; then
if [ $FORMAT_COMPILER_TARGET = "osx" ]; then
CC=cc
elif uname -s | grep -i MINGW32 > /dev/null 2>&1; then
CC=mingw32-gcc
else
CC=gcc
fi
fi
if [ -z "$CXX" ]; then
if [ $FORMAT_COMPILER_TARGET = "osx" ]; then
CXX=c++
CXX11="clang++ -std=c++11 -stdlib=libc++"
elif uname -s | grep -i MINGW32 > /dev/null 2>&1; then
CXX=mingw32-g++
CXX11=mingw32-g++
else
CXX=g++
CXX11=g++
fi
fi
FORMAT_COMPILER_TARGET_ALT=$FORMAT_COMPILER_TARGET
echo "CC = $CC"
echo "CXX = $CXX"
echo "STRIP = $STRIP"
. ./libretro-build-common.sh
. ${BASE_DIR}/libretro-config.sh
. ${BASE_DIR}/libretro-build-common.sh
mkdir -p "$RARCH_DIST_DIR"

View File

@ -1,82 +1,106 @@
#!/bin/bash
# vi: ts=3 sw=3 et
# Architecture Assignment
[[ -z "$ARCH" ]] && ARCH="$(uname -m)"
case "$ARCH" in
x86_64)
config_cpu() {
[ -n "${2}" ] && ARCH=${1}
[ -z "${ARCH}" ] && ARCH="`uname -m`"
case "${ARCH}" in
x86_64)
X86=true
X86_64=true
;;
i386|i686)
X86=true
;;
armv*)
ARM=true
export FORMAT_COMPILER_TARGET=armv
export RARCHCFLAGS="${RARCHCFLAGS} -marm"
case "${ARCH}" in
armv5tel) ARMV5=true ;;
armv6l) ARMV6=true ;;
armv7l) ARMV7=true ;;
esac
;;
esac
if [ -n "${PROCESSOR_ARCHITEW6432}" -a "${PROCESSOR_ARCHITEW6432}" = "AMD64" ]; then
ARCH=x86_64
X86=true && X86_64=true
;;
i686) X86=true;;
armv*)
ARM=true && export FORMAT_COMPILER_TARGET=armv
export RARCHCFLAGS="${RARCHCFLAGS} -marm"
case "$ARCH" in
armv5tel) ARMV5=true;;
armv6l) ARMV6=true;;
armv7l) ARMV7=true;;
esac;;
esac
if [[ -n "$PROCESSOR_ARCHITEW6432" && $PROCESSOR_ARCHITEW6432 -eq "AMD64" ]]; then
ARCH=x86_64
X86=true && X86_64=true
fi
if [ -z "$JOBS" ]; then
if command -v nproc >/dev/null; then
JOBS=$(nproc)
else
JOBS=1
fi
fi
fi
}
# Platform Assignment
[ -z "$platform" ] && platform="$(uname)"
case "$platform" in
*BSD*)
FORMAT_EXT='so'
FORMAT_COMPILER_TARGET=unix
DIST_DIR=bsd;;
osx|*Darwin*)
FORMAT_EXT='dylib'
FORMAT_COMPILER_TARGET=osx
DIST_DIR=osx;;
win|*mingw32*|*MINGW32*|*MSYS_NT*)
FORMAT_EXT='dll'
FORMAT_COMPILER_TARGET=win
DIST_DIR=win_x86;;
win64|*mingw64*|*MINGW64*)
FORMAT_EXT='dll'
FORMAT_COMPILER_TARGET=win
DIST_DIR=win_x64;;
*psp1*)
FORMAT_EXT='a'
FORMAT_COMPILER_TARGET=psp1
DIST_DIR=psp1;;
*ios|theos_ios*)
FORMAT_EXT='dylib'
FORMAT_COMPILER_TARGET=theos_ios
DIST_DIR=theos;;
android)
FORMAT_EXT='so'
FORMAT_COMPILER_TARGET=android
DIST_DIR=android;;
*android-armv7*)
FORMAT_EXT='so'
FORMAT_COMPILER_TARGET=android-armv7
DIST_DIR=android/armeabi-v7a;;
*)
FORMAT_EXT='so'
FORMAT_COMPILER_TARGET=unix
DIST_DIR=unix;;
esac
config_platform() {
[ -n "${1}" ] && platform="${1}"
[ -z "${platform}" ] && platform="`uname`"
case "${platform}" in
*BSD*)
FORMAT_EXT="so"
FORMAT_COMPILER_TARGET="unix"
DIST_DIR="bsd"
;;
osx|*Darwin*)
FORMAT_EXT="dylib"
FORMAT_COMPILER_TARGET="osx"
DIST_DIR="osx"
;;
win|*mingw32*|*MINGW32*|*MSYS_NT*)
FORMAT_EXT="dll"
FORMAT_COMPILER_TARGET="win"
DIST_DIR="win_x86"
;;
win64|*mingw64*|*MINGW64*)
FORMAT_EXT="dll"
FORMAT_COMPILER_TARGET="win"
DIST_DIR="win_x64"
;;
*psp1*)
FORMAT_EXT="a"
FORMAT_COMPILER_TARGET="psp1"
DIST_DIR="psp1"
;;
*ios|theos_ios*)
FORMAT_EXT="dylib"
FORMAT_COMPILER_TARGET="theos_ios"
DIST_DIR="theos"
;;
android)
FORMAT_EXT="so"
FORMAT_COMPILER_TARGET="android"
DIST_DIR="android"
;;
*android-armv7*)
FORMAT_EXT="so"
FORMAT_COMPILER_TARGET="android-armv7"
DIST_DIR="android/armeabi-v7a"
;;
*)
FORMAT_EXT="so"
FORMAT_COMPILER_TARGET="unix"
DIST_DIR="unix"
;;
esac
export FORMAT_COMPILER_TARGET_ALT="$FORMAT_COMPILER_TARGET"
}
export FORMAT_COMPILER_TARGET_ALT="$FORMAT_COMPILER_TARGET"
config_log_build_host() {
echo "PLATFORM: ${platform}"
echo "ARCHITECTURE: ${ARCH}"
echo "TARGET: ${FORMAT_COMPILER_TARGET}"
}
echo "PLATFORM: $platform"
echo "ARCHITECTURE: $ARCH"
echo "TARGET: $FORMAT_COMPILER_TARGET"
config_cpu
config_platform
config_log_build_host
if [ -z "${JOBS}" ]; then
if command -v nproc >/dev/null; then
JOBS=`nproc`
else
JOBS=1
fi
fi
#if uncommented, will fetch repos with read+write access. Useful for committers
#export WRITERIGHTS=1
@ -174,9 +198,9 @@ fi
# Set this to disable the core build summary
# export NOBUILD_SUMMARY=1
BUILD_SUMMARY=$(pwd)/build-summary.log
BUILD_SUCCESS=$(pwd)/build-success.log
BUILD_FAIL=$(pwd)/build-fail.log
BUILD_SUMMARY=${WORKDIR}/build-summary.log
BUILD_SUCCESS=${WORKDIR}/build-success.log
BUILD_FAIL=${WORKDIR}/build-fail.log
if [ -z "${BUILD_SUMMARY_FMT}" ]; then
if command -v column >/dev/null; then
BUILD_SUMMARY_FMT=column
@ -192,7 +216,7 @@ fi
#local libretro-config-user.sh file rather than here.
#The following below is just a sample.
if [ -f "libretro-config-user.sh" ]; then
. ./libretro-config-user.sh
if [ -f "${WORKDIR}/libretro-config-user.sh" ]; then
. ${WORKDIR}/libretro-config-user.sh
fi

View File

@ -1,7 +1,27 @@
#! /bin/bash
# vi: sw=3 ts=3 et
. ./libretro-config.sh
# 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"`"
BASE_DIR="`dirname "${SCRIPT}"`"
. ${BASE_DIR}/libretro-config.sh
WORKDIR=$(pwd)