mirror of
https://github.com/FunKey-Project/RetroFE.git
synced 2025-12-12 17:58:53 +01:00
145 lines
4.9 KiB
Bash
Executable File
145 lines
4.9 KiB
Bash
Executable File
#!/bin/bash-
|
|
|
|
# --------------------------------------------------------
|
|
# Installs RetroFE and SDL2 from source on the Raspberry Pi 2 (Raspbian)
|
|
#
|
|
# Run from the web:
|
|
# bash <(curl -s https://bitbucket.org/phulshof/retrofe/raw/default/Scripts/Raspi2/install.sh)
|
|
# --------------------------------------------------------
|
|
|
|
bold="\033[1m"
|
|
normal="\033[0m"
|
|
black='\033[0;30m'
|
|
darkgray='\033[1;30m'
|
|
lightgray='\033[0;37m'-
|
|
blue='\033[0;34m'
|
|
green='\033[0;32m'
|
|
cyan='\033[0;36m'
|
|
red='\033[0;31m'
|
|
purple='\033[0;35m'
|
|
orange='\033[0;33m'
|
|
yellow='\033[1;33m'
|
|
white='\033[1;37m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Welcome message
|
|
echo -e "\nThis script will download and install ${red}RetroFE${NC} including ${red}SDL2${NC} from source."
|
|
echo -e "It will take ${yellow}15-60 mins${NC} to complete on the Raspberry Pi 2 depending on number of updates and upgrades required."
|
|
|
|
# Prompt to continue
|
|
read -p " Continue? (y/n) " ans
|
|
if [[ $ans != "y" ]]; then
|
|
echo -e "\nQuitting...\n"
|
|
exit
|
|
fi
|
|
echo -e "\n\nWould you like to ${red}Update${NC} and ${red}Upgrade${NC} Raspbian?"
|
|
read -p " (y/n) " upans
|
|
echo -e "Compile and install ${yellow}SDL2${NC}?$"
|
|
read -p " (y/n) " sdlans
|
|
|
|
# Time the install process
|
|
START_TIME=$SECONDS
|
|
|
|
if [[ $upans = "y" ]]; then
|
|
|
|
# Update Rasbian
|
|
echo -e "\n\n${green}Updating...${NC}"
|
|
sudo apt-get update -y
|
|
|
|
# Upgrade Rasbian
|
|
echo -e "\n\n${green}Upgrading...${NC}"
|
|
sudo apt-get upgrade -y
|
|
|
|
fi
|
|
|
|
# Install basic dependencies not needed for compiling SDL2
|
|
echo -e "\n\n${green}Installing Round 1 Dependencies...${NC}"
|
|
sudo apt-get install -y tortoisehg g++ cmake dos2unix
|
|
|
|
# *********************************************************************
|
|
if [[ $sdlans = "y" ]]; then
|
|
|
|
# Compile SDL2 Libs-
|
|
echo -e "\n\n${green}Preparing SDL2 Libraries...${NC}"
|
|
|
|
# Setting up SDL2 variables
|
|
url="http://www.libsdl.org"
|
|
|
|
# sdl="SDL2-2.0.3"
|
|
# sdl_url="${url}/release/${sdl}.tar.gz"
|
|
# sdl_config='--host=armv7l-raspberry-linux-gnueabihf --disable-pulseaudio --disable-esd --disable-video-mir --disable-video-wayland --disable-video-x11 --disable-video-opengl'
|
|
|
|
image="SDL2_image-2.0.0"
|
|
image_url="${url}/projects/SDL_image/release/${image}.tar.gz"
|
|
image_config=""
|
|
|
|
mixer="SDL2_mixer-2.0.0"
|
|
mixer_url="${url}/projects/SDL_mixer/release/${mixer}.tar.gz"
|
|
mixer_config=""
|
|
|
|
ttf="SDL2_ttf-2.0.12"
|
|
ttf_url="${url}/projects/SDL_ttf/release/${ttf}.tar.gz"
|
|
ttf_config=""
|
|
|
|
get () {
|
|
cd /tmp
|
|
wget -N $1
|
|
tar -xzvf $2.tar.gz
|
|
cd $2
|
|
./configure && make -j 4 && sudo make install
|
|
rm /tmp/$2.tar.gz
|
|
rm -rf /tmp/$2
|
|
}
|
|
|
|
echo -e "\n\n${green}Installing Round 2 Dependencies...${NC}"
|
|
sudo apt-get install -y libglib2.0-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libsdl2* automake build-essential libasound2-dev libdbus-1-dev libfreeimage-dev libfreetype6-dev libjpeg8-dev libmpeg3-dev libopenal-dev libpango1.0-dev libsndfile-dev libtiff4-dev libudev-dev libvorbis-dev libwebp-dev
|
|
echo -e "\n\n${green}Beginning SDL2 Core build...${NC}"
|
|
# get ${sdl_url} ${sdl} ${sdl_config}
|
|
# Needs to be fixed so its part of the loop
|
|
cd /tmp
|
|
wget -N http://www.libsdl.org/release/SDL2-2.0.3.tar.gz
|
|
tar -xzvf SDL2-2.0.3.tar.gz
|
|
cd SDL2-2.0.3
|
|
./configure --host=armv7l-raspberry-linux-gnueabihf --disable-pulseaudio --disable-esd --disable-video-mir --disable-video-wayland --disable-video-x11 --disable-video-opengl
|
|
make -j 4
|
|
sudo make install
|
|
rm /tmp/SDL2-2.0.3.tar.gz
|
|
rm -rf /tmp/SDL2-2.0.3
|
|
echo -e "\n\n${green}Beginning SDL2 Image build...${NC}"
|
|
get ${image_url} ${image} ${image_config}
|
|
echo -e "\n\n${green}Beginning SDL2 Mixer build...${NC}"
|
|
get ${mixer_url} ${mixer} ${mixer_config}
|
|
echo -e "\n\n${green}Beginning SDL2 TTF build...${NC}"
|
|
get ${ttf_url} ${ttf} ${ttf_config}
|
|
echo -e "\n\n${green}SDL2 Libraries Complete....${NC}"
|
|
|
|
# Make sure Lib locations are updated
|
|
sudo ldconfig
|
|
# ****************************************************************************************
|
|
fi
|
|
cd ~
|
|
|
|
# Download RetroFE source
|
|
echo -e "\n\n${green}Downloading RetroFE...${NC}"
|
|
hg clone --debug -v https://bitbucket.org/phulshof/retrofe
|
|
|
|
cd retrofe
|
|
|
|
# Generate Make files for RetroFE
|
|
echo -e "\n\n${green}Generating make files...${NC}"
|
|
cmake RetroFE/Source -BRetroFE/Build -DVERSION_MAJOR=0 -DVERSION_MINOR=0 -DVERSION_BUILD=0
|
|
|
|
# Compile RetroFE
|
|
echo -e "\n\n${green}Compiling RetroFE and creating a full environment...${NC}"
|
|
cmake --build RetroFE/Build
|
|
|
|
# Install Basic folders and menu
|
|
python Scripts/Package.py --os=linux --build=full
|
|
|
|
# Print the time elapsed
|
|
ELAPSED_TIME=$(($SECONDS - $START_TIME))
|
|
echo -e "\n${bold}Finished in $(($ELAPSED_TIME/60/60)) hr, $(($ELAPSED_TIME/60%60)) min, and $(($ELAPSED_TIME%60)) sec${normal}\n"
|
|
|
|
#Final Message
|
|
echo -e "Copy ${bold}./retrofe/Artifacts/linux/RetroFE/${normal} to wherever you like or"
|
|
echo -e "Type ${bold}./retrofe/Artifacts/linux/RetroFE/retrofe${normal} to start..." |