GNUstep on Ubuntu 14.04
From: |
Stephen Schaub |
Subject: |
GNUstep on Ubuntu 14.04 |
Date: |
Wed, 21 May 2014 12:15:49 -0700 (PDT) |
User-agent: |
G2/1.0 |
I am new to Objective-C and GNUstep, and have spent the last few days trying to
get an environment set up with support for blocks and ARC.
Ubuntu 14.04 has several versions of clang packaged for it in the standard
repositories, so I thought that would be the way to go, since building clang
from source requires a lot of time and disk space.
The script here was very helpful in helping me get a working setup:
http://wiki.gnustep.org/index.php/GNUstep_under_Ubuntu_Linux
However, when I tried to follow it on a stock Ubuntu 14.04 system, I ran into
trouble. I think my difficulty stemmed from the order the script builds things.
The post here indicates that GNUstep make should be installed before libobjc2,
and then reinstalled again afterwards:
http://brilliantobjc.blogspot.kr/2012/12/cocoa-on-freebsd.html
So, here is my script for installing Clang and GNUstep on Ubuntu 14.04. I'm
hoping it will save someone some time.
# inspired by http://wiki.gnustep.org/index.php/GNUstep_under_Ubuntu_Linux
#install build tools and gnustep prereqs
sudo apt-get -y install clang-3.5 git subversion ninja cmake
sudo apt-get -y install libffi-dev libxml2-dev libgnutls-dev libicu-dev
sudo apt-get -y install libblocksruntime-dev libkqueue-dev
libpthread-workqueue-dev autoconf libtool
cd ~/Downloads
#download source
git clone git://github.com/nickhutchinson/libdispatch.git
svn co http://svn.gna.org/svn/gnustep/modules/core
svn co http://svn.gna.org/svn/gnustep/libs/libobjc2/trunk libobjc2
export CC=clang
export CXX=clang++
#install GNUstep make
cd ~/Downloads/core/make
./configure --enable-debug-by-default --with-layout=gnustep
--enable-objc-nonfragile-abi
make -j8
sudo -E make install
. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
#install libobjc2
cd ~/Downloads/libobjc2
mkdir build
cd build
cmake ..
make
sudo make install
#reinstall GNUstep make after libobjc2
cd ~/Downloads/core/make
./configure --enable-debug-by-default --with-layout=gnustep
--enable-objc-nonfragile-abi
make -j8
sudo -E make install
#add GNUstep config to shell config
echo ". /usr/GNUstep/System/Library/Makefiles/GNUstep.sh" >> ~/.bashrc
source ~/.bashrc
#install gnustep-base
cd ~/Downloads/core/base/
./configure
make -j8
sudo -E make install
#install Grand Central Dispatch
cd ~/Downloads/libdispatch
sh autogen.sh
./configure CFLAGS="-I/usr/include/kqueue" LDFLAGS="-lkqueue
-lpthread_workqueue -pthread -lm"
make -j8
sudo -E make install
sudo ldconfig
#install GUI prerequisites
sudo apt-get install -y libjpeg-dev libtiff-dev
sudo apt-get install -y libcairo-dev libx11-dev:i386 libxt-dev
#install gnustep gui components
cd ~/Downloads/core/gui
./configure
make -j8
sudo -E make install
cd ~/Downloads/core/back
./configure
make -j8
sudo -E make install