blob: e677ebbcfddb8891f5cd279f4caa8bbb37b2d91e [file] [log] [blame]
#!/bin/bash
# This script installs relevant system dependencies for ./build.sh to compile JNI bindings.
# Each linux distribution has a different package manager, so the script has to be adapted
# for each distribution.
# To add your distribution:
# 1) Identify your distribution ID via:
# lsb_release -a
# 2) Add a case to the case statment below.
# 3) Add a function to handle your distribution.
func_echo_plus () {
# Echo function that prints output in green to distinguish it from sub-shell output.
GREEN='\033[0;32m'
NC='\033[0m' # No Color
echo -e "${GREEN}${@}${NC}"
}
func_echo_error () {
# As above, but in red. Also pre-appends '***' to output.
RED='\033[0;31m'
NC='\033[0m' # No Color
echo -e "${RED}*** ${@}${NC}"
}
func_configure_fedora () {
FEDORA_VERSION=$(cat /etc/system-release | cut -f3 -d" ")
if [ "$FEDORA_VERSION" -lt "21" ]; then
INSTALL_CMD="yum"
else
INSTALL_CMD="dnf"
fi
func_echo_plus "Installing C Development Tools"
set -x
sudo $INSTALL_CMD -y groups install "C Development Tools and Libraries"
func_echo_plus "Installing Java 8 development packages that include jni.h for JNI bindings. Update this script to '9' when java 9 comes out"
sudo $INSTALL_CMD -y install java-1.8.0-openjdk-devel.x86_64
func_echo_plus "Installing Gtk2 and Gtk3 development packages"
sudo $INSTALL_CMD -y install gtk3-devel gtk2-devel
func_echo_plus "Installing X11 Development libraries. Someday when wayland takes over these will not be needed..."
# Deals with error: "#include <X11/Intrinsic.h>, #include <X11/extensions/XTest.h>" build errors)
sudo $INSTALL_CMD -y install libXt-devel libXtst-devel
func_echo_plus "Install Mesa (OpenGL headers)"
# Deals with error: "/usr/bin/ld: cannot find -lGLU collect2: error: ld returned 1 exit status"
sudo $INSTALL_CMD -y install mesa-libGLU-devel
func_echo_plus "Done"
}
LINUX_DISTRO=$(cat /etc/system-release | cut -f1 -d" ")
if [ "$LINUX_DISTRO" = "" ]; then
func_echo_error "Error, could not identify your distribution"
exit
fi
DISTRO_NOT_KNOWN_MSG="
Currently the script doesn't know how to automatically configure your distro : $LINUX_DISTRO
Consider updating this script for your distribution.
In general, You should install the following packages:
- C Development tools (usually comes in a 'group install')
- java-*-openjdk-devel (depending on current version of java)
- gtk2-devel gtk3-devel
- libXt-devel libXts-devel
- mesa-libGLU-devel
"
case "$LINUX_DISTRO" in
"Fedora")
func_echo_plus "Fedora found. Installing packages..."
func_configure_fedora
;;
"YOUR_DISTRIBUTION")
echo "YOUR_DISTRIBUTION HERE"
;;
*)
func_echo_error "$DISTRO_NOT_KNOWN_MSG"
;;
esac
# check if .classpath exists in swt project.
if [ -a "../org.eclipse.swt/.classpath" ]; then
func_echo_plus ".classpath found, you are good to go";
else
func_echo_error "Warning: ../org.eclipse.swt/.classpath not found. Normally you rename ../org.eclipse.swt/.classpath_gtk to ../*/.classpath manually"
fi