diff --git a/config/arch.x86_64 b/config/arch.x86_64 index 3e55616c5e..a7d1b39587 100644 --- a/config/arch.x86_64 +++ b/config/arch.x86_64 @@ -10,7 +10,7 @@ TARGET_KERNEL_ARCH=x86 # setup ARCH specific *FLAGS - TARGET_CFLAGS="-march=$TARGET_CPU -m64" + TARGET_CFLAGS="-march=$TARGET_CPU -m64 -mmmx -msse -msse2 -mfpmath=sse" TARGET_LDFLAGS="-march=$TARGET_CPU -m64" # build with SIMD support ( yes / no ) diff --git a/config/functions b/config/functions index 9dca01adf5..1f5b4bdbcd 100644 --- a/config/functions +++ b/config/functions @@ -456,19 +456,6 @@ init_package_cache() { fi } -check_path() { - local dashes="===========================" path_err_msg - if [ "${PWD##/usr}" != "${PWD}" ]; then - path_err_msg="\n $dashes$dashes$dashes" - path_err_msg="${path_err_msg}\n ERROR: Detected building inside /usr" - path_err_msg="${path_err_msg}\n $dashes$dashes$dashes" - path_err_msg="${path_err_msg}\n This is not supported with our buildsystem." - path_err_msg="${path_err_msg}\n Please use another dir (for example your \$HOME) to build ${DISTRONAME}" - - die "${path_err_msg}" - fi -} - load_build_config() { if [ -d "${1}" -a -f ${1}/.build.conf ]; then source ${1}/.build.conf @@ -486,6 +473,19 @@ save_build_config() { done } +check_path() { + local dashes="===========================" path_err_msg + if [ "${PWD##/usr}" != "${PWD}" ]; then + path_err_msg="\n $dashes$dashes$dashes" + path_err_msg="${path_err_msg}\n ERROR: Detected building inside /usr" + path_err_msg="${path_err_msg}\n $dashes$dashes$dashes" + path_err_msg="${path_err_msg}\n This is not supported with our buildsystem." + path_err_msg="${path_err_msg}\n Please use another dir (for example your \$HOME) to build ${DISTRONAME}" + + die "${path_err_msg}" + fi +} + check_distro() { local dashes="===========================" distro_err_msg if [ -z "${DISTRO}" -o ! -d "${DISTRO_DIR}/${DISTRO}" ]; then @@ -557,6 +557,7 @@ check_arch() { } check_config() { + check_path check_distro check_project check_device diff --git a/config/options b/config/options index 46ea9826a3..ea0a375dd5 100644 --- a/config/options +++ b/config/options @@ -1,93 +1,74 @@ # Do not build as root. Ever. -if [[ $EUID -eq 0 ]]; then +if [[ "${EUID}" -eq 0 ]]; then echo "Building as the root user is NOT supported. Use a regular user account for the build." 1>&2 exit 1 fi # set default language for buildsystem - export LC_ALL=C +export LC_ALL=C + +# set default independent variables +ROOT="${PWD}" +DISTRO_DIR="${ROOT}/distributions" +PROJECT_DIR="${ROOT}/projects" # determines DISTRO, if not forced by user -# default is LibreELEC -if [ -z "$DISTRO" ]; then - DISTRO="LibreELEC" -else - DISTRO="$DISTRO" -fi +DISTRO="${DISTRO:-LibreELEC}" # determines PROJECT, if not forced by user -# default is Generic -if [ -z "$PROJECT" ]; then - PROJECT="Generic" -else - PROJECT="$PROJECT" -fi +PROJECT="${PROJECT:-Generic}" -# determines TARGET_ARCH, if not forced by user (x86_64 / arm) -# default is x86_64 -if [ -z "$ARCH" ]; then - TARGET_ARCH="x86_64" -else - TARGET_ARCH="$ARCH" -fi - -ROOT="${PWD}" -DISTRO_DIR="$ROOT/distributions" -PROJECT_DIR="$ROOT/projects" +# determines TARGET_ARCH, if not forced by user +ARCH="${ARCH:-x86_64}" +TARGET_ARCH="${ARCH}" # include helper functions . config/functions -# include versioning - . config/version +# read DISTRO version information +. "${DISTRO_DIR}/${DISTRO}/version" || die "\nERROR: No distro version present\n" -# read distro versioning if available - if [ -f "$DISTRO_DIR/$DISTRO/version" ]; then - . $DISTRO_DIR/$DISTRO/version - fi +# read DISTRO options if available +if [ -f "${DISTRO_DIR}/${DISTRO}/options" ]; then + . "${DISTRO_DIR}/${DISTRO}/options" +fi -# read distro options if available - if [ -f "$DISTRO_DIR/$DISTRO/options" ]; then - . $DISTRO_DIR/$DISTRO/options - fi +# read PROJECT options if available +if [ -f "${PROJECT_DIR}/${PROJECT}/options" ]; then + . "${PROJECT_DIR}/${PROJECT}/options" +fi -# read project options if available - if [ -f "$PROJECT_DIR/$PROJECT/options" ]; then - . $PROJECT_DIR/$PROJECT/options - fi - -# read board options if available - if [ -f "$PROJECT_DIR/$PROJECT/devices/$DEVICE/options" ]; then - . $PROJECT_DIR/$PROJECT/devices/$DEVICE/options - fi +# read DEVICE options if available +if [ -f "${PROJECT_DIR}/${PROJECT}/devices/${DEVICE}/options" ]; then + . "${PROJECT_DIR}/${PROJECT}/devices/${DEVICE}/options" +fi # projects can set KERNEL_NAME (kernel.img) -[ -z "$KERNEL_NAME" ] && KERNEL_NAME="KERNEL" +KERNEL_NAME="${KERNEL_NAME:-KERNEL}" -LINUX_DEPENDS="$PROJECT_DIR/$PROJECT/linux $PROJECT_DIR/$PROJECT/patches/linux $PROJECT_DIR/$PROJECT/packages/linux $ROOT/packages/linux" -[ -n "$DEVICE" ] && LINUX_DEPENDS+=" $PROJECT_DIR/$PROJECT/devices/$DEVICE/linux $PROJECT_DIR/$PROJECT/devices/$DEVICE/patches/linux $PROJECT_DIR/$PROJECT/devices/$DEVICE/packages/linux" -[ "$TARGET_ARCH" = "x86_64" ] && LINUX_DEPENDS+=" $ROOT/packages/linux-firmware/intel-ucode $ROOT/packages/linux-firmware/kernel-firmware" +LINUX_DEPENDS="${PROJECT_DIR}/${PROJECT}/linux ${PROJECT_DIR}/${PROJECT}/patches/linux ${PROJECT_DIR}/${PROJECT}/packages/linux ${ROOT}/packages/linux" +[ -n "${DEVICE}" ] && LINUX_DEPENDS+=" ${PROJECT_DIR}/${PROJECT}/devices/${DEVICE}/linux ${PROJECT_DIR}/${PROJECT}/devices/${DEVICE}/patches/linux ${PROJECT_DIR}/${PROJECT}/devices/${DEVICE}/packages/linux" +[ "${TARGET_ARCH}" = "x86_64" ] && LINUX_DEPENDS+=" ${ROOT}/packages/linux-firmware/intel-ucode ${ROOT}/packages/linux-firmware/kernel-firmware" # Need to point to your actual cc -# If you have ccache installed, take care that LOCAL_CC don't point to it - [ -z "${LOCAL_CC}" ] && export LOCAL_CC="$(command -v gcc)" +# If you have ccache installed, take care that LOCAL_CC does not point to it +[ -z "${LOCAL_CC}" ] && export LOCAL_CC="$(command -v gcc)" -if [ -z "$LOCAL_CC" ] ; then - echo "***** Please install gcc *****" - exit 127 +if [ -z "${LOCAL_CC}" ]; then + die "***** Please install gcc *****" "127" fi # Need to point to your actual g++ -# If you have ccache installed, take care that LOCAL_CXX don't point to it - [ -z "${LOCAL_CXX}" ] && export LOCAL_CXX="$(command -v g++)" +# If you have ccache installed, take care that LOCAL_CXX does not point to it +[ -z "${LOCAL_CXX}" ] && export LOCAL_CXX="$(command -v g++)" # verbose compilation mode (yes/no) - VERBOSE="${VERBOSE:-yes}" +VERBOSE="${VERBOSE:-yes}" # Concurrency make level (-j option) # Try values between 1 and number of processor cores present. # default: use all cores - [ -z "${CONCURRENCY_MAKE_LEVEL}" ] && export CONCURRENCY_MAKE_LEVEL=$(nproc) +[ -z "${CONCURRENCY_MAKE_LEVEL}" ] && export CONCURRENCY_MAKE_LEVEL=$(nproc) # cache size for ccache # Set the maximum size of the files stored in the cache. You can specify a @@ -95,22 +76,21 @@ fi # value. The default is gigabytes. The actual value stored is rounded down to # the nearest multiple of 16 kilobytes. Keep in mind this per project .ccache # directory. - CCACHE_CACHE_SIZE="10G" +CCACHE_CACHE_SIZE="10G" # read options from $HOME if available - if [ -f "$HOME/.libreelec/options" ]; then - . $HOME/.libreelec/options - fi - -# overwrite OEM_SUPPORT via commandline -if [ "$OEM" = yes -o "$OEM" = no ]; then - OEM_SUPPORT=$OEM +if [ -f "${HOME}/.libreelec/options" ]; then + . "${HOME}/.libreelec/options" fi -[ -z ${_DEBUG_DEPENDS_LIST+x} ] && set_debug_depends +# overwrite OEM_SUPPORT via commandline +if [ "${OEM}" = "yes" -o "${OEM}" = "no" ]; then + OEM_SUPPORT="${OEM}" +fi -check_path >&2 -check_config >&2 +[ -z "${_DEBUG_DEPENDS_LIST+x}" ] && set_debug_depends + +check_config . config/graphic . config/path $1 diff --git a/config/show_config b/config/show_config index fa63c111dd..dc18851a32 100644 --- a/config/show_config +++ b/config/show_config @@ -129,32 +129,33 @@ show_config() { config_message="$config_message\n - Install HFS Tools:\t\t\t $HFSTOOLS" # Kodi configuration + if [ ! "$MEDIACENTER" = "no" ]; then + config_message="$config_message\n\n Kodi configuration:" + config_message="$config_message\n $dashes$dashes" - config_message="$config_message\n\n Kodi configuration:" - config_message="$config_message\n $dashes$dashes" + config_message="$config_message\n - Kodi version:\t\t\t $MEDIACENTER" + config_message="$config_message\n - Kodi Blu-Ray support:\t\t $KODI_BLURAY_SUPPORT" + if [ "$KODI_BLURAY_SUPPORT" = "yes" ] ; then + config_message="$config_message\n - Bluray BD+ support:\t\t $BLURAY_BDPLUS_SUPPORT" + config_message="$config_message\n - Bluray AACS support:\t\t $BLURAY_AACS_SUPPORT" + fi + config_message="$config_message\n - Kodi DVDCSS support:\t\t\t $KODI_DVDCSS_SUPPORT" + config_message="$config_message\n - Kodi Airplay support:\t\t $KODI_AIRPLAY_SUPPORT" + config_message="$config_message\n - Kodi Airtunes support:\t\t $KODI_AIRTUNES_SUPPORT" + config_message="$config_message\n - Kodi NFS support:\t\t\t $KODI_NFS_SUPPORT" + config_message="$config_message\n - Kodi MySQL support:\t\t\t $KODI_MYSQL_SUPPORT" + config_message="$config_message\n - Kodi Optical Drive support:\t\t $KODI_OPTICAL_SUPPORT" + config_message="$config_message\n - Kodi SAMBA client support:\t\t $KODI_SAMBA_SUPPORT" + config_message="$config_message\n - Kodi UPNP support:\t\t\t $KODI_UPNP_SUPPORT" + config_message="$config_message\n - Kodi Webserver support:\t\t $KODI_WEBSERVER_SUPPORT" - config_message="$config_message\n - Kodi version:\t\t\t $MEDIACENTER" - config_message="$config_message\n - Kodi Blu-Ray support:\t\t $KODI_BLURAY_SUPPORT" - if [ "$KODI_BLURAY_SUPPORT" = "yes" ] ; then - config_message="$config_message\n - Bluray BD+ support:\t\t $BLURAY_BDPLUS_SUPPORT" - config_message="$config_message\n - Bluray AACS support:\t\t $BLURAY_AACS_SUPPORT" + for config_skin in $SKINS; do + config_message="$config_message\n - Include Skin:\t\t\t $config_skin" + done + + config_message="$config_message\n - Default Skin:\t\t\t $SKIN_DEFAULT" + config_message="$config_message\n - Include extra fonts:\t\t\t $KODI_EXTRA_FONTS" fi - config_message="$config_message\n - Kodi DVDCSS support:\t\t\t $KODI_DVDCSS_SUPPORT" - config_message="$config_message\n - Kodi Airplay support:\t\t $KODI_AIRPLAY_SUPPORT" - config_message="$config_message\n - Kodi Airtunes support:\t\t $KODI_AIRTUNES_SUPPORT" - config_message="$config_message\n - Kodi NFS support:\t\t\t $KODI_NFS_SUPPORT" - config_message="$config_message\n - Kodi MySQL support:\t\t\t $KODI_MYSQL_SUPPORT" - config_message="$config_message\n - Kodi Optical Drive support:\t\t $KODI_OPTICAL_SUPPORT" - config_message="$config_message\n - Kodi SAMBA client support:\t\t $KODI_SAMBA_SUPPORT" - config_message="$config_message\n - Kodi UPNP support:\t\t\t $KODI_UPNP_SUPPORT" - config_message="$config_message\n - Kodi Webserver support:\t\t $KODI_WEBSERVER_SUPPORT" - - for config_skin in $SKINS; do - config_message="$config_message\n - Include Skin:\t\t\t $config_skin" - done - - config_message="$config_message\n - Default Skin:\t\t\t $SKIN_DEFAULT" - config_message="$config_message\n - Include extra fonts:\t\t\t $KODI_EXTRA_FONTS" if [ "$(type -t show_distro_config)" = "function" ]; then show_distro_config diff --git a/config/sources b/config/sources index 9971c2a33e..fe19a603fe 100644 --- a/config/sources +++ b/config/sources @@ -1,2 +1,2 @@ # Sourceforge download site - SOURCEFORGE_SRC="http://prdownloads.sourceforge.net" \ No newline at end of file + SOURCEFORGE_SRC="https://prdownloads.sourceforge.net" diff --git a/config/version b/distributions/LibreELEC/version similarity index 100% rename from config/version rename to distributions/LibreELEC/version diff --git a/projects/Generic/options b/projects/Generic/options index bba708a266..755d43f5a2 100644 --- a/projects/Generic/options +++ b/projects/Generic/options @@ -49,7 +49,7 @@ ################################################################################ # Project CFLAGS - PROJECT_CFLAGS="-mmmx -msse -msse2 -mfpmath=sse" + PROJECT_CFLAGS="" # SquashFS compression method (gzip / lzo / xz / zstd) SQUASHFS_COMPRESSION="gzip" diff --git a/scripts/image b/scripts/image index 97c4ea537a..3d2c42076c 100755 --- a/scripts/image +++ b/scripts/image @@ -289,7 +289,7 @@ if [ "$1" = "release" -o "$1" = "mkimage" -o "$1" = "amlpkg" -o "$1" = "noobs" ] cp $ROOT/CHANGELOG* $RELEASE_DIR echo "$TARGET_VERSION" > $RELEASE_DIR/RELEASE - if [ -n "$MEDIACENTER" ]; then + if [ ! "$MEDIACENTER" = "no" ]; then echo "Kodi commit: $(get_pkg_version $MEDIACENTER)" >> $RELEASE_DIR/RELEASE fi