Lakka-LibreELEC/distributions/Lakka/options
2024-06-01 00:56:06 +02:00

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