/[gnustep]/gnustep/core/make/GNUstep-HOWTO
ViewVC logotype

Contents of /gnustep/core/make/GNUstep-HOWTO

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.26 - (show annotations) (download)
Wed Jul 23 03:55:17 2003 UTC (20 years, 9 months ago) by fedor
Branch: MAIN
CVS Tags: pre-header-reorg-20030731, make-1_7_2
Changes since 1.25: +4 -4 lines
Version 1.7.2

1 GNUstep HOWTO
2 *************
3
4 Last Update: 22 July 2003
5
6 This document explains how to build the different components of the
7 GNUstep core libraries and GNUstep Launchpad.
8
9 Copyright (C) 1996 - 2002 Free Software Foundation, Inc.
10
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.
14
15 Introduction
16 ************
17
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.
21
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
24 packages.
25
26 You will need at least 80Mb of hard disk space (150Mb prefered) in
27 order to compile the GNUstep core libraries.
28
29 Summary
30 *******
31
32 In order to compile the libraries, you need to compile and install
33 the following packages first (if you don't already have them):
34
35 * gcc (Version 2.95 or greater, 3.0.4 or greater recommended)
36
37 * GNU make (Version 3.75 or greater)
38
39 * gdb, if you plan to do any debugging
40
41 You may also need to install some of the following libraries and
42 packages described below. Most of these packages are optional, but some
43 are required.
44
45 `ffcall libraries (HIGHLY RECOMMENDED)'
46 This is a library that provides stack-frame handling for
47 NSInvocation and NSConnection. This library is highly recommended.
48 The previous builtin method for stack frame handling is no longer
49 supported and may be removed in the future. ffcall is under GNU
50 GPL. As a special exception, if used in GNUstep or in derivate
51 works of GNUstep, the included parts of ffcall are under GNU LGPL.
52
53 `libffi library (OPTIONAL)'
54 This is a library that provides stack frame handling for
55 NSInvocation and NSConnection similar to ffcall. However, libffi
56 is not as well tested as ffcall so you should not use it unless
57 you are familiar with potential problems. Use this instead of
58 ffcall. You don't need both.
59
60 `WindowMaker (Version >= 0.62) (OPTIONAL)'
61 GNUstep and WindowMaker work together to provide a consistant
62 interface. Although it is not required, GNUstep will work much
63 better if you use it with the WindowMaker window manager. In
64 addition, WindowMaker includes some functionality that GNUstep
65 uses that would otherwise not be available. Get WindowMaker from
66 <http://www.windowmaker.org>.
67
68 `libxml2 (RECOMMENDED)'
69 The libxml library (Version 2) is used to translate some of the
70 documentation for GNUstep and to provide suport for MacOS-X
71 compatible XML-based property-lists. It is recommended but not
72 currently required.
73
74 `The TIFF library (libtiff) (Version 3.4beta36 or greater) (REQUIRED)'
75 The GUI library uses this to handle loading and saving TIFF images.
76
77 `openssl (OPTIONAL)'
78 The openssl library is used to provide support for https
79 connections by the NSURL and HSURLHandle classes. This
80 functionality is compiled as a separate bundle since the OpenSSL
81 license is not compatible with GPL, and in the hopes that if
82 someone writes an openssl replacement, it can quickly be used by
83 creating another bundle.
84
85 `libiconv (OPTIONAL)'
86 Unicode support functions (iconv) come with glibc version 2.1 or
87 greater. If you don't have glibc (try iconv -version), you can get
88 the separate libiconv library from
89 <http://clisp.cons.org/~haible/packages-libiconv.html>. However,
90 neither one is required to use GNUstep.
91
92 `gnustep-objc package (for gcc version < 3.0 ONLY) (RECOMMENDED)'
93 This is a special version of the Objective-C runtime that include
94 several bug fixes and features that were not in gcc versions
95 previous to 3.0. It is available at
96 <ftp://ftp.gnustep.org/pub/gnustep/libs> which compiles using the
97 GNUstep Makefile package (so you don't have to get the entire gcc
98 dist). Make sure to set the THREADING variable in the GNUmakefile.
99 It's possible to compile the library static (make shared=no) and
100 just copy to the place where the gcc libobjc library is (type gcc
101 -v to get this location). Note you have to install gnustep-make
102 (below) before installing this library.
103
104 `GDB and Objective-C patch (OPTIONAL)'
105 GDB can be obtained from <ftp://ftp.gnu.org/gnu/gdb>. The patch to
106 make it work better with GNUstep can be obtained from
107 <ftp://ftp.gnustep.org/pub/gnustep/patches>
108
109 `TeX (OPTIONAL)'
110 You need a TeX implementation, like tetex, to compile some of the
111 documentation (although most of that is available on the web).
112
113 Compiling and Installing the packages
114 *************************************
115
116 Get the following individual packages:
117
118 * gnustep-make
119
120 * gnustep-base
121
122 * gnustep-gui
123
124 * gnustep-back
125
126 See <http://www.gnustep.org> for information on where to get these
127 packages.
128
129 Make sure you install all the previously mentioned libraries first
130 before configuring and building GNUstep.
131
132 You should be able to install these packages as root.
133
134 For installation on specific systems, read the machine specific
135 instructions at the end of this document or appropriate README files in
136 the gnustep-make Documentation directory (such as README.MingW for
137 Windows).
138
139 Installing the Core Libraries
140 =============================
141
142 The GNUstep packages uses the Autoconf mechanism for configuration;
143 it checks some host capabilties which are used by all GNUstep software.
144 To configure just type:
145
146 ./configure
147
148 The GNUstep makefile package needs a root directory. If the
149 GNUSTEP_SYSTEM_ROOT environment variable is set then configure will
150 determine the root directory from its value (by removing the final
151 /System path component from it). You can also specify the root
152 directory when you run configure with the prefix paramater; the
153 following command makes /usr/local/GNUstep the root directory:
154
155 ./configure --prefix=/usr/local/GNUstep
156
157 If you do not have the GNUSTEP_SYSTEM_ROOT environment variable set
158 and you do not specify a root directory when running configure, then
159 configure will use /usr/GNUstep as the default root directory.
160
161 Alternate Library Setup
162 -----------------------
163
164 Read the installation instructions in the Makefile package (make)
165 for more installation options. Make sure you use the same configuration
166 options when configuring each GNUstep library.
167
168 Building the Package
169 --------------------
170
171 To build the individual packages, use this familiar set of commands
172 for each pacakge (add any additional options you decide upon):
173
174 ./configure
175 make
176 make install
177
178 Start with the Makefile Pacakge (gnustep-make). After installing
179 gnustep-make you need to execute GNUstep's shell configuration script,
180 as follows:
181
182 . /usr/GNUstep/System/Makefiles/GNUstep.sh
183
184 before proceeding any further.
185
186 NOTE for gcc 2.X or MinGW users: Now install gnustep-objc. Before
187 building gnustep-objc, edit the `GNUmakefile' and set the THREADING
188 variable to the thread library used on your system (usually its posix,
189 but you can leave it at single if you don't need threads). At this point
190 you should probably re-configure, make and install gnustep-make, so it
191 can pick up on any threading information that gnustep-objc provides.
192
193 Now install gnustep-base, gnustep-gui and finally gnustep-back.
194
195 NOTE: If you are trying to install the packages without root
196 permission, you may need to change one thing in the base library. Edit
197 the file gnustep-base/Tools/gdomap.h to uncomment the last line and
198 modify the specified port number to a port which you _know_ is not in
199 use on your network. You should only do this if absolutely necessary
200 since making this change will break communications with any systems
201 where an identical change has not been made. Also, the standard gdomap
202 port is the one officially registered with IANA and is reserved for use
203 by gdomap - it should only be changed if you can't get your system
204 administrator to start the gdomap server using it.
205
206 Additional Installation
207 ***********************
208
209 Environment Setup
210 =================
211
212 Add the shell script `GNUstep.sh' located in the Makefile package to
213 your shell startup file (such as `.profile'). For instance, if your
214 GNUSTEP_SYSTEM_ROOT is `/usr/GNUstep/System',
215
216 . /usr/GNUstep/System/Makefiles/GNUstep.sh
217
218 in your `.profile' file will work (Note the period at the beginning
219 of the line, and the space between the period and the following path;
220 if your GNUSTEP_SYSTEM_ROOT is different, you need to replace
221 `/usr/GNUstep/System' with your GNUSTEP_SYSTEM_ROOT). It defines
222 environment variables that are needed to find GNUstep files and
223 executables. Users of csh need to use the `GNUstep.csh' script. Read
224 the make package `README' for more info. Some systems, like GNU/Linux
225 have an `/etc/profile.d' directory where scripts can be executed
226 automatically. If you want to set up GNUstep for every user on your
227 system, you can try copying/linking the `GNUstep.sh' there. For csh or
228 tcsh, try
229
230 source /usr/GNUstep/System/Makefiles/GNUstep.csh
231
232 GNUstep Home
233 ============
234
235 Set up your home GNUstep directory. This should be done automatically
236 if you don't do it. This is where user defaults are kept as well as
237 other user configuration files. User installed apps, libraries, etc are
238 also here (if the default user directory is used).
239
240 cd
241 mkdir GNUstep
242
243 Time Zone
244 =========
245
246 Next, set your local time zone. There are four ways to do this, pick
247 one (see
248 `$GNUSTEP_SYSTEM_ROOT/Library/Libraries/Resources/gnustep-bsae/NSTimeZones/zones'
249 for typical time zones):
250
251 1. Use the defaults utility to set "Local Time Zone" to your local
252 time zone (defaults is installed with GNUstep in the Tools
253 directory). Type something like "defaults write NSGlobalDomain
254 "Local Time Zone" GB".
255
256 2. Set the GNUSTEP_TZ environment variable.
257
258 3. Create the file
259 `$GNUSTEP_SYSTEM_ROOT/Library/Libraries/Resources/gnustep-base/NSTimeZones/localtime'
260 with the name of the local time zone in it.
261
262 4. Set the TZ environment variable (this may conflict with other
263 software on your system though).
264
265 GNUstep deamons
266 ===============
267
268 Set up your system to execute some GNUstep deamons. If you don't do
269 this, they will be started automatically when you run your first GNUstep
270 app:
271
272 * gdomap - Put this in a system startup file, like `/etc/rc.local'
273 or `/etc/rc.d/rc.local' (customize for your system)
274 GNUSTEP_SYSTEM_ROOT=/usr/GNUstep/System
275 if [ -f $GNUSTEP_SYSTEM_ROOT/Tools/gdomap ]; then
276 $GNUSTEP_SYSTEM_ROOT/Tools/gdomap
277 fi
278
279 * gdnc - Start after sourcing `GNUstep.sh' (e.g. in .profile)
280
281 * gpbs - Same as with gdnc, make sure X-Windows is running.
282
283 if [ `gdomap -L GDNCServer | grep -c Unable` == 1 ]; then
284 echo "Starting GNUstep services..."
285 gdnc
286 gpbs
287 fi
288
289 Test Tools and Applications
290 ***************************
291
292 Test programs for the base library are in `base/Testing'. Example
293 applications are located in the gstep-examples package. To make these,
294 just uncompress and untar this package, cd to the appropriate
295 directory, and type make. You will need to install the GNUstep core
296 libraries first before doing this.
297
298 To run the examples. Use the openapp utility that is part of the
299 GNUstep makefile package (and stored in `$GNUSTEP_SYSTEM_ROOT/Tools').
300 Usage is:
301
302 openapp application [additional arguments to app]
303
304 Good Luck!
305
306 Machine Specific Instructions
307 *****************************
308
309 \input texinfo Below is a list of machines that people have
310 attempted to compile GNUstep on. GNUstep compiles with little or no
311 trouble on many of the more popular operating systems. Some machines
312 marked with _Unstable_ may have some trouble or may not work at all.
313
314 A recommended compiler is listed for each machine, if known. You
315 should try to use the recommended compiler for compiling GNUstep, as
316 GNUstep is quite complex and tends provoke a lot of errors in some
317 compilers. Even versions newer than the listed compiler may not work,
318 so don't just get the latest version of a compiler expecting it to be
319 better than previous versions.
320
321 Compiler notes: If a recommended compiler is not listed, take note
322 of the following information before choosing the compiler you use.
323 `egcs or gcc < 2.95'
324 Probably will work, but few people use these now.
325
326 `gcc 2.95.x'
327 Probably the oldest compiler that GNUstep is regularly tested with.
328
329 `gcc 2.96'
330 Not an official gcc release. Some versions (Redhat, Mandrake) have
331 problems that prevent GNUstep from being compiled correctly and
332 cause mysterious errors.
333
334 `gcc 3.0.x'
335 A fairly good compiler. Recommended.
336
337 `gcc 3.1'
338 Several bugs where introduced in the version. It's probably better
339 to avoid this one, although it might work fine.
340
341 `gcc 3.2.x'
342 Pretty good. Recommended.
343
344 If you have compiled GNUstep on a specific machine, please send
345 information about what you needed and any special instructions needed to
346 GNUstep <bug-gnustep@gnu.org>.
347
348 If your having mysterious trouble with a machine, try compiling
349 GNUstep without optimization. Particularly in the newer GCC compilers,
350 optimization can break some code. The easiest way to do this is when
351 configuring, `CFLAGS="" ./configure'. Or when building, `make
352 OPTFLAG=""'.
353
354 Also if you manually upgraded gcc and/or make, we recommend reading
355 the documentation at <http://www.LinuxFromScratch.org> for tips on
356 compiling and installing gcc and make. If you had GNUstep previously
357 installed, make sure you completely remove all of it, including
358 installed init scripts.
359
360 Darwin 6.x/PowerPC (_Unstable!_)
361 ================================
362
363 `Recommended compiler'
364 gcc 3.2.2
365
366 Default compiler has some odd memory(?) related problems. Use the
367 GNU runtime. Download the gcc compiler and configure it with
368 -enable-threads=posix. Usually the installed compiler will produce
369 object files for the NeXT runtime if you don't say gcc
370 -fgnu-runtime. To change this behaviour, edit
371 src-dir/gcc/config/darwin.h: You have to change the word #define
372 in line 73 to #undef. Then the runtime default is gnu. When
373 bootstrapping the compiler a nice working objective C gnu-runtime
374 library (which is a little bit faster than Apple's runtime) will
375 be compiled and installed when make install. To use it, there is
376 one (important) thing left: After installing the compiler, you
377 have to go to install-dir/lib and produce the following dynamic
378 link: ln -s libobjc.a libobjc.dylib This might seem senseless, but
379 it forces the linker to use this library instead of the
380 NeXT-runtime!
381
382 Make sure to configure gnustep-make with ./configure
383 -with-library-combo=gnu-gnu-gnu if you want to use all the GNUstep
384 libraries.
385
386 `Extra libs needed'
387 Use libffi (not ffcall). This should be enabled by default in
388 gnustep-base so you don't have to type -enable-libffi
389
390 `Special Instructions'
391 Debian/DEC-Alpha
392 ================
393
394 `Recommended compiler'
395 Unknown
396
397 `Extra libs needed'
398 Unknown
399
400 `Special Instructions'
401 Unknown
402
403 FreeBSD 4.x
404 ===========
405
406 `Recommended compiler'
407
408 `Extra libs needed'
409 Unknown
410
411 `Special Instructions'
412 If you're using zsh, some shell variables may not be set correctly
413 when executing GNUstep.sh. Try turing on SH_WORD_SPLIT (e.g. 'zsh
414 -sh-word-split', 'zsh -o shwordsplit', 'zsh -y' or by setting
415 'setopt SH_WORD_SPLIT' in one of zsh's startup files.)
416
417 For gcc 3.0.4, make WANT_THREADS_SUPPORT=YES
418
419 For libxml2 2.4.24, make WITHOUT_PYTHON=YES
420
421 FreeBSD 3.x
422 ===========
423
424 Compiles "out of the box" on FreeBSD 3.4.
425
426 `Recommended compiler'
427 gcc 2.95.2
428
429 `Extra libs needed'
430 Unknown
431
432 `Special Instructions'
433 You need to use gmake not make to compile the GNUstep packages. A
434 special port of gdb can be used with the Objective-C patches from
435 <ftp://ftp.pcnet.com/users/eischen/FreeBSD/gdb-4.17-port.tar.gz>
436
437 The best compiler for GNUstep is the latest release of the GNU
438 Compiler Collection (GCC). You can find it at
439 <http://egcs.cygnus.com/>.
440
441 If you want to use the native POSIX threads support from `libc_r'
442 pass `--enable-threads=posix' to configure. This is the
443 recommended option as this is the FreeBSD threads package that
444 gives the best results -with others you may be unable to run some
445 examples like `diningPhilosophers'.
446
447 The whole compilation process can fail if you have another threads
448 library installed so watch out for installed packages like `pth'
449 and such. Besides the support for libc_r, GNUstep will also look
450 for `pth' and `pcthreads', so if you have installed them and they
451 aren't detected prepare to write a nice bug report.
452
453 This can be done more much easily by using the port version. Just
454 `cd' to `/usr/ports/lang/egcs' and do a `"make WANT_THREADS=yes
455 install"'. Easy.
456
457 If configure cannot find tiff.h or the tiff library and you have
458 it installed in a non-standard place (even `/usr/local'), you may
459 need to pass these flags to configure:
460 `CFLAGS="-I/usr/local/include"' and `LDFLAGS="-L/usr/local/lib"'.
461
462 FreeBSD 2.x (_Unstable!_)
463 =========================
464
465 `Recommended compiler'
466 gcc 2.8.x
467
468 `Extra libs needed'
469 Unknown
470
471 `Special Instructions'
472 Only static libraries work on this system. Use /stand/sysinstall
473 to install these packages if you have not already done so:
474
475 gmake (GNU make)
476 gcc 2.8.x
477
478 Seems to compile ok, but some tests crash. Possibly due to a
479 performace 'hack' in base. Might be a good idea to upgrade to
480 FreeBSD 3.x. You need to use gmake not make to compile the
481 GNUstep packages.
482
483 GNU-Linux/Intel (RedHat 5.x, 6.x, and 7.0)
484 ==========================================
485
486 `Recommended compiler'
487 With 5.x, the egcs compiler that comes with RedHat. Later versions
488 may have gcc installed, although 7.0 comes with a snapshot of gcc
489 (called 2.96) which is unsuitable for compiling Objective-C code.
490 For 7.0 you should install the egcs compatibility packages (or an
491 official gcc release). For RedHat 7.2 or later, the default gcc
492 apparently works fine (even if it is 2.96)
493
494 `Extra libs needed'
495 Unknown
496
497 `Special Instructions'
498 Make sure you have a decent version of the compiler. Try `cc -v'
499 or `gcc -v' to get the version of the compiler. With 5.x, make
500 sure you set CC=egcs before configuring, as in:
501
502 export CC=egcs
503 configure ....
504
505 Since RedHat 5.x also comes standard with an old version of gcc.
506
507 On RedHat 7.0, configure like this
508 CC=egcs LDFLAGS="-u shmctl@GLIBC_2.2 -L/lib -lc -u getpwuid_r@GLIBC_2.1.2
509 -L/lib -lc -u getpwnam_r@GLIBC_2.1.2 -L/lib -lc" ./configure
510
511 GNU-Linux/PowerPC (LinuxPPC, Yellowdog)
512 =======================================
513
514 `Recommended compiler'
515 The default compiler. gcc-3.x works, but you need a new gdb also
516 to debug.
517
518 `Extra libs needed'
519 None.
520
521 `Special Instructions'
522 ffcall or libffi is required for invocations (and DO) to work well.
523 The major problem is sending data with data sizes less than 4 bytes
524 (chars, shorts, etc).
525
526 Irix 6.5/MIPS
527 =============
528
529 `Recommended compiler'
530 gcc 3.2.1
531
532 To use threads, it's necessary to bootstrap a compiler yourself:
533 configure with -enable-threads=posix, that will work as long as you
534 link EVERY objective C executable with -lpthread, no matter what
535 warnings the irix linker produces!
536
537 `Extra libs needed'
538 Unknown
539
540 `Special Instructions'
541 If you cannot link the library because of the very low default
542 limit (20480) for the command line length, then you should either
543 use systune ncargs to increase the value (maximum is 262144) or
544 link the library by hand. No libffi-support: Use ffcall
545
546 MkLinux/PowerPC (_Obsolete_)
547 ============================
548
549 This configuration is no longer being tested, but it may still work.
550
551 `Recommended compiler'
552 egcs-2.90.25 980302 (egcs-1.0.2 prerelease) which comes standard
553 with DR 3.
554
555 `Extra libs needed'
556 None.
557
558 `Special Instructions'
559 Comes with a good version of gcc. Seems to compile and install
560 ok, althouth DR3 has an old version of glibc, which requires some
561 workarounds which should be taken care of in the configuration.
562 Not completely tested, so some aspects, particular object
563 invocations and DO may not work properly.
564
565 If you want threads, you'll probably have to get the latest gcc
566 compiler and glibc library (which has the threads library) and
567 install both.
568
569 NetBSD
570 ======
571
572 `Recommended compiler'
573 Unknown
574
575 `Extra libs needed'
576 libiconv
577
578 `Special Instructions'
579 See the README.NetBSD file located in the gnustep-make package.
580
581 Netwinder (_Unstable!_)
582 =======================
583
584 `Recommended compiler'
585 Build #12 of the system.
586
587 `Extra libs needed'
588 Unknown
589
590 `Special Instructions'
591 See <http://www.netwinder.org/~patrix>
592
593 OpenBSD 2.x (_Unstable!_)
594 ==========================
595
596 `Recommended compiler'
597 Unknown
598
599 `Extra libs needed'
600 Unknown
601
602 `Special Instructions'
603 Can only compile with static libraries. Gives a lot of warnings.
604 Try reading the README.NetBSD which might work the same on OpenBSD.
605
606 OSF Alpha (_Unstable!_)
607 ========================
608
609 Information is for Version 3.2C
610
611 `Recommended compiler'
612 egcs-1.1.1/1.1.2, gcc-2.95
613
614 `Extra libs needed'
615 Unknown
616
617 `Special Instructions'
618 Can only compile with static libraries. Compiler may fail when
619 linking executables (e.g. gdnc). Standard ranlib and ar programs
620 are to feable to create libraries. Should use GNU binutils
621 versions. Linker sometimes fails to find symbols, in which case
622 you may need to link with a library twice. For instance, add an
623 extra -lgnustep-gui in ADDTIONAL_TOOL_LIBS in the
624 GNUmakefile(.preamble).
625
626 Slackware/Intel
627 ===============
628
629 `Recommended compiler'
630 Unknown.
631
632 `Extra libs needed'
633 Unknown.
634
635 `Special Instructions'
636 Unknown.
637
638 Solaris 2.5.1/Sparc (_Obsolete_)
639 ================================
640
641 This configuration is no longer being tested, but it may still work.
642
643 `Recommended compiler'
644 Unknown
645
646 `Extra libs needed'
647 tiff, Don't use the one in /usr/openwin
648
649 `Special Instructions'
650 See the Solaris 2.6 section for more instructions.
651
652 Solaris 2.[67]/Sparc
653 ====================
654
655 `Recommended compiler'
656 gcc 3.2.1 gcc 2.95.3. Version 2.95.2 has several bugs that GNUstep
657 tickles. gcc 3.04. Not 3.1 - does not compile parts of GNUstep.
658
659 `Extra libs needed'
660 tiff, Don't use the one in /usr/openwin
661
662 `Special Instructions'
663 No libffi-support unless you use the patch
664 <http://gcc.gnu.org/ml/java-patches/2002-q3/msg00036.html> (not
665 particularly recommended).
666
667 Using a POSIX shell (zsh or bash, which should come with Solaris)
668 is highly recommended. In fact, some functions, such as compiling
669 frameworks, will not work without it.
670
671 Some people have reported problems when using binutils assembler and
672 linker. Using the native Solaris assmebler and linker should work fine.
673
674 Older Instructions: If you are using threads, make sure the
675 Objective-C runtime (libobjc that comes with gcc) is compiled with
676 threads enabled (This is true by default) AND that it is compiled with
677 the _REENTRANT flag defined (This does not seem to be true by default).
678 Or use the gnustep-objc package. Also make sure THREADS is set to
679 'posix' not 'solaris'.
680
681 Solaris 2.7/Intel
682 =================
683
684 `Recommended compiler'
685 Unknown.
686
687 `Extra libs needed'
688 Unknown
689
690 `Special Instructions'
691 Make sure there are no -g compiler flags (i.e. compiling with
692 debug=yes might be a problem). Unsure of correct bundle flags -
693 You might need to use the alternate flags listed in target.make,
694 line 989. Also, configuring gnustep-make with
695 `--disable-backend-bundle' might be necessary if you can't get
696 bundles to work. You will probable get a lot of text relocation
697 warnings, which probably can be ignored. See the other Solaris
698 instructions above for more information.
699
700 Suse 6.x/Intel
701 ==============
702
703 GNUstep has been tested on version 6.2-6.4 of Suse
704
705 `Recommended compiler'
706 Standard
707
708 `Extra libs needed'
709 None
710
711 `Special Instructions'
712 It seems that there is a problem with the default kernel build
713 distributed with Suse which means that the socket binding used by
714 gdnc doesn't work. If you recompile the kernel then it starts
715 working.
716
717 Suse/Intel
718 ==========
719
720 GNUstep has been tested on version 7.0, 8.0, 8.1, and 8.2 of Suse
721
722 `Recommended compiler'
723 Standard. gcc2.95.x, gcc3.0.x, 3.1 and 3.2 work, but 2.95 is
724 faster. Compile with -threads-enabled (non-standard).
725
726 `Extra libs needed'
727 None
728
729 `Special Instructions'
730 None.
731
732 Suse 7.x/PPC
733 ============
734
735 GNUstep has been tested on version 7.0 of Suse
736
737 `Recommended compiler'
738 Standard. gcc2.95.x, gcc3.0.x and gc3.1 work, but 2.95 is faster.
739 Compile with -threads-enabled (non-standard).
740
741 `Extra libs needed'
742 None
743
744 `Special Instructions'
745 Unixware-2.1.3/Intel
746 ====================
747
748 `Recommended compiler'
749 Unknown
750
751 `Extra libs needed'
752 Unknown
753
754 Special Instructions for GNUstep installation on Unixware 2.1 systems
755
756 1
757 Tune the kernel to increase the argument space so that we can pass
758 long command-line argument strings to processes (which the
759 makefiles do) (/etc/conf/bin/idtune ARG_MAX 102400)
760
761 2
762 Install raft of the latest GNU software
763
764 gzip (you need this to unpack other stuff)
765 make (to build everything)
766 m4 (for autoconf etc)
767 autoconf (if you need to change anything)
768 bison
769 flex
770 binutils (required by gcc if you want to debug)
771 gcc-2.8.1
772 (configure --with-gnu-as --with-gnu-ld --with-stabs)
773 NB. gcc-2.8.1 needs a fix to __do_global_dtors_aux()
774 in crtstuff.c on Unixware 2.1.3
775 (and possibly other unixware versions)
776 The fix is already in recent versions of egcs.
777
778 ==================================
779 static void
780 __do_global_dtors_aux ()
781 {
782 static func_ptr *p = __DTOR_LIST__ + 1;
783 static int completed = 0;
784
785 if (completed)
786 return;
787
788 while (*p)
789 {
790 p++;
791 (*(p-1)) ();
792 }
793
794 #ifdef EH_FRAME_SECTION_ASM_OP
795 __deregister_frame_info (__EH_FRAME_BEGIN__);
796 #endif
797 completed = 1;
798 }
799 ======================================
800
801 3
802 Having got gcc working - it's probably a good idea to rebuild all
803 your GNU software using it!
804
805 4
806 Build gstep as normal.
807
808 5
809 The SIOCGIFCONF ioctl sometimes doesn't work on unixware after
810 applying some of the OS patches.
811
812 So I have added a '-a' flag to gdomap to give it the name of a file
813 containing IP address and netmask information for the network
814 interfaces on the system.
815
816 You need to set up a file (I suggest '/etc/gdomap_addresses')
817 containing the information for your machine and modify your system
818 startup files in /etc/rc?.d to run gdomap, telling it to use that
819 file.
820
821 eg. If your machine has an IP address of '193.111.111.2' and is on
822 a class-C network, your /etc/gdomap_addresses file would contain
823 the line
824
825 193.111.111.2 255.255.255.0
826
827 and your startup file would contain the lines
828
829 . /usr/local/GNUstep/Makefiles/GNUstep.sh
830 gdomap -a /etc/gdomap_addresses
831
832 If you don't set gdomap up correctly, Distributed Objects will not
833 work.
834
835 Windows with CYGWIN (_Unstable!_)
836 =================================
837
838 `Recommended compiler'
839 gcc 2.95.3 (Cygwin release 1.1.8) or later
840
841 `Extra libs needed'
842 Objective-C library DLL (<ftp://ftp.gnustep.org/pub/gnustep/libs>)
843 for shared libs. It's a good idea to remove the libobjc.a that
844 comes with gcc (gcc -v for location) so that it isn't accidentally
845 found. For ffcall, you should get version 1.8b or above (the
846 earlier ones don't compile). There are still some problems with
847 structure passing, but that is generally not supportred on any
848 architecture.
849
850 `Special Instructions'
851 On later versions of Cygwin you may be required to include the
852 win32api directory in CPPFLAGS when configuring:
853
854 CPPFLAGS=-I/usr/include/win32api ./configure
855
856 Make sure you have good shared libraries for everthing. Sometimes a
857 bad shared library (like libtiff) will cause odd and untraceable
858 problems. See `README.Cygwin' for information on compiling.
859
860 Windows with MinGW (_Unstable! As always..._)
861 =============================================
862
863 `Recommended compiler'
864 See below.
865
866 `Extra libs needed'
867 See below.
868
869 `Special Instructions'
870 See the `README.MinGW' file located in the gnustep-make
871 Documentation directory for instructions. Windows NT/2000/XP only.
872 Win98 machines and earlier are very buggy and are not supported.
873 Native GUI backend is alpha version.
874
875 Getting Libraries via Anonymous CVS
876 ***********************************
877
878 If you didn't get one of the snapshots, or if you want to be sure to
879 stay on the bleading edge, then you should get the libraries via CVS. Go
880 to <http://savannah.gnu.org/cvs/?group_id=99> for information on how to
881 get anonymous CVS access.
882
883 If you haven't already done so, change to the directory, where you
884 want the source to reside. To get a list of potential modules to check
885 out, type
886 cvs -z3 checkout -c
887
888 For instance, to check our `core', which contains all the GNUstep
889 code libraries:
890 cvs -z3 checkout core
891
892 After you have checked out the source you can compile it as usual.
893 To update the source, go into the directory of the source tree you want
894 to update, for example, go into 'base', and type:
895
896 cvs -z3 update -Pd
897
898 You don't have to re-checkout after you have the source, just update!
899

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26