1 |
\input texinfo @c -*-texinfo-*- |
2 |
@setfilename machines.info |
3 |
@ifclear HOWTO |
4 |
@c Machine Specific, Darwin 6.x/PowerPC, , (DIR) |
5 |
@node Machine Specific, Darwin 6.x/PowerPC, , (DIR) |
6 |
@chapter Machines |
7 |
@end ifclear |
8 |
|
9 |
Below is a list of machines that people have attempted to compile |
10 |
GNUstep on. GNUstep compiles with little or no trouble on many of the |
11 |
more popular operating systems. Some machines marked with |
12 |
@emph{Unstable} may have some trouble or may not work at all. |
13 |
|
14 |
@menu |
15 |
* Darwin 6.x/PowerPC:: |
16 |
* Debian/DEC-Alpha:: |
17 |
* FreeBSD 4.x:: |
18 |
* FreeBSD 3.x:: |
19 |
* FreeBSD 2.x:: |
20 |
* GNU-Linux/Intel:: |
21 |
* GNU-Linux/PowerPC:: |
22 |
* Irix 6.5/MIPS:: |
23 |
* MkLinux/PowerPC:: |
24 |
* NetBSD:: |
25 |
* Netwinder:: |
26 |
* OpenBSD 2.x:: |
27 |
* OSF/Alpha:: |
28 |
* Slackware/Intel:: |
29 |
* Solaris 2.5.1/Sparc:: |
30 |
* Solaris/Sparc:: |
31 |
* Solaris 2.7/Intel:: |
32 |
* Suse 6.x/Intel:: |
33 |
* Suse/Intel:: |
34 |
* Suse 7.x/PPC:: |
35 |
* Unixware-2.1.3/Intel:: |
36 |
* Windows with CYGWIN:: |
37 |
* Windows with MinGW:: |
38 |
@end menu |
39 |
|
40 |
A recommended compiler is listed for each machine, if known. You should try |
41 |
to use the recommended compiler for compiling GNUstep, as GNUstep is quite |
42 |
complex and tends provoke a lot of errors in some compilers. Even versions |
43 |
newer than the listed compiler may not work, so don't just get the latest |
44 |
version of a compiler expecting it to be better than previous versions. |
45 |
|
46 |
Compiler notes: If a recommended compiler is not listed, take note of the |
47 |
following information before choosing the compiler you use. |
48 |
@table @samp |
49 |
@item egcs or gcc < 2.95 |
50 |
Probably will work, but few people use these now. |
51 |
@item gcc 2.95.x |
52 |
Probably the oldest compiler that GNUstep is regularly tested with. |
53 |
@item gcc 2.96 |
54 |
Not an official gcc release. Some versions (Redhat, Mandrake) have problems |
55 |
that prevent GNUstep from being compiled correctly and cause |
56 |
mysterious errors. |
57 |
@item gcc 3.0.x |
58 |
A fairly good compiler. Recommended. |
59 |
@item gcc 3.1 |
60 |
Several bugs where introduced in the version. It's probably better to |
61 |
avoid this one, although it might work fine. |
62 |
@item gcc 3.2.x |
63 |
Pretty good. Recommended. |
64 |
@item gcc 3.3.x |
65 |
Recommended. Fixes some bugs relating to protocols as well as other |
66 |
improvements. |
67 |
@end table |
68 |
|
69 |
If you have compiled GNUstep on a specific machine, please send information |
70 |
about what you needed and any special instructions needed to |
71 |
GNUstep @email{bug-gnustep@@gnu.org}. |
72 |
|
73 |
If your having mysterious trouble with a machine, try compiling GNUstep |
74 |
without optimization. Particularly in the newer GCC compilers, |
75 |
optimization can break some code. The easiest way to do this is when |
76 |
configuring, @samp{CFLAGS="" ./configure}. Or when building, |
77 |
@samp{make OPTFLAG=""}. |
78 |
|
79 |
Also if you manually upgraded gcc and/or make, we recommend reading the |
80 |
documentation at @url{http://www.LinuxFromScratch.org} for tips on compiling |
81 |
and installing gcc and make. If you had GNUstep previously installed, make sure |
82 |
you completely remove all of it, including installed init scripts. |
83 |
|
84 |
@c ----------------------------------------- |
85 |
@node Darwin 6.x/PowerPC, Debian/DEC-Alpha, Machine Specific, Machine Specific |
86 |
@section Darwin 6.x/PowerPC (@emph{Unstable!}) |
87 |
|
88 |
@table @samp |
89 |
@item Recommended compiler |
90 |
gcc 3.2.2 |
91 |
|
92 |
Default compiler has some odd memory(?) related problems. |
93 |
Use the GNU runtime. Download the gcc compiler and configure it with |
94 |
--enable-threads=posix. Usually the installed compiler will produce object |
95 |
files for the NeXT runtime if you don't say gcc -fgnu-runtime. To change |
96 |
this behaviour, edit src-dir/gcc/config/darwin.h: You have to change the |
97 |
word #define in line 73 to #undef. Then the runtime default is gnu. When |
98 |
bootstrapping the compiler a nice working objective C gnu-runtime library |
99 |
(which is a little bit faster than Apple's runtime) will be compiled |
100 |
and installed when make install. To use it, there is one (important) thing |
101 |
left: After installing the compiler, you have to go to |
102 |
install-dir/lib and produce the following dynamic link: |
103 |
ln -s libobjc.a libobjc.dylib |
104 |
This might seem senseless, but it forces the linker to use this library |
105 |
instead of the NeXT-runtime! |
106 |
|
107 |
Make sure to configure gnustep-make with ./configure |
108 |
--with-library-combo=gnu-gnu-gnu if you want to use all the GNUstep libraries. |
109 |
|
110 |
@item Extra libs needed |
111 |
Use libffi (not ffcall). This should be enabled by default in gnustep-base |
112 |
so you don't have to type --enable-libffi. Also need the dlcompat library |
113 |
(from @url{www.opendarwin.org}) to load bundles. |
114 |
|
115 |
@item Special Instructions |
116 |
|
117 |
|
118 |
@end table |
119 |
|
120 |
@c ----------------------------------------- |
121 |
@node Debian/DEC-Alpha, FreeBSD 4.x, Darwin 6.x/PowerPC, Machine Specific |
122 |
@section Debian/DEC-Alpha |
123 |
|
124 |
@table @samp |
125 |
@item Recommended compiler |
126 |
Unknown |
127 |
|
128 |
@item Extra libs needed |
129 |
Unknown |
130 |
|
131 |
@item Special Instructions |
132 |
Unknown |
133 |
@end table |
134 |
|
135 |
@c ----------------------------------------- |
136 |
@node FreeBSD 4.x, FreeBSD 3.x, Debian/DEC-Alpha, Machine Specific |
137 |
@section FreeBSD 4.x |
138 |
|
139 |
@table @samp |
140 |
@item Recommended compiler |
141 |
|
142 |
@item Extra libs needed |
143 |
Unknown |
144 |
|
145 |
@item Special Instructions |
146 |
If you're using zsh, some shell variables may not be set correctly when |
147 |
executing GNUstep.sh. Try turing on SH_WORD_SPLIT (e.g. 'zsh |
148 |
--sh-word-split', 'zsh -o shwordsplit', 'zsh -y' or by setting 'setopt |
149 |
SH_WORD_SPLIT' in one of zsh's startup files.) |
150 |
|
151 |
For gcc 3.0.4, make WANT_THREADS_SUPPORT=YES |
152 |
|
153 |
For libxml2 2.4.24, make WITHOUT_PYTHON=YES |
154 |
|
155 |
@end table |
156 |
|
157 |
@c ----------------------------------------- |
158 |
@node FreeBSD 3.x, FreeBSD 2.x, FreeBSD 4.x, Machine Specific |
159 |
@section FreeBSD 3.x |
160 |
|
161 |
Compiles "out of the box" on FreeBSD 3.4. |
162 |
|
163 |
@table @samp |
164 |
@item Recommended compiler |
165 |
gcc 2.95.2 |
166 |
|
167 |
@item Extra libs needed |
168 |
Unknown |
169 |
|
170 |
@item Special Instructions |
171 |
|
172 |
You need to use gmake not make to compile the GNUstep packages. A special |
173 |
port of gdb can be used with the Objective-C patches from |
174 |
@url{ftp://ftp.pcnet.com/users/eischen/FreeBSD/gdb-4.17-port.tar.gz} |
175 |
|
176 |
The best compiler for GNUstep is the latest release of the GNU Compiler |
177 |
Collection (GCC). You can find it at @url{http://egcs.cygnus.com/}. |
178 |
|
179 |
If you want to use the native POSIX threads support from @file{libc_r} pass |
180 |
@code{--enable-threads=posix} to configure. This is the recommended option as |
181 |
this is the FreeBSD threads package that gives the best results --with others |
182 |
you may be unable to run some examples like @file{diningPhilosophers}. |
183 |
|
184 |
The whole compilation process can fail if you have another threads library |
185 |
installed so watch out for installed packages like @file{pth} and such. |
186 |
Besides the support for libc_r, GNUstep will also look for @file{pth} and |
187 |
@file{pcthreads}, so if you have installed them and they aren't detected |
188 |
prepare to write a nice bug report. |
189 |
|
190 |
This can be done more much easily by using the port version. Just @code{cd} |
191 |
to @file{/usr/ports/lang/egcs} and do a @code{"make WANT_THREADS=yes install"}. |
192 |
Easy. |
193 |
|
194 |
If configure cannot find tiff.h or the tiff library and you have it installed |
195 |
in a non-standard place (even @file{/usr/local}), you may need to pass these |
196 |
flags to configure: @code{CFLAGS="-I/usr/local/include"} and |
197 |
@code{LDFLAGS="-L/usr/local/lib"}. |
198 |
|
199 |
@end table |
200 |
|
201 |
@c ----------------------------------------- |
202 |
@node FreeBSD 2.x, GNU-Linux/Intel, FreeBSD 3.x, Machine Specific |
203 |
@section FreeBSD 2.x (@emph{Unstable!}) |
204 |
|
205 |
@table @samp |
206 |
@item Recommended compiler |
207 |
gcc 2.8.x |
208 |
|
209 |
@item Extra libs needed |
210 |
Unknown |
211 |
|
212 |
@item Special Instructions |
213 |
Only static libraries work on this system. |
214 |
Use /stand/sysinstall to install these packages if you have not |
215 |
already done so: |
216 |
|
217 |
@format |
218 |
gmake (GNU make) |
219 |
gcc 2.8.x |
220 |
@end format |
221 |
|
222 |
Seems to compile ok, but some tests crash. Possibly due to a |
223 |
performace 'hack' in base. Might be a good idea to upgrade to FreeBSD 3.x. |
224 |
You need to use gmake not make to compile the GNUstep packages. |
225 |
|
226 |
@end table |
227 |
|
228 |
@c ----------------------------------------- |
229 |
@node GNU-Linux/Intel, GNU-Linux/PowerPC, FreeBSD 2.x, Machine Specific |
230 |
@section GNU-Linux/Intel (RedHat 5.x, 6.x, and 7.0) |
231 |
|
232 |
@table @samp |
233 |
@item Recommended compiler |
234 |
With 5.x, the egcs compiler that comes with RedHat. Later versions may |
235 |
have gcc installed, although 7.0 comes with a snapshot of gcc (called |
236 |
2.96) which is unsuitable for compiling Objective-C code. For 7.0 you |
237 |
should install the egcs compatibility packages (or an official gcc release). |
238 |
For RedHat 7.2 or later, the default gcc apparently works fine |
239 |
(even if it is 2.96) |
240 |
|
241 |
@item Extra libs needed |
242 |
Unknown |
243 |
|
244 |
@item Special Instructions |
245 |
Make sure you have a decent version of the compiler. Try @samp{cc -v} |
246 |
or @samp{gcc -v} to get the version of the compiler. |
247 |
With 5.x, make sure you set CC=egcs before configuring, as |
248 |
in: |
249 |
|
250 |
@example |
251 |
export CC=egcs |
252 |
configure .... |
253 |
@end example |
254 |
|
255 |
Since RedHat 5.x also comes standard with an old version of gcc. |
256 |
|
257 |
On RedHat 7.0, configure like this |
258 |
@example |
259 |
CC=egcs LDFLAGS="-u shmctl@@GLIBC_2.2 -L/lib -lc -u getpwuid_r@@GLIBC_2.1.2 |
260 |
-L/lib -lc -u getpwnam_r@@GLIBC_2.1.2 -L/lib -lc" ./configure |
261 |
@end example |
262 |
@end table |
263 |
|
264 |
@c ----------------------------------------- |
265 |
@node GNU-Linux/PowerPC, Irix 6.5/MIPS, GNU-Linux/Intel, Machine Specific |
266 |
@section GNU-Linux/PowerPC (LinuxPPC, Yellowdog) |
267 |
|
268 |
@table @samp |
269 |
@item Recommended compiler |
270 |
The default compiler. gcc-3.x works, but you need a new gdb also to debug. |
271 |
|
272 |
@item Extra libs needed |
273 |
None. |
274 |
|
275 |
@item Special Instructions |
276 |
|
277 |
@end table |
278 |
|
279 |
ffcall or libffi is required for |
280 |
invocations (and DO) to work well. The major problem is sending data |
281 |
with data sizes less than 4 bytes (chars, shorts, etc). |
282 |
|
283 |
@c ----------------------------------------- |
284 |
@node Irix 6.5/MIPS, MkLinux/PowerPC, GNU-Linux/PowerPC, Machine Specific |
285 |
@section Irix 6.5/MIPS |
286 |
|
287 |
@table @samp |
288 |
@item Recommended compiler |
289 |
gcc 3.2.1 |
290 |
|
291 |
To use threads, it's necessary to bootstrap a compiler yourself: |
292 |
configure with --enable-threads=posix, that will work as long as you |
293 |
link EVERY objective C executable with -lpthread, no matter what |
294 |
warnings the irix linker produces! |
295 |
|
296 |
@item Extra libs needed |
297 |
Unknown |
298 |
|
299 |
@item Special Instructions |
300 |
If you cannot link the library because of the very low default limit |
301 |
(20480) for the command line length, then you should either use systune |
302 |
ncargs to increase the value (maximum is 262144) or link the library by |
303 |
hand. |
304 |
No libffi-support: Use ffcall |
305 |
|
306 |
|
307 |
@end table |
308 |
|
309 |
@c ----------------------------------------- |
310 |
@node MkLinux/PowerPC, NetBSD, Irix 6.5/MIPS, Machine Specific |
311 |
@section MkLinux/PowerPC (@emph{Obsolete}) |
312 |
|
313 |
This configuration is no longer being tested, but it may still work. |
314 |
|
315 |
@table @samp |
316 |
@item Recommended compiler |
317 |
egcs-2.90.25 980302 (egcs-1.0.2 prerelease) which comes standard with |
318 |
DR 3. |
319 |
|
320 |
@item Extra libs needed |
321 |
None. |
322 |
|
323 |
@item Special Instructions |
324 |
Comes with a good version of gcc. |
325 |
Seems to compile and install ok, althouth DR3 has an old version of |
326 |
glibc, which requires some workarounds which should be taken care of in |
327 |
the configuration. Not completely tested, so some aspects, particular |
328 |
object invocations and DO may not work properly. |
329 |
|
330 |
If you want threads, you'll probably have to get the latest gcc compiler |
331 |
and glibc library (which has the threads library) and install both. |
332 |
@end table |
333 |
|
334 |
@c ----------------------------------------- |
335 |
@node NetBSD, Netwinder, MkLinux/PowerPC, Machine Specific |
336 |
@section NetBSD |
337 |
|
338 |
@table @samp |
339 |
@item Recommended compiler |
340 |
Unknown |
341 |
|
342 |
@item Extra libs needed |
343 |
libiconv |
344 |
|
345 |
@item Special Instructions |
346 |
See the README.NetBSD file located in the gnustep-make package. |
347 |
|
348 |
@end table |
349 |
|
350 |
@c ----------------------------------------- |
351 |
@node Netwinder, OpenBSD 2.x, NetBSD, Machine Specific |
352 |
@section Netwinder (@emph{Unstable!}) |
353 |
|
354 |
@table @samp |
355 |
@item Recommended compiler |
356 |
Build #12 of the system. |
357 |
|
358 |
@item Extra libs needed |
359 |
Unknown |
360 |
|
361 |
@item Special Instructions |
362 |
See @url{http://www.netwinder.org/~patrix} |
363 |
@end table |
364 |
|
365 |
@c ----------------------------------------- |
366 |
@node OpenBSD 2.x, OSF/Alpha, Netwinder, Machine Specific |
367 |
@section OpenBSD 2.x (@emph{Unstable!}) |
368 |
|
369 |
@table @samp |
370 |
@item Recommended compiler |
371 |
Unknown |
372 |
|
373 |
@item Extra libs needed |
374 |
Unknown |
375 |
|
376 |
@item Special Instructions |
377 |
Can only compile with static libraries. Gives a lot of warnings. |
378 |
Try reading the README.NetBSD which might work the same on OpenBSD. |
379 |
@end table |
380 |
|
381 |
@c ----------------------------------------- |
382 |
@node OSF/Alpha, Slackware/Intel, OpenBSD 2.x, Machine Specific |
383 |
@section OSF Alpha (@emph{Unstable!}) |
384 |
@c Contact: suzukis@file.phys.tohoku.ac.jp |
385 |
|
386 |
Information is for Version 3.2C |
387 |
|
388 |
@table @samp |
389 |
@item Recommended compiler |
390 |
egcs-1.1.1/1.1.2, gcc-2.95 |
391 |
|
392 |
@item Extra libs needed |
393 |
Unknown |
394 |
|
395 |
@item Special Instructions |
396 |
Can only compile with static libraries. Compiler may fail when |
397 |
linking executables (e.g. gdnc). Standard ranlib and ar programs are |
398 |
to feable to create libraries. Should use GNU binutils versions. Linker |
399 |
sometimes fails to find symbols, in which case you may need to link with |
400 |
a library twice. For instance, add an extra -lgnustep-gui in |
401 |
ADDTIONAL_TOOL_LIBS in the GNUmakefile(.preamble). |
402 |
|
403 |
@end table |
404 |
|
405 |
@c ----------------------------------------- |
406 |
@node Slackware/Intel, Solaris 2.5.1/Sparc, OSF/Alpha, Machine Specific |
407 |
@section Slackware/Intel |
408 |
|
409 |
@table @samp |
410 |
@item Recommended compiler |
411 |
Unknown. |
412 |
|
413 |
@item Extra libs needed |
414 |
Unknown. |
415 |
|
416 |
@item Special Instructions |
417 |
Unknown. |
418 |
|
419 |
@end table |
420 |
|
421 |
@c ----------------------------------------- |
422 |
@node Solaris 2.5.1/Sparc, Solaris/Sparc, Slackware/Intel, Machine Specific |
423 |
@section Solaris 2.5.1/Sparc (@emph{Obsolete}) |
424 |
|
425 |
This configuration is no longer being tested, but it may still work. |
426 |
|
427 |
@table @samp |
428 |
@item Recommended compiler |
429 |
Unknown |
430 |
|
431 |
@item Extra libs needed |
432 |
tiff, Don't use the one in /usr/openwin |
433 |
|
434 |
@item Special Instructions |
435 |
See the Solaris 2.6 section for more instructions. |
436 |
@end table |
437 |
|
438 |
@c ----------------------------------------- |
439 |
@node Solaris/Sparc, Solaris 2.7/Intel, Solaris 2.5.1/Sparc, Machine Specific |
440 |
@section Solaris 2.[67]/Sparc |
441 |
|
442 |
@table @samp |
443 |
@item Recommended compiler |
444 |
gcc 3.2.1 |
445 |
gcc 2.95.3. Version 2.95.2 has several bugs that GNUstep tickles. |
446 |
gcc 3.04. Not 3.1 - does not compile parts of GNUstep. |
447 |
|
448 |
@item Extra libs needed |
449 |
tiff, Don't use the one in /usr/openwin |
450 |
|
451 |
@item Special Instructions |
452 |
No libffi-support unless you use the patch |
453 |
@url{http://gcc.gnu.org/ml/java-patches/2002-q3/msg00036.html} (not |
454 |
particularly recommended). |
455 |
|
456 |
|
457 |
Using a POSIX shell (zsh or bash, which should come with Solaris) is |
458 |
highly recommended. In fact, some functions, such as compiling frameworks, |
459 |
will not work without it. |
460 |
|
461 |
@end table |
462 |
|
463 |
Some people have reported problems when using binutils assembler and linker. |
464 |
Using the native Solaris assmebler and linker should work fine. |
465 |
|
466 |
Older Instructions: |
467 |
If you are using threads, make sure the Objective-C runtime (libobjc that comes |
468 |
with gcc) is compiled with threads enabled (This is true by default) AND that |
469 |
it is compiled with the _REENTRANT flag defined (This does not seem to be |
470 |
true by default). Or use the gnustep-objc package. Also make sure THREADS is |
471 |
set to 'posix' not 'solaris'. |
472 |
|
473 |
@c ----------------------------------------- |
474 |
@node Solaris 2.7/Intel, Suse 6.x/Intel, Solaris/Sparc, Machine Specific |
475 |
@section Solaris 2.7/Intel |
476 |
@c Contact?: Sebastian Niesen <sniesen@niesen.net> |
477 |
|
478 |
@table @samp |
479 |
@item Recommended compiler |
480 |
Unknown. |
481 |
|
482 |
@item Extra libs needed |
483 |
Unknown |
484 |
|
485 |
@item Special Instructions |
486 |
Make sure there are no -g compiler flags (i.e. compiling with debug=yes |
487 |
might be a problem). Unsure of correct bundle flags - You might need |
488 |
to use the alternate flags listed in target.make, line 989. Also, |
489 |
configuring gnustep-make with @samp{--disable-backend-bundle} might be |
490 |
necessary if you can't get bundles to work. |
491 |
You will probable get a lot of text relocation |
492 |
warnings, which probably can be ignored. See the other Solaris |
493 |
instructions above for more information. |
494 |
|
495 |
@end table |
496 |
|
497 |
@c ----------------------------------------- |
498 |
@node Suse 6.x/Intel, Suse/Intel, Solaris 2.7/Intel, Machine Specific |
499 |
@section Suse 6.x/Intel |
500 |
|
501 |
GNUstep has been tested on version 6.2-6.4 of Suse |
502 |
|
503 |
@table @samp |
504 |
@item Recommended compiler |
505 |
Standard |
506 |
|
507 |
@item Extra libs needed |
508 |
None |
509 |
|
510 |
@item Special Instructions |
511 |
It seems that there is a problem with the default kernel build |
512 |
distributed with Suse which means that the socket binding used by |
513 |
gdnc doesn't work. If you recompile the kernel then it starts working. |
514 |
|
515 |
@end table |
516 |
|
517 |
@c ----------------------------------------- |
518 |
@node Suse/Intel, Suse 7.x/PPC, Suse 6.x/Intel, Machine Specific |
519 |
@section Suse/Intel |
520 |
|
521 |
GNUstep has been tested on version 7.0, 8.0, 8.1, and 8.2 of Suse |
522 |
|
523 |
@table @samp |
524 |
@item Recommended compiler |
525 |
Standard. gcc2.95.x, gcc3.0.x, 3.1 and 3.2 work, but 2.95 is faster. |
526 |
Compile with --threads-enabled (non-standard). |
527 |
|
528 |
@item Extra libs needed |
529 |
None |
530 |
|
531 |
@item Special Instructions |
532 |
None. |
533 |
|
534 |
@end table |
535 |
|
536 |
@c ----------------------------------------- |
537 |
@node Suse 7.x/PPC, Unixware-2.1.3/Intel, Suse/Intel, Machine Specific |
538 |
@section Suse 7.x/PPC |
539 |
|
540 |
GNUstep has been tested on version 7.0 of Suse |
541 |
|
542 |
@table @samp |
543 |
@item Recommended compiler |
544 |
Standard. gcc2.95.x, gcc3.0.x and gc3.1 work, but 2.95 is faster. |
545 |
Compile with --threads-enabled (non-standard). |
546 |
|
547 |
@item Extra libs needed |
548 |
None |
549 |
|
550 |
@item Special Instructions |
551 |
|
552 |
@end table |
553 |
|
554 |
@c ----------------------------------------- |
555 |
@node Unixware-2.1.3/Intel, Windows with CYGWIN, Suse 7.x/PPC, Machine Specific |
556 |
@section Unixware-2.1.3/Intel |
557 |
@c Contact?: Richard Frith-Macdonald <richard@brainstorm.co.uk> |
558 |
|
559 |
@table @samp |
560 |
@item Recommended compiler |
561 |
Unknown |
562 |
|
563 |
@item Extra libs needed |
564 |
Unknown |
565 |
|
566 |
@end table |
567 |
|
568 |
Special Instructions for GNUstep installation on Unixware 2.1 systems |
569 |
|
570 |
@table @asis |
571 |
|
572 |
@item 1 |
573 |
Tune the kernel to increase the argument space so that we can pass long |
574 |
command-line argument strings to processes (which the makefiles do) |
575 |
(/etc/conf/bin/idtune ARG_MAX 102400) |
576 |
|
577 |
@item 2 |
578 |
Install raft of the latest GNU software |
579 |
|
580 |
@format |
581 |
gzip (you need this to unpack other stuff) |
582 |
make (to build everything) |
583 |
m4 (for autoconf etc) |
584 |
autoconf (if you need to change anything) |
585 |
bison |
586 |
flex |
587 |
binutils (required by gcc if you want to debug) |
588 |
gcc-2.8.1 |
589 |
(configure --with-gnu-as --with-gnu-ld --with-stabs) |
590 |
NB. gcc-2.8.1 needs a fix to __do_global_dtors_aux() |
591 |
in crtstuff.c on Unixware 2.1.3 |
592 |
(and possibly other unixware versions) |
593 |
The fix is already in recent versions of egcs. |
594 |
|
595 |
@end format |
596 |
|
597 |
@example |
598 |
================================== |
599 |
static void |
600 |
__do_global_dtors_aux () |
601 |
@{ |
602 |
static func_ptr *p = __DTOR_LIST__ + 1; |
603 |
static int completed = 0; |
604 |
|
605 |
if (completed) |
606 |
return; |
607 |
|
608 |
while (*p) |
609 |
@{ |
610 |
p++; |
611 |
(*(p-1)) (); |
612 |
@} |
613 |
|
614 |
#ifdef EH_FRAME_SECTION_ASM_OP |
615 |
__deregister_frame_info (__EH_FRAME_BEGIN__); |
616 |
#endif |
617 |
completed = 1; |
618 |
@} |
619 |
====================================== |
620 |
@end example |
621 |
|
622 |
@item 3 |
623 |
Having got gcc working - it's probably a good idea to rebuild |
624 |
all your GNU software using it! |
625 |
|
626 |
@item 4 |
627 |
Build gstep as normal. |
628 |
|
629 |
@item 5 |
630 |
The SIOCGIFCONF ioctl sometimes doesn't work on unixware after applying |
631 |
some of the OS patches. |
632 |
|
633 |
So I have added a '-a' flag to gdomap to give it the name of a file |
634 |
containing IP address and netmask information for the network interfaces |
635 |
on the system. |
636 |
|
637 |
You need to set up a file (I suggest '/etc/gdomap_addresses') containing |
638 |
the information for your machine and modify your system startup files in |
639 |
/etc/rc?.d to run gdomap, telling it to use that file. |
640 |
|
641 |
eg. If your machine has an IP address of '193.111.111.2' and is on a |
642 |
class-C network, your /etc/gdomap_addresses file would contain the line |
643 |
|
644 |
@example |
645 |
193.111.111.2 255.255.255.0 |
646 |
@end example |
647 |
|
648 |
and your startup file would contain the lines |
649 |
|
650 |
@example |
651 |
. /usr/local/GNUstep/Makefiles/GNUstep.sh |
652 |
gdomap -a /etc/gdomap_addresses |
653 |
@end example |
654 |
|
655 |
@end table |
656 |
|
657 |
If you don't set gdomap up correctly, Distributed Objects will not |
658 |
work. |
659 |
|
660 |
@c ----------------------------------------- |
661 |
@node Windows with CYGWIN, Windows with MinGW, Unixware-2.1.3/Intel, Machine Specific |
662 |
@section Windows with CYGWIN (@emph{Unstable!}) |
663 |
|
664 |
@table @samp |
665 |
@item Recommended compiler |
666 |
gcc 2.95.3 (Cygwin release 1.1.8) or later |
667 |
|
668 |
@item Extra libs needed |
669 |
Objective-C library DLL (@url{ftp://ftp.gnustep.org/pub/gnustep/libs}) |
670 |
for shared libs. It's a good idea to remove the libobjc.a that comes with gcc |
671 |
(gcc -v for location) so that it isn't accidentally found. |
672 |
For ffcall, you should get version 1.8b or above (the earlier ones don't |
673 |
compile). There are still some problems with structure passing, but that is |
674 |
generally not supportred on any architecture. |
675 |
|
676 |
@item Special Instructions |
677 |
On later versions of Cygwin you may be required to include the win32api |
678 |
directory in CPPFLAGS when configuring: |
679 |
|
680 |
@example |
681 |
CPPFLAGS=-I/usr/include/win32api ./configure |
682 |
@end example |
683 |
@end table |
684 |
|
685 |
Make sure you have good shared libraries for everthing. Sometimes a bad |
686 |
shared library (like libtiff) will cause odd and untraceable problems. |
687 |
See @file{README.Cygwin} for information on compiling. |
688 |
|
689 |
@c ----------------------------------------- |
690 |
@node Windows with MinGW, , Windows with CYGWIN, Machine Specific |
691 |
@section Windows with MinGW (@emph{Unstable! As always...}) |
692 |
|
693 |
@table @samp |
694 |
@item Recommended compiler |
695 |
See below. |
696 |
|
697 |
@item Extra libs needed |
698 |
See below. |
699 |
|
700 |
@item Special Instructions |
701 |
See the @file{README.MinGW} file located in the gnustep-make Documentation |
702 |
directory for instructions. Windows NT/2000/XP only. Win98 machines and |
703 |
earlier are very buggy and are not supported. |
704 |
Native GUI backend is alpha version. |
705 |
@end table |
706 |
|
707 |
@ifclear HOWTO |
708 |
@include end.texi |
709 |
@end ifclear |