forked from libretro/Lakka-LibreELEC
473 lines
14 KiB
Plaintext
473 lines
14 KiB
Plaintext
### DISTRO INFORMATION ###
|
|
|
|
# Name of the Distro to build (full name, without special characters)
|
|
DISTRONAME="Lakka"
|
|
|
|
# short project description
|
|
DESCRIPTION="Lakka is a fast and user-friendly retroarch turnkey distribution"
|
|
|
|
# Homepage
|
|
DISTRO_WEBSITE="https://www.lakka.tv/"
|
|
|
|
# Do not add version to the build folder name
|
|
BUILD_NO_VERSION="yes"
|
|
|
|
|
|
### USER INTERFACE SETTINGS ###
|
|
|
|
# Welcome Message for e.g. SSH Server (up to 5 Lines)
|
|
GREETING0="###########################################"
|
|
GREETING1="# Lakka - The DIY retro emulation console #"
|
|
GREETING2="# ...... visit http://www.lakka.tv ...... #"
|
|
GREETING3="###########################################"
|
|
GREETING4=""
|
|
|
|
# Root password to integrate in the target system
|
|
ROOT_PASSWORD="root"
|
|
|
|
# Partition labels for USB/SD installation media
|
|
DISTRO_BOOTLABEL="LAKKA"
|
|
DISTRO_DISKLABEL="LAKKA_DISK"
|
|
|
|
|
|
### BUILDSYSTEM SETTINGS ####
|
|
|
|
# LTO (Link Time Optimization) support
|
|
LTO_SUPPORT="yes"
|
|
|
|
# GOLD (Google Linker) support
|
|
GOLD_SUPPORT="yes"
|
|
|
|
# HARDENING (security relevant linker and compiler flags) support
|
|
HARDENING_SUPPORT="no"
|
|
|
|
# Default supported get handlers (archive, git, file etc.)
|
|
GET_HANDLER_SUPPORT="archive git"
|
|
|
|
|
|
### OS CONFIGURATION ###
|
|
|
|
# Install glibc locales to the build (yes / no)
|
|
GLIBC_LOCALES="yes"
|
|
|
|
# additional drivers to install:
|
|
# for a list of additional drivers see packages/linux-drivers
|
|
# Space separated list is supported,
|
|
# e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2"
|
|
ADDITIONAL_DRIVERS="RTL8192DU RTL8812AU"
|
|
|
|
# Default size of system partition, in MB, eg. 512
|
|
SYSTEM_SIZE=2048
|
|
|
|
# Default system partition offset, in sectors, eg. 2048
|
|
SYSTEM_PART_START=8192
|
|
|
|
# build with swap support (yes / no)
|
|
SWAP_SUPPORT="yes"
|
|
|
|
# swap support enabled per default (yes / no)
|
|
SWAP_ENABLED_DEFAULT="no"
|
|
|
|
# swapfile size if SWAP_SUPPORT=yes in MB
|
|
SWAPFILESIZE="128"
|
|
|
|
# debug tty path
|
|
DEBUG_TTY="/dev/tty3"
|
|
|
|
|
|
### LAKKA SETTINGS ###
|
|
# Mediacenter to use (kodi / no)
|
|
MEDIACENTER="lakka"
|
|
|
|
# build and install ALSA support (yes / no)
|
|
ALSA_SUPPORT="yes"
|
|
|
|
# build and install PulseAudio support (yes / no)
|
|
PULSEAUDIO_SUPPORT="no"
|
|
|
|
# build and install bluetooth support (yes / no)
|
|
BLUETOOTH_SUPPORT="yes"
|
|
|
|
# build and install Avahi (Zeroconf) daemon (yes / no)
|
|
AVAHI_DAEMON="yes"
|
|
|
|
# Distribution Specific source location
|
|
DISTRO_MIRROR="http://sources.libreelec.tv/mirror"
|
|
DISTRO_SRC="http://sources.libreelec.tv/$LIBREELEC_VERSION"
|
|
|
|
# wireless daemon to use (wpa_supplicant/iwd)
|
|
WIRELESS_DAEMON="wpa_supplicant"
|
|
|
|
# build and install iSCSI support - iscsistart (yes / no)
|
|
ISCSI_SUPPORT="yes"
|
|
|
|
# build with NFS support (mounting nfs shares via the OS) (yes / no)
|
|
NFS_SUPPORT="yes"
|
|
|
|
# build with Samba Client support (mounting samba shares via the OS) (yes / no)
|
|
SAMBA_SUPPORT="yes"
|
|
|
|
# build and install Samba Server (yes / no)
|
|
SAMBA_SERVER="yes"
|
|
|
|
# build and install SFTP Server (yes / no)
|
|
SFTP_SERVER="yes"
|
|
|
|
# build and install OpenVPN support (yes / no)
|
|
OPENVPN_SUPPORT="yes"
|
|
|
|
# build and install WireGuard support (yes / no)
|
|
WIREGUARD_SUPPORT="yes"
|
|
|
|
# build and install diskmounter support (udevil)
|
|
# this service provide auto mounting support for external drives in the
|
|
# mediacenter also automount internally drives at boottime via udev (yes / no)
|
|
UDEVIL="yes"
|
|
|
|
# Support for partitioning and formating disks in initramfs (yes / no)
|
|
# This adds support for parted and mkfs.ext3/4 to initramfs for OEM usage
|
|
INITRAMFS_PARTED_SUPPORT="no"
|
|
|
|
# build and install NTFS-3G fuse support (yes / no)
|
|
NTFS3G="yes"
|
|
|
|
# build and install hfs filesystem utilities (yes / no)
|
|
HFSTOOLS="yes"
|
|
|
|
# build and install nano text editor (yes / no)
|
|
NANO_EDITOR="yes"
|
|
|
|
# cron support (yes / no)
|
|
CRON_SUPPORT="yes"
|
|
|
|
# build with installer (yes / no)
|
|
INSTALLER_SUPPORT="yes"
|
|
|
|
# Windowmanager to use (fluxbox / none)
|
|
WINDOWMANAGER="none"
|
|
|
|
# build and install Joystick support (yes / no)
|
|
JOYSTICK_SUPPORT="yes"
|
|
|
|
# OEM packages for OEM's (yes / no)
|
|
OEM_SUPPORT="no"
|
|
|
|
# additional packages to install:
|
|
# Space separated list is supported,
|
|
# e.g. ADDITIONAL_PACKAGES="PACKAGE1 PACKAGE2"
|
|
ADDITIONAL_PACKAGES="rsync"
|
|
|
|
# Lakka specific mirror
|
|
LAKKA_MIRROR="http://sources.lakka.tv"
|
|
|
|
# Do not build the OVA image
|
|
SKIP_VIRTUAL_APPLIANCE="yes"
|
|
|
|
# PINN group for the distro
|
|
DISTRO_PINN_GROUP="Games"
|
|
|
|
# List of optional RetroArch / libretro packages
|
|
LIBRETRO_OPTIONAL="\
|
|
retroarch_assets \
|
|
retroarch_overlays \
|
|
retroarch_joypad_autoconfig \
|
|
libretro_database \
|
|
core_info \
|
|
"
|
|
|
|
# List of libretro cores
|
|
LIBRETRO_CORES="\
|
|
2048 \
|
|
81 \
|
|
a5200 \
|
|
atari800 \
|
|
beetle_bsnes \
|
|
beetle_lynx \
|
|
beetle_ngp \
|
|
beetle_pce \
|
|
beetle_pce_fast \
|
|
beetle_pcfx \
|
|
beetle_psx \
|
|
beetle_saturn \
|
|
beetle_supafaust \
|
|
beetle_supergrafx \
|
|
beetle_vb \
|
|
beetle_wswan \
|
|
blastem \
|
|
bluemsx \
|
|
bnes \
|
|
boom3 \
|
|
bsnes \
|
|
bsnes2014 \
|
|
bsnes_hd \
|
|
bsnes_mercury \
|
|
cannonball \
|
|
cap32 \
|
|
chailove \
|
|
citra \
|
|
craft \
|
|
crocods \
|
|
daphne \
|
|
desmume \
|
|
desmume_2015 \
|
|
dinothawr \
|
|
dirksimple \
|
|
dolphin \
|
|
dosbox \
|
|
dosbox_core \
|
|
dosbox_pure \
|
|
dosbox_svn \
|
|
easyrpg \
|
|
emux_sms\
|
|
ecwolf \
|
|
ep128emu \
|
|
fake_08 \
|
|
fbalpha2012 \
|
|
fbneo \
|
|
fceumm \
|
|
flycast \
|
|
fmsx \
|
|
freechaf \
|
|
freeintv \
|
|
fuse_libretro \
|
|
gambatte \
|
|
gearboy \
|
|
gearsystem \
|
|
genesis_plus_gx \
|
|
genesis_plus_gx_wide \
|
|
geolith \
|
|
gme \
|
|
gpsp \
|
|
gw_libretro \
|
|
handy \
|
|
hatari \
|
|
higan_sfc \
|
|
higan_sfc_balanced \
|
|
jaxe \
|
|
jumpnbump \
|
|
kronos \
|
|
lowres_nx \
|
|
lutro \
|
|
mame \
|
|
mame2000 \
|
|
mame2003_plus \
|
|
mame2010 \
|
|
mame2015 \
|
|
melonds \
|
|
meowpc98 \
|
|
mesen \
|
|
mesen_s \
|
|
mgba \
|
|
mgba_fork \
|
|
mojozork \
|
|
mrboom \
|
|
mu \
|
|
mupen64plus_next \
|
|
neocd \
|
|
nestopia \
|
|
np2kai \
|
|
numero \
|
|
nxengine \
|
|
o2em \
|
|
openlara \
|
|
opera \
|
|
parallel_n64 \
|
|
pcsx2 \
|
|
pcsx_rearmed \
|
|
picodrive \
|
|
play \
|
|
pocketcdg \
|
|
pokemini \
|
|
potator \
|
|
ppsspp \
|
|
prboom \
|
|
prosystem \
|
|
puae \
|
|
puae2021 \
|
|
px68k \
|
|
quasi88 \
|
|
quicknes \
|
|
race \
|
|
reminiscence \
|
|
retro8 \
|
|
same_cdi \
|
|
sameboy \
|
|
sameduck \
|
|
scummvm \
|
|
snes9x \
|
|
snes9x2002 \
|
|
snes9x2005 \
|
|
snes9x2005_plus \
|
|
snes9x2010 \
|
|
stella \
|
|
stella2014 \
|
|
superbroswar \
|
|
swanstation \
|
|
tgbdual \
|
|
theodore \
|
|
thepowdertoy \
|
|
tic80 \
|
|
tyrquake \
|
|
uae4arm \
|
|
uzem \
|
|
vbam \
|
|
vecx \
|
|
vice \
|
|
vircon32 \
|
|
virtualjaguar \
|
|
vitaquake2 \
|
|
vitaquake3 \
|
|
wasm4 \
|
|
xmil \
|
|
xrick \
|
|
yabasanshiro \
|
|
yabause \
|
|
"
|
|
|
|
# list of cores that should be moved in front of the build line,
|
|
# as they take longer to build, so they are built earlier
|
|
LR_PRIORITY_CORES="scummvm mame"
|
|
|
|
# disable some cores
|
|
if [ "${PROJECT}" = "RPi" ]; then
|
|
if [ "${DEVICE}" = "RPi" -o "${DEVICE}" = "GPICase" ]; then
|
|
EXCLUDE_LIBRETRO_CORES+="\
|
|
beetle_bsnes \
|
|
beetle_psx \
|
|
beetle_saturn \
|
|
beetle_vb \
|
|
bk_emulator \
|
|
bsnes \
|
|
bsnes2014 \
|
|
bsnes_hd \
|
|
bsnes_mercury \
|
|
citra \
|
|
desmume \
|
|
desmume_2015 \
|
|
dolphin \
|
|
dosbox \
|
|
dosbox_core \
|
|
dosbox_pure \
|
|
dosbox_svn \
|
|
flycast \
|
|
higan_sfc \
|
|
higan_sfc_balanced \
|
|
kronos \
|
|
mame \
|
|
mame2010 \
|
|
mame2015 \
|
|
melonds \
|
|
meowpc98 \
|
|
mesen \
|
|
mesen_s \
|
|
mupen64plus_next \
|
|
openlara \
|
|
opera \
|
|
parallel_n64 \
|
|
play \
|
|
ppsspp \
|
|
puae \
|
|
same_cdi \
|
|
snes9x2005_plus \
|
|
snes9x2010 \
|
|
swanstation \
|
|
uae4arm \
|
|
vbam \
|
|
virtualjaguar \
|
|
vircon32 \
|
|
vitaquake2 \
|
|
yabause \
|
|
yabasanshiro \
|
|
"
|
|
elif [ "${DEVICE}" = "Pi02GPi" ]; then
|
|
EXCLUDE_LIBRETRO_CORES+=" flycast kronos openlara play ppsspp vircon32 yabasanshiro"
|
|
elif [ "${DEVICE}" = "RPi2" ]; then
|
|
EXCLUDE_LIBRETRO_CORES+=" play"
|
|
elif [ "${DEVICE}" = "RPi3" ]; then
|
|
EXCLUDE_LIBRETRO_CORES+=" yabasanshiro"
|
|
fi
|
|
elif [ "${PROJECT}" = "Amlogic" -o "${PROJECT}" = "Rockchip" -o "${PROJECT}" = "Allwinner" ]; then
|
|
EXCLUDE_LIBRETRO_CORES+=" yabasanshiro"
|
|
elif [ "${PROJECT}" = "Generic" -a "${ARCH}" = "i386" ]; then
|
|
EXCLUDE_LIBRETRO_CORES+=" fake_08 openlara"
|
|
elif [ "${PROJECT}" = "L4T" -a "${DEVICE}" = "Switch" ]; then
|
|
#Remove xpadneo from L4T builds
|
|
EXCLUDE_LIBRETRO_CORES+=" cap32 stella"
|
|
ADDITIONAL_PACKAGES="${ADDITIONAL_PACKAGES//xpadneo/}"
|
|
elif [ "${PROJECT}" = "Ayn" -a "${DEVICE}" = "Odin" ]; then
|
|
EXCLUDE_LIBRETRO_CORES+=" lr_moonlight"
|
|
fi
|
|
|
|
if [ "${OPENGLES_SUPPORT}" = "yes" ]; then
|
|
#Core doesnt work with OPENGLES builds, as nanogui doesnt have support for that
|
|
#Mental note fix OPENGLES in moonlight core gui/renderer.
|
|
EXCLUDE_LIBRETRO_CORES+=" lr_moonlight"
|
|
fi
|
|
|
|
# disable cores that are only for specific targets
|
|
# fbalpha2012 and mame2000 only for RPi/GPICase
|
|
if [ "${PROJECT}" != "RPi" ]; then
|
|
EXCLUDE_LIBRETRO_CORES+=" fbalpha2012 mame2000"
|
|
elif [ "${DEVICE}" != "RPi" -a "${DEVICE}" != "GPICase" ]; then
|
|
EXCLUDE_LIBRETRO_CORES+=" fbalpha2012 mame2000"
|
|
fi
|
|
# boom3 and vitaquake for now only for Switch
|
|
if [ "${PROJECT}" != "L4T" -a "${DEVICE}" != "Switch" ]; then
|
|
EXCLUDE_LIBRETRO_CORES+=" boom3 vitaquake3"
|
|
fi
|
|
# lr_moonlight only for Switch
|
|
if [ "${PROJECT}" != "L4T" -a "${DEVICE}" != "Switch" ]; then
|
|
EXCLUDE_LIBRETRO_CORES+=" lr_moonlight"
|
|
fi
|
|
# kronos currently builds only for gbm and x11 x86_64 arch (does not work on GLES)
|
|
if [ "${PROJECT}" != "Generic" ]; then
|
|
EXCLUDE_LIBRETRO_CORES+=" kronos"
|
|
elif [ "${ARCH}" != "x86_64" ]; then
|
|
EXCLUDE_LIBRETRO_CORES+=" kronos"
|
|
elif [ "${DEVICE}" != "Generic" -a "${DEVICE}" != "x11" ]; then
|
|
EXCLUDE_LIBRETRO_CORES+=" kronos"
|
|
fi
|
|
|
|
# lr_moonlight does not currently build for Switch because of newer OpenSSL package (older package is not compatible with ffmpeg)
|
|
if [ "${DEVICE}" = "Switch" ]; then
|
|
EXCLUDE_LIBRETRO_CORES+=" lr_moonlight"
|
|
fi
|
|
|
|
# exclude some cores at build time
|
|
if [ -n "${EXCLUDE_LIBRETRO_CORES}" ]; then
|
|
for core in ${EXCLUDE_LIBRETRO_CORES} ; do
|
|
LIBRETRO_CORES="${LIBRETRO_CORES// ${core} /}"
|
|
done
|
|
fi
|
|
|
|
# override above with custom list
|
|
if [ -n "${CUSTOM_LIBRETRO_CORES}" ]; then
|
|
LIBRETRO_CORES="${CUSTOM_LIBRETRO_CORES}"
|
|
fi
|
|
|
|
# put priority cores in front of the build queue
|
|
if [ -n "${LR_PRIORITY_CORES}" ]; then
|
|
for core in ${LR_PRIORITY_CORES} ; do
|
|
if [[ "${LIBRETRO_CORES}" =~ " ${core} " ]]; then
|
|
LIBRETRO_CORES="${core} ${LIBRETRO_CORES// ${core} /}"
|
|
fi
|
|
done
|
|
fi
|
|
|
|
# Update server
|
|
LAKKA_BUILD_TYPE="${LAKKA_BUILD_TYPE:-release}"
|
|
|
|
if [ -z "${LAKKA_UPDATE_SERVER_URL}" ]; then
|
|
case ${LAKKA_BUILD_TYPE} in
|
|
release)
|
|
LAKKA_UPDATE_SERVER_URL="http://le.builds.lakka.tv"
|
|
;;
|
|
nightly)
|
|
LAKKA_UPDATE_SERVER_URL="http://nightly.builds.lakka.tv/.updater"
|
|
;;
|
|
devel)
|
|
LAKKA_UPDATE_SERVER_URL="http://nightly.builds.lakka.tv/.devbuild"
|
|
;;
|
|
esac
|
|
fi
|