4 Last Update: 3 September 2004
6 This document explains how to build the different components of the
7 GNUstep core libraries and GNUstep Launchpad.
9 Copyright (C) 1996 - 2002 Free Software Foundation, Inc.
11 Permission is granted to copy, distribute and/or modify this document
12 under the terms of the GNU Free Documentation License, Version 1.1 or
13 any later version published by the Free Software Foundation.
18 This document explains how to build the GNUstep core libraries. The
19 core libraries, along with associated tools and other files provide
20 everything necessary for a working GNUstep system.
22 In order to easily compile and debug GNUstep projects, you will need
23 the GNU Objective-C compiler `GCC' as well as various other GNU
26 You will need at least 80Mb of hard disk space (150Mb prefered) in
27 order to compile the GNUstep core libraries.
32 In order to compile the libraries, you need to compile and install the
33 following packages first (if you don't already have them):
35 * gcc (Version 2.95 or greater, 3.0.4 or greater recommended)
37 * GNU make (Version 3.75 or greater)
39 * gdb (Version 6.0 or greater recommended), if you plan to do any
42 You may also need to install some of the following libraries and
43 packages described below. Most of these packages are optional, but some
46 `ffcall libraries (HIGHLY RECOMMENDED)'
47 This is a library that provides stack-frame handling for
48 NSInvocation and NSConnection. This library is highly recommended.
49 The previous builtin method for stack frame handling is no longer
50 supported and may be removed in the future. ffcall is under GNU
51 GPL. As a special exception, if used in GNUstep or in derivate
52 works of GNUstep, the included parts of ffcall are under GNU LGPL.
54 `libffi library (ALTERNATIVE RECOMMENDATION)'
55 This is a library that provides stack frame handling for
56 NSInvocation and NSConnection similar to ffcall. Use this instead
57 of ffcall. You don't need both.
59 `libxml2 (RECOMMENDED)'
60 The libxml library (Version 2) is used to translate some of the
61 documentation for GNUstep and to provide suport for MacOS-X
62 compatible XML-based property-lists. It is recommended but not
66 Stylesheet support for use with XML.
69 The openssl library is used to provide support for https
70 connections by the NSURL and HSURLHandle classes. This
71 functionality is compiled as a separate bundle since the OpenSSL
72 license is not compatible with GPL, and in the hopes that if
73 someone writes an openssl replacement, it can quickly be used by
74 creating another bundle.
77 Note: Do not install this library unless you are sure you need it.
78 You probably don't need it except perhaps on MinGW. Unicode
79 support functions (iconv) come with glibc version 2.1 or greater.
80 If you don't have glibc (try iconv -version), you can get the
81 separate libiconv library from
82 <http://clisp.cons.org/~haible/packages-libiconv.html>. However,
83 neither one is required to use GNUstep.
85 `The TIFF library (libtiff) (Version 3.4beta36 or greater) (REQUIRED)'
86 The GUI library uses this to handle loading and saving TIFF images.
88 `The JPEG library (libjpeg) (RECOMMENDED)'
89 The GUI library uses this to handle loading JPEG images.
91 `The PNG library (libpng) (RECOMMENDED)'
92 The GUI library uses this to handle loading PNG images.
94 `libaudiofile (RECOMMENDED)'
95 The GUI library uses this for the sound server
97 `freetype2 (RECOMMENDED, REQUIRED for art backend)'
98 This is used for font information
100 `libart_lgpl2 (REQUIRED for art backend only)'
101 Drawing library for the art backend.
103 `WindowMaker (Version >= 0.62) (OPTIONAL)'
104 GNUstep and WindowMaker work together to provide a consistant
105 interface. Although it is not required, GNUstep will work much
106 better if you use it with the WindowMaker window manager. Get
107 WindowMaker from <http://www.windowmaker.org>.
109 `gnustep-objc package (for gcc version < 3.0 ONLY) (RECOMMENDED)'
110 Note: Do not install this library unless you are sure you need it.
111 You probably don't need it except on MinGW. This is a special
112 version of the Objective-C runtime that include several bug fixes
113 and features that were not in gcc versions previous to 3.0. It is
114 available at <ftp://ftp.gnustep.org/pub/gnustep/libs> which
115 compiles using the GNUstep Makefile package (so you don't have to
116 get the entire gcc dist). Make sure to set the THREADING variable
117 in the GNUmakefile. It's possible to compile the library static
118 (make shared=no) and just copy to the place where the gcc libobjc
119 library is (type gcc -v to get this location). Note you have to
120 install gnustep-make (below) before installing this library.
123 GDB can be obtained from <ftp://ftp.gnu.org/gnu/gdb>. As of release
124 6.0, gdb has special support for debugging Objective-C programs.
127 You need a TeX implementation, like tetex, to compile some of the
128 documentation (although most of that is available on the web).
130 Compiling and Installing the packages
131 *************************************
133 Get the following individual packages:
143 See <http://www.gnustep.org> for information on where to get these
146 Make sure you install (if necessary) all the previously mentioned
147 libraries first before configuring and building GNUstep.
149 You should install these packages as root (read special note for the
150 gnustep-base library, below, if you cannot do this).
152 For installation on specific systems, read the machine specific
153 instructions at the end of this document or appropriate README files in
154 the gnustep-make Documentation directory (such as README.MingW for
157 Installing the Core Libraries
158 =============================
160 The GNUstep packages uses the Autoconf mechanism for configuration; it
161 checks some host capabilties which are used by all GNUstep software.
162 To configure just type:
166 The GNUstep makefile package needs a root directory. If the
167 GNUSTEP_SYSTEM_ROOT environment variable is set then configure will
168 determine the root directory from its value (by removing the final
169 /System path component from it). You can also specify the root
170 directory when you run configure with the prefix paramater; the
171 following command makes /usr/local/GNUstep the root directory:
173 ./configure --prefix=/usr/local/GNUstep
175 If you do not have the GNUSTEP_SYSTEM_ROOT environment variable set
176 and you do not specify a root directory when running configure, then
177 configure will use /usr/GNUstep as the default root directory.
179 Alternate Library Setup
180 -----------------------
182 Read the installation instructions in the Makefile package (make) for
183 more installation options. Make sure you use the same configuration
184 options when configuring each GNUstep library.
189 To build the individual packages, use this familiar set of commands for
190 each pacakge (add any additional options you decide upon):
196 Start with the Makefile Pacakge (gnustep-make). After installing
197 gnustep-make you need to execute GNUstep's shell configuration script,
200 . /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
202 before proceeding any further.
204 NOTE for gcc 2.X or MinGW users: Now install gnustep-objc. Before
205 building gnustep-objc, edit the `GNUmakefile' and set the THREADING
206 variable to the thread library used on your system (usually its posix,
207 but you can leave it at single if you don't need threads). At this point
208 you should probably re-configure, make and install gnustep-make, so it
209 can pick up on any threading information that gnustep-objc provides.
211 Now install gnustep-base, gnustep-gui and finally gnustep-back.
213 NOTE: If you are trying to install the packages without root
214 permission, you may need to change one thing in the base library. Edit
215 the file gnustep-base/Tools/gdomap.h to uncomment the last line and
216 modify the specified port number to a port which you _know_ is not in
217 use on your network. You should only do this if absolutely necessary
218 since making this change will break communications with any systems
219 where an identical change has not been made. Also, the standard gdomap
220 port is the one officially registered with IANA and is reserved for use
221 by gdomap - it should only be changed if you can't get your system
222 administrator to start the gdomap server using it.
224 Additional Installation
225 ***********************
230 Add the shell script `GNUstep.sh' located in the Makefile package to
231 your shell startup file (such as `.profile'). For instance, if your
232 GNUSTEP_SYSTEM_ROOT is `/usr/GNUstep/System',
234 . /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
236 in your `.profile' file will work (Note the period at the beginning
237 of the line, and the space between the period and the following path;
238 if your GNUSTEP_SYSTEM_ROOT is different, you need to replace
239 `/usr/GNUstep/System' with your GNUSTEP_SYSTEM_ROOT). It defines
240 environment variables that are needed to find GNUstep files and
241 executables. Users of csh need to use the `GNUstep.csh' script. Read
242 the make package `README' for more info. Some systems, like GNU/Linux
243 have an `/etc/profile.d' directory where scripts can be executed
244 automatically. If you want to set up GNUstep for every user on your
245 system, you can try copying/linking the `GNUstep.sh' there. For csh or
248 source /usr/GNUstep/System/Library/Makefiles/GNUstep.csh
253 Set up your home GNUstep directory. This should be done automatically
254 if you don't do it. This is where user defaults are kept as well as
255 other user configuration files. User installed apps, libraries, etc are
256 also here (if the default user directory is used).
264 Next, set your local time zone. There are four ways to do this, pick
266 `$GNUSTEP_SYSTEM_ROOT/Library/Libraries/Resources/gnustep-bsae/NSTimeZones/zones'
267 for typical time zones):
269 1. Use the defaults utility to set "Local Time Zone" to your local
270 time zone (defaults is installed with GNUstep in the Tools
271 directory). Type something like "defaults write NSGlobalDomain
272 "Local Time Zone" GB".
274 2. Set the GNUSTEP_TZ environment variable.
277 `$GNUSTEP_SYSTEM_ROOT/Library/Libraries/Resources/gnustep-base/NSTimeZones/localtime'
278 with the name of the local time zone in it.
280 4. Set the TZ environment variable (this may conflict with other
281 software on your system though).
286 Set up your system to execute some GNUstep deamons. If you don't do
287 this, they will be started automatically when you run your first GNUstep
290 * gdomap - Put this in a system startup file, like `/etc/rc.local'
291 or `/etc/rc.d/rc.local' (customize for your system)
292 GNUSTEP_SYSTEM_ROOT=/usr/GNUstep/System
293 if [ -f $GNUSTEP_SYSTEM_ROOT/Tools/gdomap ]; then
294 $GNUSTEP_SYSTEM_ROOT/Tools/gdomap
297 * gdnc - Start after sourcing `GNUstep.sh' (e.g. in .profile)
299 * gpbs - Same as with gdnc, make sure X-Windows is running.
301 if [ `gdomap -L GDNCServer | grep -c Unable` == 1 ]; then
302 echo "Starting GNUstep services..."
307 Test Tools and Applications
308 ***************************
310 Test programs for the base library are in `base/Testing'. Example
311 applications are located in the gstep-examples package. To make these,
312 just uncompress and untar this package, cd to the appropriate
313 directory, and type make. You will need to install the GNUstep core
314 libraries first before doing this.
316 To run the examples. Use the openapp utility that is part of the
317 GNUstep makefile package (and stored in `$GNUSTEP_SYSTEM_ROOT/Tools').
320 openapp application [additional arguments to app]
324 Machine Specific Instructions
325 *****************************
329 Below is a list of machines that people have attempted to compile
330 GNUstep on. GNUstep compiles with little or no trouble on many of the
331 more popular operating systems. Some machines marked with _Unstable_
332 may have some trouble or may not work at all. Platforms marked _Needs
333 Testing_ are not actively tested by developers and need someone to help
334 with reporting problems and fixes. Platforms marked _Obsolete_ are
335 very old distributions. No one really knows if GNUstep works on these
338 A recommended compiler is listed for each machine, if known. You
339 should try to use the recommended compiler for compiling GNUstep, as
340 GNUstep is quite complex and tends provoke a lot of errors in some
341 compilers. Even versions newer than the listed compiler may not work,
342 so don't just get the latest version of a compiler expecting it to be
343 better than previous versions.
345 Compiler notes: If a recommended compiler is not listed, take note
346 of the following information before choosing the compiler you use.
348 Might work, but few people use these now.
351 Probably the oldest compiler that GNUstep is regularly tested with.
354 Not an official gcc release. Some versions (Redhat, Mandrake) have
355 problems that prevent GNUstep from being compiled correctly and
356 cause mysterious errors.
359 A fairly good compiler. Recommended.
362 Several bugs where introduced in the version. It's probably better
363 to avoid this one, although it might work fine.
366 Pretty good. Recommended.
369 Recommended. Fixes some bugs relating to protocols as well as other
375 If you have compiled GNUstep on a specific machine, please send
376 information about what you needed and any special instructions needed to
377 GNUstep <bug-gnustep@gnu.org>.
379 If your having mysterious trouble with a machine, try compiling
380 GNUstep without optimization. Particularly in the newer GCC compilers,
381 optimization can break some code. The easiest way to do this is when
382 configuring, `CFLAGS="" ./configure'. Or when building, `make
385 Also if you manually upgraded gcc and/or make, we recommend reading
386 the documentation at <http://www.LinuxFromScratch.org> for tips on
387 compiling and installing gcc and make. If you had GNUstep previously
388 installed, make sure you completely remove all of it, including
389 installed init scripts.
394 Currently tested on Darwin 7.x
396 `Recommended compiler'
397 gcc 3.3.2. Older versions will not compile on Darwin.
399 Default compiler has unknown problems. Use the GNU runtime.
400 Download the gcc compiler and configure it with
401 -enable-threads=posix. You don't need binutils or anything else.
405 `Special Instructions'
406 Read the <README.Darwin> file in the gnustep-make/Documentation
407 directory for complete instructions.
413 Currently tested on Darwin 6.x, 7.x
415 `Recommended compiler'
416 gcc 3.3.2. Older versions will not compile on Darwin.
418 Default compiler has unknown problems. Use the GNU runtime.
419 Download the gcc compiler and configure it with
420 -enable-threads=posix. You don't need binutils or anything else.
423 Use libffi (not ffcall). This should be enabled by default in
424 gnustep-base so you don't have to type -enable-libffi. For 6.x,
425 you need the dlcompat library (from <www.opendarwin.org>) to load
426 bundles (not needed for 7.x).
428 `Special Instructions'
429 Read the <README.Darwin> file in the gnustep-make/Documentation
430 directory for complete instructions.
433 See also the MacOSX/PowerPC section
438 `Recommended compiler'
444 `Special Instructions'
451 `Recommended compiler'
457 `Special Instructions'
464 `Recommended compiler'
470 `Special Instructions'
477 `Recommended compiler'
483 `Special Instructions'
489 Tested on 5.0 and 5.1
490 `Recommended compiler'
495 `Special Instructions'
496 Can install via /usr/ports/devel/gnustep, but not all required
497 dependancies are installed. See the GNUstep-HOWTO for list of
504 `Recommended compiler'
509 `Special Instructions'
510 For gcc 3.0.4, make WANT_THREADS_SUPPORT=YES
512 For libxml2 2.4.24, make WITHOUT_PYTHON=YES
518 Compiles "out of the box" on FreeBSD 3.4.
520 `Recommended compiler'
526 `Special Instructions'
527 You need to use gmake not make to compile the GNUstep packages. A
528 special port of gdb can be used with the Objective-C patches from
529 <ftp://ftp.pcnet.com/users/eischen/FreeBSD/gdb-4.17-port.tar.gz>
531 The best compiler for GNUstep is the latest release of the GNU
532 Compiler Collection (GCC). You can find it at
533 <http://egcs.cygnus.com/>.
535 If you want to use the native POSIX threads support from `libc_r'
536 pass `--enable-threads=posix' to configure. This is the
537 recommended option as this is the FreeBSD threads package that
538 gives the best results -with others you may be unable to run some
539 examples like `diningPhilosophers'.
541 The whole compilation process can fail if you have another threads
542 library installed so watch out for installed packages like `pth'
543 and such. Besides the support for libc_r, GNUstep will also look
544 for `pth' and `pcthreads', so if you have installed them and they
545 aren't detected prepare to write a nice bug report.
547 This can be done more much easily by using the port version. Just
548 `cd' to `/usr/ports/lang/egcs' and do a `"make WANT_THREADS=yes
551 If configure cannot find tiff.h or the tiff library and you have
552 it installed in a non-standard place (even `/usr/local'), you may
553 need to pass these flags to configure:
554 `CFLAGS="-I/usr/local/include"' and `LDFLAGS="-L/usr/local/lib"'.
557 FreeBSD 2.x (_Obsolete,Unstable_)
558 =================================
560 `Recommended compiler'
566 `Special Instructions'
567 Only static libraries work on this system. Use /stand/sysinstall
568 to install these packages if you have not already done so:
573 Seems to compile ok, but some tests crash. Possibly due to a
574 performace 'hack' in base. Might be a good idea to upgrade to
575 FreeBSD 3.x. You need to use gmake not make to compile the
582 `Recommended compiler'
585 To use threads, it's necessary to bootstrap a compiler yourself:
586 configure with -enable-threads=posix, that will work as long as you
587 link EVERY objective C executable with -lpthread, no matter what
588 warnings the irix linker produces!
593 `Special Instructions'
594 If you cannot link the library because of the very low default
595 limit (20480) for the command line length, then you should either
596 use systune ncargs to increase the value (maximum is 262144) or
597 link the library by hand. No libffi-support: Use ffcall
603 Currently tested on MacOSX 10.2, 10.3
605 `Recommended compiler'
611 `Special Instructions'
612 By default, on Mac OS X, only the GNUstep extensions are built.
613 This is if you want to build gdl2, etc on Mac OS X. Xcode project
614 files exist, but they may not be up-to-date. Try:
617 ./configure --with-library-combo=apple-apple-apple
621 ./configure --with-xml-prefix=/usr --disable-xmltest
622 make debug=yes install
625 See also the Darwin/PowerPC section.
630 Tested with R2 RC2 (2004/03/04).
632 `Recommended compiler'
633 gcc 3.x allthough earlier ones should work if you also install
639 `Special Instructions'
646 `Recommended compiler'
652 `Special Instructions'
653 See the <README.NetBSD> file located in the gnustep-make package.
656 Netwinder (_Unstable_)
657 ======================
659 `Recommended compiler'
660 Build #12 of the system.
665 `Special Instructions'
666 See <http://www.netwinder.org/~patrix>
668 OpenBSD 3.x (_Needs Testing_)
669 ==============================
671 `Recommended compiler'
677 `Special Instructions'
678 Try reading the <README.NetBSD> which might work the same on
681 OSF Alpha (_Unstable_)
682 =======================
684 Information is for Version 3.2C
686 `Recommended compiler'
687 egcs-1.1.1/1.1.2, gcc-2.95
692 `Special Instructions'
693 Can only compile with static libraries. Compiler may fail when
694 linking executables (e.g. gdnc). Standard ranlib and ar programs
695 are to feable to create libraries. Should use GNU binutils
696 versions. Linker sometimes fails to find symbols, in which case
697 you may need to link with a library twice. For instance, add an
698 extra -lgnustep-gui in ADDTIONAL_TOOL_LIBS in the
699 GNUmakefile(.preamble).
705 `Recommended compiler'
709 Standard (ffcall or libffi)
711 `Special Instructions'
717 `Recommended compiler'
723 `Special Instructions'
727 Solaris 2.5.1/Sparc (_Obsolete_)
728 ================================
730 This configuration is no longer being tested, but it may still work.
732 `Recommended compiler'
736 tiff, Don't use the one in /usr/openwin
738 `Special Instructions'
739 See the Solaris 2.6 section for more instructions.
741 Solaris 2.[678]/Sparc
742 =====================
744 Tested on Solaris version 6, 7, and 8
746 `Recommended compiler'
747 gcc 3.2.1 or greater gcc 2.95.3. Version 2.95.2 has several bugs
748 that GNUstep tickles. gcc 3.04. Not 3.1 - does not compile parts
752 tiff, Don't use the one in /usr/openwin
754 `Special Instructions'
755 Using a POSIX shell (zsh or bash, which should come with Solaris)
756 is highly recommended. In fact, some functions, such as compiling
757 frameworks, will not work without it.
760 Some people have reported problems when using binutils assembler and
761 linker. Using the native Solaris assmebler and linker should work fine.
763 Older Instructions: If you are using threads, make sure the
764 Objective-C runtime (libobjc that comes with gcc) is compiled with
765 threads enabled (This is true by default) AND that it is compiled with
766 the _REENTRANT flag defined (This does not seem to be true by default).
767 Or use the gnustep-objc package. Also make sure THREADS is set to
768 'posix' not 'solaris'.
773 `Recommended compiler'
779 `Special Instructions'
780 Make sure there are no -g compiler flags (i.e. compiling with
781 debug=yes might be a problem). Unsure of correct bundle flags -
782 You might need to use the alternate flags listed in target.make,
783 line 989. Also, configuring gnustep-make with
784 `--disable-backend-bundle' might be necessary if you can't get
785 bundles to work. You will probable get a lot of text relocation
786 warnings, which probably can be ignored. See the other Solaris
787 instructions above for more information.
793 GNUstep has been tested on version 6.2-6.4 of Suse
795 `Recommended compiler'
801 `Special Instructions'
802 It seems that there is a problem with the default kernel build
803 distributed with Suse which means that the socket binding used by
804 gdnc doesn't work. If you recompile the kernel then it starts
811 GNUstep has been tested on version 7.0, 8.0, 8.1, 8.2, 9.0, and 9.1 of
814 `Recommended compiler'
815 The default compiler that comes with Susu is fine. Also gcc2.95.x,
816 gcc3.0.x, 3.1 and 3.2 work, but 2.95 is faster. Compile with
817 -threads-enabled (non-standard).
822 `Special Instructions'
829 GNUstep has been tested on version 7.0 of Suse/PPC
831 `Recommended compiler'
832 Standard. gcc2.95.x, gcc3.0.x and gc3.1 work, but 2.95 is faster.
833 Compile with -threads-enabled (non-standard).
838 `Special Instructions'
843 `Recommended compiler'
850 Special Instructions for GNUstep installation on Unixware 2.1 systems
853 Tune the kernel to increase the argument space so that we can pass
854 long command-line argument strings to processes (which the
855 makefiles do) (/etc/conf/bin/idtune ARG_MAX 102400)
858 Install raft of the latest GNU software
860 gzip (you need this to unpack other stuff)
861 make (to build everything)
862 m4 (for autoconf etc)
863 autoconf (if you need to change anything)
866 binutils (required by gcc if you want to debug)
868 (configure --with-gnu-as --with-gnu-ld --with-stabs)
869 NB. gcc-2.8.1 needs a fix to __do_global_dtors_aux()
870 in crtstuff.c on Unixware 2.1.3
871 (and possibly other unixware versions)
872 The fix is already in recent versions of egcs.
874 ==================================
876 __do_global_dtors_aux ()
878 static func_ptr *p = __DTOR_LIST__ + 1;
879 static int completed = 0;
890 #ifdef EH_FRAME_SECTION_ASM_OP
891 __deregister_frame_info (__EH_FRAME_BEGIN__);
895 ======================================
898 Having got gcc working - it's probably a good idea to rebuild all
899 your GNU software using it!
902 Build gstep as normal.
905 The SIOCGIFCONF ioctl sometimes doesn't work on unixware after
906 applying some of the OS patches.
908 So I have added a '-a' flag to gdomap to give it the name of a file
909 containing IP address and netmask information for the network
910 interfaces on the system.
912 You need to set up a file (I suggest '/etc/gdomap_addresses')
913 containing the information for your machine and modify your system
914 startup files in /etc/rc?.d to run gdomap, telling it to use that
917 eg. If your machine has an IP address of '193.111.111.2' and is on
918 a class-C network, your /etc/gdomap_addresses file would contain
921 193.111.111.2 255.255.255.0
923 and your startup file would contain the lines
925 . /usr/local/GNUstep/Library/Makefiles/GNUstep.sh
926 gdomap -a /etc/gdomap_addresses
929 If you don't set gdomap up correctly, Distributed Objects will not
932 Windows with CYGWIN (_Needs Testing_)
933 =====================================
935 `Recommended compiler'
936 gcc 3.3.1 or later (with libobjc and libjava (if using libffi))
939 Objective-C library DLL
940 (<ftp://ftp.gnustep.org/pub/gnustep/windows/cygwin>) for shared
941 libs. It's a good idea to remove the libobjc.a that comes with gcc
942 (gcc -v for location) so that it isn't accidentally found. For
943 ffcall, you should get version 1.8b or above (the earlier ones
944 don't compile). There are still some problems with structure
945 passing, but that is generally not supported on any architecture.
948 `Special Instructions'
949 Make sure you have good shared libraries for everthing. Sometimes
950 a bad shared library (like libtiff) will cause odd and untraceable
951 problems. See <README.Cygwin> for information on compiling.
957 `Recommended compiler'
963 `Special Instructions'
964 See the <README.MinGW> file located in the gnustep-make
965 Documentation directory for instructions. Windows NT/2000/XP only.
966 Win98 machines and earlier are very buggy and are not supported.
967 Native GUI backend is alpha version.
972 `Recommended compiler'
976 Standard (ffcall or libffi)
978 `Special Instructions'
980 Getting Libraries via Anonymous CVS
981 ***********************************
983 If you didn't get one of the snapshots, or if you want to be sure to
984 stay on the bleading edge, then you should get the libraries via CVS. Go
985 to <http://savannah.gnu.org/cvs/?group_id=99> for information on how to
986 get anonymous CVS access.
988 If you haven't already done so, change to the directory, where you
989 want the source to reside. To get a list of potential modules to check
993 For instance, to check our `core', which contains all the GNUstep
995 cvs -z3 checkout core
997 After you have checked out the source you can compile it as usual.
998 To update the source, go into the directory of the source tree you want
999 to update, for example, go into 'base', and type:
1003 You don't have to re-checkout after you have the source, just update!