Skip to content

Instantly share code, notes, and snippets.

@jtomschroeder
Created August 7, 2012 20:10
Show Gist options
  • Save jtomschroeder/3288942 to your computer and use it in GitHub Desktop.
Save jtomschroeder/3288942 to your computer and use it in GitHub Desktop.
Script for installing Etoile on Ubuntu
#!/bin/sh
# From http://svn.gna.org/viewcvs/*checkout*/etoile/trunk/Etoile/LiveCD/Subscripts/ubuntu-install-etoile.sh?content-type=text%2Fplain
# Date: Aug 7, 2012
# Initialize option variables with default values
BUILD_DIR=$PWD/build
PREFIX_DIR=/
ETOILE_VERSION=trunk
# Create a build directory if none exists
if [ ! -d $BUILD_DIR ]; then
mkdir $BUILD_DIR
else
echo "Found existing build directory"
fi
cd $BUILD_DIR
# Install Etoile and GNUstep dependencies for Ubuntu 9.04 (copied from INSTALL.Ubuntu)
# Universe repository needs to be enabled in /etc/apt/sources.list for libonig-dev to show up
#sudo aptitude install gobjc-4.3 libxml2-dev libxslt1-dev libffi-dev libssl-dev libjpeg62-dev libtiff4-dev libpng12-dev libgif-dev libfreetype6-dev libx11-dev libcairo2-dev libxft-dev libxmu-dev dbus libdbus-1-dev hal libstartup-notification0-dev libxcursor-dev libxss-dev xscreensaver g++ libpoppler-dev libonig-dev lemon libgmp3-dev postgresql libpq-dev libavcodec-dev libavformat-dev libtagc0-dev libmp4v2-dev
# sudo apt-get install gobjc \
# libxml2-dev \
# libxslt1-dev \
# libffi-dev \
# libssl-dev \
# libgnutls-dev \
# libicu-dev \
# libjpeg62-dev \
# libtiff4-dev \
# libpng12-dev \
# libgif-dev \
# libfreetype6-dev \
# libx11-dev \
# libcairo2-dev \
# libxft-dev \
# libxmu-dev \
# dbus \
# libdbus-1-dev \
# hal \
# libstartup-notification0-dev \
# libxcursor-dev \
# libxss-dev \
# xscreensaver \
# g++ \
# libpoppler-dev \
# libonig-dev \
# lemon \
# libgmp3-dev \
# postgresql \
# libpq-dev \
# libavcodec-dev \
# libavformat-dev \
# libtagc0-dev \
# libmp4v2-dev \ # (multiverse)
# libgraphviz-dev
sudo apt-get install -y \
g++ \
libffi-dev \
libxml2-dev \
libgnutls-dev \
libicu-dev \
libxslt1-dev \
libssl-dev \
libjpeg-dev \
libtiff-dev \
libpng-dev \
libx11-dev \
libxt-dev \
libcairo-dev \
libgmp-dev \
libonig-dev \
libpoppler-dev
# Install Subversion to be able to check out Etoile
sudo apt-get install -y subversion
# Check out, build, and install llvm & clang
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
cd llvm/tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
cd .. # llvm/
./configure --enable-optimized && make -j4 && sudo -E make install
cd .. # build/
export CC=clang
# Check out and build the latest GNUstep release
svn co http://svn.gna.org/svn/gnustep/modules/core
svn co http://svn.gna.org/svn/gnustep/libs/libobjc2/trunk libobjc2
# Build & Install GNUstep
cd core/make
./configure --enable-debug-by-default --with-layout=gnustep --prefix=$PREFIX_DIR
make && sudo -E make install
# . /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
# Or . /System/Library/Makefiles/GNUstep.sh if --prefix=/ was passed
cd ../.. # build/
# Source the GNUstep shell script, and add it to the user's bashrc
. ${PREFIX_DIR%/}/System/Library/Makefiles/GNUstep.sh
echo ". ${PREFIX_DIR%/}/System/Library/Makefiles/GNUstep.sh" >> ~/.bashrc
# Build libobjc2
cd libobjc2
make debug=no && sudo -E make strip=yes install
cd ..
# Install GNUstep Make a second time so it can detect the new ObjC runtime just installed:
cd core/make
./configure --enable-debug-by-default --enable-objc-nonfragile-abi --with-layout=gnustep --prefix=$PREFIX_DIR
make && sudo -E make install
cd ../base
# For Linux (e.g. Ubuntu), --with-ffi-include is usually required
./configure --disable-mixedabi --disable-unicodeconstants --with-ffi-include=/usr/include/`gcc -dumpmachine`
make && sudo -E make install
cd ../gui
./configure && make && sudo -E make install
cd ../back
./configure # --enable-graphics=cairo
make && sudo -E make install
cd ../.. # build/
# Download latest Gorm release over FTP, uncompress and build it
# wget -nc ftp://ftp.gnustep.org/pub/gnustep/dev-apps/$GSGORM.tar.gz
# tar -xzf $GSGORM.tar.gz
# cd $GSGORM
# make && sudo -E make install
# cd ..
# Check out and build the requested Etoile version
if [ $ETOILE_VERSION = stable ]; then
ETOILE_REP_PATH=stable
elif [ $ETOILE_VERSION = trunk ]; then
ETOILE_REP_PATH=trunk/Etoile
fi
svn co http://svn.gna.org/svn/etoile/$ETOILE_REP_PATH Etoile
cd Etoile
make && sudo -E make install
./setup.sh
echo
echo "Installation Complete!"
echo
echo "Log out, choose Etoile session in GDM, and log in to start Etoile."
echo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment