Uli's Web Site
[ Zathras.de - Uli's Web Site ]
Other Sites: Stories
Abi 2000
Stargate: Resurgence
Lost? Site Map!
     home | blog | moose | programming | articles >> blog

 Blog Topics

15 Most Recent [RSS]

 Less work through Xcode and shell scripts
2011-12-16 @600
 iTunesCantComplain released
2011-10-28 @954
 Dennis Ritchie deceased
2011-10-13 @359
 Thank you, Steve.
2011-10-06 @374
 Cocoa Text System everywhere...
2011-03-27 @788
 Blog migration
2011-01-29 @520
 All you need to know about the Mac keyboard
2010-08-09 @488
 Review: Sherlock
2010-07-31 @978
 Playing with Objective C on Debian
2010-05-08 @456
 Fruit vs. Obst
2010-05-08 @439
 Mixed-language ambiguity
2010-04-15 @994
 Uli's 12:07 AM Law
2010-04-12 @881
 Uli's 1:24 AM Law
2010-04-12 @874
 Uli's 6:28 AM Law
2010-04-12 @869
 Uli's 3:57 PM Law
2010-04-12 @867


Installing GNUstep on MacOS X

What follows is a short summary of how I got GNUstep running under MacOS X 10.3.5 ("Panther"). This was a little more complicated due to problems with Apple's GCC, GNU's GCC, a few broken links on GNUstep.org, and my general cluelessness about everything beyond configure/make/make install.

I've done this on a fresh install of MacOS X 10.3.5 with everything I didn't need removed. This included all localizations, printer drivers, iTunes and other apps that the installer let me turn off. However, I *did* install everything that even smelled of developer tools. In particular, that was the BSD subsystem, Apple's X11 and the X11 SDK.

Finally, I installed the Fink Package Manager for MacOS X, which is the easiest way to get the libraries GNUstep relies on, and I downloaded the "gnustep-make", "gnustep-base", "gnustep-gui" and "gnustep-back" packages, which are linked from the GNUstep Project's front page.

gnustep-make contains a file README.Darwin in its "Documentation" folder, which contains the installation instructions for MacOS X (Darwin is the name of the Unix OS X is based on). This readme is a great installation guide. You'll want to read it once to get an idea what you'll be doing, then you'll want to get back to this file to learn about some details that were missing from that file.

Really Really Getting GNUstep

  1. Download gcc-3.3.5.tar.bz2 from gcc.gnu.org's web site and bunzip2 it (Apple's GCC won't work, which is why we need our own). Note that, when I tried, neither GCC 3.3.2 nor 3.4.1 nor 3.4.2 worked. If you get weird errors about Objective C not working, or about a file 'c++filt3' being missing, you may want to try another GCC version. 3.3.5 was that "other version" for me.
    If you can't find that file, try one of the FTP sites linked to from GCC's "mirror sites" page. They usually have a directory for each version under "releases" or so.
  2. Create a "build" folder next to the gcc-3.3.5 folder and cd into it, as described in the file README.Darwin.
  3. run gcc 3.3.5's configure, make bootstrap and sudo make install, with the current folder still set to "build". The make bootstrap command can take several hours (six-ish). To save some time, you can specify --enable-languages=c,objc as an option when configuring, which will only build C and ObjC compilers, and leave out unneeded stuff like Java, C++ or Ada.
  4. Instead of getting the needed Unix stuff (mostly libraries) from GNUstep.org, use Fink. Apart from libxml2, libtiff, libjpeg, libpng, windowmaker, libart2 and freetype2, you'll also want to get libxslt (this isn't mentioned in the README, but configure will complain about it).
  5. Apart from these differences, the build guide in README.Darwin is pretty much current. Except that you'll want to substitute sudo make install everywhere it says make install. Apart from that, do what it says.
  6. Once you have installed all the stuff, and initialized WindowMaker, start X11.app (which Apple put in /Applications/Utilities. It will ask whether you're sure you want to use the WindowMaker Window Manager. Click yes.
  7. Set X11.app to fullscreen mode instead of rootless (X11 -> Preferences...). Otherwise WindowMaker will put stuff behind the Mac menu bar.
  8. Add the following to the .xinitrc file that Window Maker created in your home directory:
    test -r /sw/bin/init.sh && . /sw/bin/init.shexport CC=/usr/local/bin/gccexport DYLD_LIBRARY_PATH=/usr/local/lib:/sw/lib:$DYLD_LIBRARY_PATH. /usr/GNUstep/System/Makefiles/GNUstep.sh

    This file contains commands to be executed when X11 starts. The first line is what Fink added to your .profile when it was installed, so I guess it'd be a good idea to have it in XTerm as well. The second line makes sure that GNUstep's make will use GCC 3.3.5 instead of Apple's GCC. Of course, you'll only want this if you're only using X11 for GNUstep. The third line makes sure the linker finds the Fink-installed libraries, and the last line pulls in everything GNUstep offers in terms of command line tools etc.
  9. Get some apps. Gorm, GNUstep's Interface Builder clone is pretty easy to get, as is GWorkspace, GNUstep's Finder equivalent. The link for ProjectCenter on GNUstep.org was broken at the time of this writing, but if you go into the FTP servers containing it, you'll find it in that folder, just with a different version number on the name.
    Note: When doing a sudo make install, the $DYLD_LIBRARY_PATH variable of your user is not used by root. In that case, you may be better off doing:
    user# sudo bashroot# . /usr/GNUstep/System/Library/MakeFiles/GNUstep.shroot# make install
    This will first give you a root shell, in which you can then manually pull in the GNUstep stuff (that's what the "." command on line two does) and then you can finally do your make install. I needed this for installing GWorkspace and Project Center.
    Note: if, upon launching Project Center, you get an error message about the library ProjectCenter.framework/ProjectCenter being missing, you will want to create a symbolic link to the actual ProjectCenter library file, which in my version (0.4.0) was installed deeper in the hierarchy:
    cd /usr/GNUstep/System/Library/Frameworks/ProjectCenter.frameworksudo ln -s Versions/0.4.0/libProjectCenter.dylib.0.4.0 ProjectCenter
    Note that for brevity I used a partial pathname to libProjectCenter. Should this not work for you, use the absolute pathname (i.e. starting at /usr/GNUstep and going on via ProjectCenter.framework).

Thanks a lot to

all the nice folks at gnu.gnustep.discuss, in particular:
  • Carl Eugen Hoyer (he tried to help me back when I tried this first)
  • Quentin Mathé
  • Nicola Pero
  • Alex Perez
  • Adam Fedor
  • Markus Hitter
Created: 2004-10-30 @037 Last change: 2004-10-31 @712 | Home | Admin | Edit
© Copyright 2003-2023 by M. Uli Kusterer, all rights reserved.