]> GNUstep Build Guide for Unix Systems A basic system &dennis.author; 2001 2002 2003 2004 2005 2006 Dennis Leeuw Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". Version 1.8.0 06 April 2006 1.8.0 6 April 2006 DL Updated texts to SVN instead of CVS and to newest release versions. 1.7.0-pre1 24 March 2005 DL Added Chapter Basic Tools and Chapter Developer Tools. Made preparations for rewrite, so we can work towards 1.7.0. This is needed for a complete GNUstep Library to be created. 1.6.0 16 Oct 2003 DL All updated to latest and greatest. Removed guile and gnustep-guile. 1.5.12 20 Sept 2003 DL Created credits list as table. 1.5.11 29 April 2003 DL More IDs added. Bug in setting the Language for Defaults fixed. Added ideas by Chris B. Vetter for the X and init script setup. 1.5.10 04 April 2003 DL More consistent interface/layout. Preparation for scripting by adding IDs 1.5.0 13/14 December 2002 DL Migrated to DocBook, lot of layout and text changes, minor updates to versions and procedures. 1.4.2 29 Sept 2002 DL Added a modified check for gmp, suggested by Larry Coleman. 09 Sept 2002 DL Updated to the newest version of gcc, updated to the newest binutils. 11 May 2002 DL changed the gcc configure options again, since they where too Debian 03 May 2002 DL Made some additional notes on the building of gcc and the xinitrc part, adjusted the xinitrc file to comply to the new gnustep-back situation. Added a Debian bootscript example (additions are welcome) 26 Apr 2002 DL Moved the WindowMaker build to /usr/local thanks to Larry Coleman, added notes for Solaris 8 users in the binutils section, added gdb-5.1.1 version and links to patches. 21 Apr 2002 DL Added the install of libffi to gcc section, removed the DGS section and setting the backend section, made extensions a chapter directly after installing GNUstep, added StepTalk to the extensions chapter, moved gsguile to extensions chapter, moved wmaker before the GNUstep build chapter, with this I assume a graphical workstation. 21 Apr 2002 DL Wrote new boot script and removed shell script startup section. Made sure the xinitrc could be found. 16 Apr 2002: Fixed the CVS source paths for GNUstep. 29 Mar 2002 DL Added the back part and removed xgps and xdps. 22 Feb 2002 DL Changed all versions to most recent ones, added troubleshooting section to gui build part, added tar jxvf note in Build Basic section (note from Dean Chouinard) Document description Introduction This guide will try to guide you through the installation process of building GNUstep from source code. I only have GNU/Linux systems, so it might be that some things are GNU/Linux related. Some things are just assumed to be there, like a working system and the X-windows system (X11R6). If you work your way through the document from start to finish, you should end up with a working system. No guarantees are made ofcourse. If you find things to be different on your system, please let me know. Credits Writing a guide is not a one man job. First of all there needs to be a subject to write about, then there is the need to gather information and after that bugs, omissions, etc. are found in the work. The list tries to thank the people that helped me writing this guide. It is far from complete, but the best I could do. If you feel you should be on the list, but are not let me know. Credits Adam Fedor The maintainer of the GNUstep project and one that was always willing to answer my sometimes plain stupid questions. Richard Frith-Macdonald He is a genius, what else can I say. Thanks. Nicola Pero Good programmers guides, and hell why did you write Gomoku.app. So much time is lost with that addictive game. David Nelson for his valuable input on the Build Guide. Martin Brecher For finding a lot of bugs in the Build Guide. Thanks Martin you have been, and still are a big help. And he also craeted the German translation available at http://www.stupid-design.com/martin/GNUstep/develop-de.html Stefan Boehringer For helping with the use of correct English. Peter Cooper Thank you for nit-picking the Guide. Great help. Gerold Rupprecht For correcting a lot of mistakes and making the English more clear. Chris B. Vetter For the FreeBSD additions. And his help with the German translation by Martin Brecher. Ben Lindsey Solaris 8 notes Helge Hess For his notes on a more userfriendly guide. Jef Teunissen Technical contributions Fred Kiefer nsmapping.strings stuff, answered all my questions concerning fonts and menus. Adrian Robert Explained the way the new NSColorList works
&tmmicrosoft; &tmapple; &tmnext;
The GNUstep sources GNUstep can be build in various ways. The easiest is to use the GNUstep-Startup script, which can be found at http://ftp.gnustep.org/pub/gnustep/core/. If you go that route, you can stop reading now. Those that want to do it by hand with the same result can use the source packages located at the same location. This guide is aimed at those people. And the last option is to use SVN for part or all of the parts described in this Guide. The SVN servers and the way to checkout the different parts is described here also, but remember... SVN has all the newest features, including the broken ones!
Versioning The GNUstep sources (the core part) are numbered X.Y.Z, where X is the major number, Y the minor and Z the bugfix-release. If the minor number changes it means there are changes that influence the system in such a way that you should recompile everything that depends on it. So if the gnustep-gui minor version changes, you should also recompile all your applications. The bugfix-release number is set to 0, so be prepared to find some bugs and other stuff. The higher the bugfix-release number the more stable the package gets.
Building GNUstep By default GNUstep is built into /usr/GNUstep. We will follow this procedure. Be sure you build GNUstep as root. That means configure, make and make install should be run as root.
The Makefile System &gsmake-intro;
Getting the sources &gsmake-get-ftp; &gsmake-get-http; &gsmake-get-cvs;
Dependencies &gsmake-deps;
Building the Makefile system &gsmake-build; &gsmake-shellscript;
The Foundation &gsbase-intro;
Getting the sources &gsbase-get-ftp; &gsbase-get-http; &gsbase-get-cvs;
Dependencies &gsbase-deps;
Building the Foundation &gsbase-build-note-bsd; &gsbase-build;
The AppKit &gsgui-intro;
Getting the sources &gsgui-get-ftp; &gsgui-get-http; &gsgui-get-cvs;
Dependencies &gsgui-deps;
Building the AppKit &gsgui-build-note-bsd; &gsgui-build;
The Backend &backend-intro;
Getting the sources &gsback-get-ftp; &gsback-get-http; &gsback-get-cvs;
Dependencies X11 &gsback-deps-x11;
Building the X11 backend &gsback-build-x11;
Dependencies libart &gsback-deps-art;
Building the libart backend &gsback-build-art;
ArtResources &artresources-intro;
Getting the sources &artresources-get-http;
Installing ArtResources &artresources-build;
Configure GNUstep This chapter describes the settings for the GNUstep system. GNUstep uses a per user configuration file called ~/GNUstep/Defaults/.GNUstepDefaults. Since these settings are per user the changes you make should be made per user too. Most default settings will work most people. The first four sections are a must read, the rest can be done now, or later when needed.
The defaults command &defaults;
GNUstep Filesystem Domains &domains;
Changing the backend &backendintro;
Setting the system default backend &backendsys;
Setting the backend per application &backendapp;
Localization &l10n;
Local Time Zone <Z;
Language settings &NSLanguages;
Creating your local language support &lproj;
Metrics used &NSMeasurementUnit;
Application Settings
Setting the Workspace application &GSWorkspaceApplication;
Default PostScript previewer for printing &NSPreviewApp;
Default Bundles &bundle; &loadablebundle; &GSAppKitUserBundles;
Look and Feel
Styles &GSX11HandlesWindowDecorations; &NSInterfaceStyleDefault; &NSMenuInterfaceStyle;
Fonts &fontsintro; &fontstable;
Anti-Aliased Fonts &GSFontAntiAlias;
Font mask for X11 &GSFontMask;
Multi-byte and Unicode support &GSXEnableFontSet;
nfonts for libart &fontsnfont;
GNUstep color system &colorintro;
Alpha channel &GraphicCompositing;
Application color names &NSColorList;
Setting the colors per channel &NSColorsPerChannel;
Displaying Files
Displaying directories &GSBrowserCellFontify;
Hide dot-files &GSFileBrowserHideDotFiles;
Icons &iconintro; &systemicons;
Freedesktop icons &GSUseFreedesktopThumbnails;
Window Maker Dock &UseWindowMakerIcons;
MiniWindows &miniwindowintro; &GSAppOwnsMiniwindow;
MiniWindow on taskbar &GSUseWMTaskBar;
Progress Panel for Save and Open &GSSavePanelShowProgress;
GNUstep services GNUstep knows two kinds of services: the ones that are started at boot time and the once that are used per user session. The boot service is gdomap, and the once used per user are gdnc and gpbs. Since it is very hard to supply scripts that work on every system. I will supply you with some example scripts, that should work on almost any system. But your milage may vary.
gdomap &gdomap-intro; &gdomapoptions;
Boot script &bootscript;
gdnc &gdnc-intro; &gdncoptions;
gpbs &gpbs-intro; &gpbsoptions; &NSHost; &GSOldClipboard;
X startup script &xscript;
Building Extensions The following parts are options, but enhance GNUstep or are so important to applications that they are considered a vital part of GNUstep. You are free to skip some parts or this entire section, but we advise you not to.
Renaissance &renaissance-intro;
Getting the sources &renaissance-get-http;
Building Renaissance &renaissance-build;
StepTalk &steptalk-intro;
Getting the sources &steptalk-get-ftp; &steptalk-get-http;
Building StepTalk &steptalk-build;
Basic Tools
GWorkspace &gworkspace-intro;
Getting the sources &gworkspace-get-http;
Dependencies &gworkspace-deps;
Building GWorkspace &gworkspace-build;
Developer Tools
Project Center &pc-intro;
Getting the sources &pc-get-ftp;
Building ProjectCenter &pc-build;
GORM &gorm-intro;
Getting the sources &gorm-get-ftp;
Building GORM &gorm-build;
The end You now have a complete GNUstep development environment. The Makfile system and the libraries are there. It is now up to you how you want to procede, which programs you want to use, all is possible now. Happy Stepping! Build from source
Tips while installing Be sure to have atleast /usr/local/lib and /usr/X11R6/lib in your /etc/ld.so.conf before you continue. The general procedure to compile most software programs is to use: ./configure make make install Make sure you use GNU make for this. That means that on e.g. FreeBSD you'll have to substitute the make command with gmake. I don't know much about other compilers then gcc, so I guess you are on your own on that one. Let me know if you have good tips. I always like to keep track about what a program installs and where, so I always do (I assume sources go under /usr/src): mkdir -p /var/adm/[programname] touch /usr/src/test ./configure make make install find / -cnewer /usr/src/test | grep -v /proc | grep -v /var | grep -v /usr/src > /var/adm/[programname]/filelist Now I have a complete list of all installed files, which saves me trouble in generating packages, but also when removing the program, before upgrading or if something was build wrong (which happens).
Build ffcall &ffcall-intro; &ffcall-get-ftp; &ffcall-build;