Difference between revisions of "Platform compatibility"

From GNUstepWiki
Jump to navigation Jump to search
 
(73 intermediate revisions by 15 users not shown)
Line 1: Line 1:
'''Note''': Anyone know how to convert [http://www.gnustep.org/resources/documentation/User/GNUstep/gnustep-howto_toc.html Platform Compatibility HowTO]source into wiki language, so we can work on others' effort?
+
{{stub}}
  
Following are procedures for installing GNUstep on different Operating Systems.<br>
+
Following are procedures for installing GNUstep on different Operating Systems.
 +
* You may also want to take a look at the [[dependencies]].
  
  
=== AIX ===
+
= BSD-based systems =
 +
To keep this list as brief as possible, information about these systems can [[Platform:BSD|be found here]].
  
=== BSD ===
 
==== Darwin ====
 
===== Intel =====
 
===== PowerPC =====
 
==== FreeBSD ====
 
You can install GNUstep via ''/usr/ports/devel/gnustep''. However, not all required dependancies are installed.
 
  
If you install the following in advance, you should be fine:
+
= HP/UX  =
* wmaker
+
* GNUstep-core-1.0, please see http://en.wikibooks.org/wiki/CPAM_with_TWW/References_Manual#GNUstep_and_CPAM. look for the gnustep-core-1.0.sb and gnustep-core-1.0.pb file for building and packaging information.
* libxml2
 
* libxslt
 
* libgmp4
 
* libart_lgpl2
 
* libaudiofile
 
* ffcall
 
* glitz
 
You may also want to install ''/usr/ports/net/mDNSResponder''.
 
  
'''Note''':
 
There is a bug in libkvm that '''requires''' a mounted ''/proc''. Until this bug is fixed, make sure you have an entry for ''/proc'' in your ''/etc/fstab'':
 
  
<pre>
+
= Linux-based systems =
proc                    /proc          procfs  rw              0      0
+
To keep this list as brief as possible, information about these systems can [[Platform:Linux|be found here]].
</pre>
 
  
References:
 
[http://www.freebsd.org/cgi/ports.cgi?query=gnustep&stype=all FreeBSD GNUstep ports],
 
[http://www.freshports.org/search.php?query=gnustep&search=go&num=10&stype=name&method=match&deleted=excludedeleted&start=1&casesensitivity=caseinsensitive Freshports GNUstep]
 
==== Mac OS X ====
 
==== NetBSD ====
 
==== OpenBSD ====
 
  
=== HP/UX  ===
+
= Solaris =
We should stay away from HPUX-10.20, it is not supported by HP anymore.
+
Take a look at the required and recommended [[dependencies]]. Most of these can be found at [http://www.blastwave.org/ BlastWave] (which I personally recommend) or [http://www.sunfreeware.com/ Sun Freeware].
 +
The notable exception are [http://www.haible.de/bruno/packages-ffcall.html ffcall]/[http://sources.redhat.com/libffi/ libffi], [http://www.apple.com/macosx/features/bonjour/ Bonjour] and [http://www.portaudio.com/ portaudio] (as of 2008-05-23).
  
=== Irix ===
+
If you plan on compiling those from source, make sure to enable the creation of SHARED libraries. ''Bonjour'' and ''ffcall'' compile right out of the box. For ''portaudio'' to compile, you will need to grab a daily-snapshot and you need to install [http://www.blastwave.org/packages.php/osndsys Open Sound System headers].
  
=== Linux ===
+
Then, if you follow the installation instructions for GNUstep, you should not run into any problems.
==== Debian ====
 
Since Debian "Sarge" you can just say
 
  
apt-get install x-window-system-core wmaker gnustep gnustep-devel gnustep-games
+
=== Intel ===
  
to get GNUstep, X11 and Window Maker installed.
+
''Intentionally left blank''.
  
But what happen if you are on Debian stable (3.0) release ?
+
=== Sparc ===
  
Here is an answer from gnustep irc channel:
+
* http://www.linuks.mine.nu/gnustep/solaris is one of package sources to create Solaris packages for GNUstep.
<pre>
+
* GNUstep-core-1.0, please see http://en.wikibooks.org/wiki/CPAM_with_TWW#GNUstep_and_TWW_HPMS. look for the gnustep-core-1.0.sb and gnustep-core-1.0.pb file for building and packaging information.
<fsmunoz> change every occurence of "stable" for "testing"
 
<fsmunoz> remove the security.debian.org line
 
<fsmunoz> do apt-get update
 
<fsmunoz> apt-get dist-upgrade
 
<fsmunoz> repeat  this last one until nothing gets installed or removed.
 
<fsmunoz> the, replace "testing" with "unstable"
 
<fsmunoz> then, apt-get update
 
<fsmunoz> apt-get dist-upgrade
 
<fsmunoz> repeat, repeat.
 
<fsmunoz> done
 
</pre>
 
==== RedHat ====
 
===== Advance Server 3.0 =====
 
===== FC 3 =====
 
  
==== Slackware ====
+
=== GNUstep Solaris 10 U2 vmware appliance ===
==== SuSE ====
 
  
=== Solaris ===
+
* [http://developers.sun.com/solaris/downloads/solaris_apps/index.jsp Download sol u2 image], you need to have a Sun site account.
http://www.linuks.mine.nu/gnustep/solaris is one package sources to create solaris packages for GNUstep.
+
* You can run this image in VMware server or VMware player 1.0.3.
==== Intel ====
+
* Install Sun Studio 11 with latest patches.
==== Sparc ====
+
* Objective Compiler
 +
** compile your own
 +
** get it from [http://www.blastwave.org/ BlastWave] using pkg-get.
 +
* download all the GNUstep tar balls and follow build instruction.
  
=== Windows ===
 
==== Cygwin ====
 
==== MingW ====
 
==== SFU ====
 
Microsfot's Service For Unix.
 
  
=== Others ===
+
= OpenSolaris =
==== LiveCD for Intel ====
 
Current version is 0.9.4.2
 
  
Find the instructions to install and the CD itself [http://livecd.gnustep.org/ here]
+
This will be an add-on packages to OpenSolaris distributions using TWW tools to create SPARC/Intel packages in SVR4 formats. "pkg-inst gnustep-user-1.0 gnustep-developer-1.0 gnustep-apps-1.0" will install GNUstep user,developer and GNUstep native applications. pkg-rm will perform the reverse of installation.
  
==== Linksys NSLU2 ====
+
It will have a nice name like GNUstep O.S. (OpenSolaris).
* First thing need to happen is to gnerate a gcc cross compiler with objc enabled. Current nslu2 supported gcc only has c and c++ enabled when building the crosstool-native package.
 
  
** We got the first step done ;)
 
  
<pre>
+
= Darwin =
[tjyang@dual slug]$ cat checkout.sh
+
Two issues differentiate Darwin from its FreeBSD cousin.
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/nslu co unslung
+
# Darwin uses the Apple [[Objective-C runtime]], not the GNU version
[tjyang@dual toolchain]$ cd crosstool/
+
# Darwin uses the Apple version of GCC, not the GNU version
[tjyang@dual crosstool]$ grep objc *
 
nslu2-cross335.sh:GCC_LANGUAGES="c,c++,objc"
 
[tjyang@dual crosstool]$ pwd
 
/home/tjyang/slug/unslung/toolchain/crosstool
 
[tjyang@dual crosstool]$
 
[tjyang@dual slug]$ gmake toolchain
 
[tjyang@dual unslung]$ /export/home/tjyang/slug/unslung/toolchain/armv5b-softfloat-linux/gcc-3.3.5-glibc-2.2.5/bin/armv5b-softfloat-linux-gcc -v
 
  
Reading specs from /export/home/tjyang/slug/unslung/toolchain/armv5b-softfloat-linux/gcc-3.3.5-glibc-2.2.5/lib/gcc-lib/armv5b-softfloat-linux/3.3.5/specs
+
See [[Platform:BSD#Darwin]].
Configured with: /export/home/tjyang/slug/unslung/toolchain/crosstool/build/armv5b-softfloat-linux/gcc-3.3.5-glibc-2.2.5/gcc-3.3.5/configure --target=armv5b-softfloat-linux --host=i686-host_pc-linux-gnu --prefix=/export/home/tjyang/slug/unslung/toolchain/armv5b-softfloat-linux/gcc-3.3.5-glibc-2.2.5 --with-float=soft --with-cpu=xscale --enable-cxx-flags=-mcpu=xscale --with-headers=/export/home/tjyang/slug/unslung/toolchain/armv5b-softfloat-linux/gcc-3.3.5-glibc-2.2.5/armv5b-softfloat-linux/include --with-local-prefix=/export/home/tjyang/slug/unslung/toolchain/armv5b-softfloat-linux/gcc-3.3.5-glibc-2.2.5/armv5b-softfloat-linux --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++,objc --enable-shared --enable-c99 --enable-long-long
 
Thread model: posix
 
gcc version 3.3.5
 
[tjyang@dual unslung]$
 
  </pre>
 
** A simple test of objc on host linux machine.
 
<pre>
 
[tjyang@dual bin]$ pwd
 
/home/tjyang/slug/unslung/toolchain/armv5b-softfloat-linux/gcc-3.3.5-glibc-2.2.5/armv5b-softfloat-linux/bin
 
[tjyang@dual bin]$
 
[tjyang@dual bin]$ cat hellow.m
 
#include <stdio.h>
 
  
int main(void)
+
= Windows =
{
 
  printf("Hello World\n");
 
}
 
[tjyang@dual bin]$ ./gcc hellow.m -lobjc -o hellow
 
[tjyang@dual bin]$ file hellow
 
hellow: ELF 32-bit MSB executable, ARM, version 1 (ARM), for GNU/Linux 2.4.3, dynamically linked (uses shared libs), not stripped
 
[tjyang@dual bin]$ uname -a
 
Linux dual 2.4.21-9.ELsmp #1 SMP Thu Jan 8 17:08:56 EST 2004 i686 i686 i386 GNU/Linux
 
[tjyang@dual bin]$
 
  
</pre>
+
There are many Unix Environment solutions for windows. Currently GNUstep is using [http://www.mingw.org/ MingW] as its UNIX environment foundation for Windows.
** Second step is to use this cross compiler to compile a native compiler for armv5b cpu.
 
<pre>
 
[tjyang@dual unslung]$ make crosstool-native;make crosstool-native-ipk
 
[tjyang@dual unslung]$ ls -lrt builds/*.ipk
 
-rw-rw-r--    1 tjyang  tjyang    5569523 Feb 17 13:32 builds/crosstool-native-bin_0.28-rc37-3_armeb.ipk
 
-rw-rw-r--    1 tjyang  tjyang  12677163 Feb 17 13:33 builds/crosstool-native-lib_0.28-rc37-3_armeb.ipk
 
-rw-rw-r--    1 tjyang  tjyang    1722660 Feb 17 13:33 builds/crosstool-native-inc_0.28-rc37-3_armeb.ipk
 
-rw-rw-r--    1 tjyang  tjyang    7049858 Feb 17 13:34 builds/crosstool-native-arch-bin_0.28-rc37-3_armeb.ipk
 
-rw-rw-r--    1 tjyang  tjyang    9032668 Feb 17 13:34 builds/crosstool-native-arch-lib_0.28-rc37-3_armeb.ipk
 
-rw-rw-r--    1 tjyang  tjyang    7483945 Feb 17 13:35 builds/crosstool-native-arch-inc_0.28-rc37-3_armeb.ipk
 
-rw-rw-r--    1 tjyang  tjyang      1058 Feb 17 13:35 builds/crosstool-native_0.28-rc37-3_armeb.ipk
 
  
[tjyang@dual unslung]$ cp  /export/home/tjyang/slug/unslung/builds/*.ipk  /disk76/nslu2/tmp/
+
=== MingW ===
[tjyang@dual unslung]$
 
  
login into your nslu2, cd to where the ipk packages is.
+
See [[Installation on Windows]] for details on MingW setup. Also look at precompiled binary installer, available from [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/ GNUstep's ftp site].
run following commands.
 
bash-2.05b# for i in *.ipk; do ipkg -force-overwrite  install $i; done
 
Installing crosstool-native-arch-bin (0.28-rc37-3) to root...
 
ipkg: Cannot link from ./opt/armeb/armv5b-softfloat-linux/bin/g++ to './opt/armeb/armv5b-softfloat-linux/bin/c++': No such file or directory
 
Configuring crosstool-native-arch-bin
 
Installing crosstool-native-arch-inc (0.28-rc37-3) to root...
 
Configuring crosstool-native-arch-inc
 
Installing crosstool-native-arch-lib (0.28-rc37-3) to root...
 
ipkg: Cannot link from ./opt/armeb/armv5b-softfloat-linux/lib/libgcc_s.so.1.dir/libgcc_s.so.1 to './opt/armeb/armv5b-softfloat-linux/lib/libgcc_s.so.1': No such file or directory
 
ipkg: Cannot link from ./opt/armeb/armv5b-softfloat-linux/lib/libstdc++.so.5.0.7.dir/libstdc++.so.5.0.7 to './opt/armeb/armv5b-softfloat-linux/lib/libstdc++.so.5.0.7': No such file or directory
 
Configuring crosstool-native-arch-lib
 
Installing crosstool-native-bin (0.28-rc37-3) to root...
 
Configuring crosstool-native-bin
 
Installing crosstool-native-inc (0.28-rc37-3) to root...
 
Configuring crosstool-native-inc
 
Installing crosstool-native-lib (0.28-rc37-3) to root...
 
Configuring crosstool-native-lib
 
Installing crosstool-native (0.28-rc37-3) to root...
 
Configuring crosstool-native
 
bash-2.05b# for i in *.ipk; do ipkg -force-overwrite  install $i; done
 
bash-2.05b# for i in *.ipk; do ipkg -force-overwrite  install $i; done
 
Installing crosstool-native-arch-bin (0.28-rc37-3) to root...
 
ipkg: Cannot link from ./opt/armeb/armv5b-softfloat-linux/bin/g++ to './opt/armeb/armv5b-softfloat-linux/bin/c++': No such file or directory
 
Configuring crosstool-native-arch-bin
 
Installing crosstool-native-arch-inc (0.28-rc37-3) to root...
 
Configuring crosstool-native-arch-inc
 
Installing crosstool-native-arch-lib (0.28-rc37-3) to root...
 
ipkg: Cannot link from ./opt/armeb/armv5b-softfloat-linux/lib/libgcc_s.so.1.dir/libgcc_s.so.1 to './opt/armeb/armv5b-softfloat-linux/lib/libgcc_s.so.1': No such file or directory
 
ipkg: Cannot link from ./opt/armeb/armv5b-softfloat-linux/lib/libstdc++.so.5.0.7.dir/libstdc++.so.5.0.7 to './opt/armeb/armv5b-softfloat-linux/lib/libstdc++.so.5.0.7': No such file or directory
 
Configuring crosstool-native-arch-lib
 
Installing crosstool-native-bin (0.28-rc37-3) to root...
 
Configuring crosstool-native-bin
 
Installing crosstool-native-inc (0.28-rc37-3) to root...
 
Configuring crosstool-native-inc
 
Installing crosstool-native-lib (0.28-rc37-3) to root...
 
Configuring crosstool-native-lib
 
Installing crosstool-native (0.28-rc37-3) to root...
 
Configuring crosstool-native
 
bash-2.05b#
 
  
</pre>
 
** try to compile helloworld.m objective-C file and run the helloworld binary on nslu2.
 
<pre>
 
</pre>
 
** Of course more strong testing is needed. please add instructon below if you know how to run objective-c's testsuite in crosstool.
 
  
* Using Objective-C enalbed gcc to compile gnustep-core,gnustep-* software.
+
= Others =
 +
To keep this list as brief as possible, information about these systems can [[Platform:Other|be found here]].
  
References: http://lists.gnu.org/archive/html/discuss-gnustep/2005-02/msg00124.html
+
 
 +
[[Category:Development]]

Latest revision as of 18:27, 22 October 2009

This article or section is a stub (i.e., in need of additional material).
You can help us by expanding it


Following are procedures for installing GNUstep on different Operating Systems.


BSD-based systems

To keep this list as brief as possible, information about these systems can be found here.


HP/UX


Linux-based systems

To keep this list as brief as possible, information about these systems can be found here.


Solaris

Take a look at the required and recommended dependencies. Most of these can be found at BlastWave (which I personally recommend) or Sun Freeware. The notable exception are ffcall/libffi, Bonjour and portaudio (as of 2008-05-23).

If you plan on compiling those from source, make sure to enable the creation of SHARED libraries. Bonjour and ffcall compile right out of the box. For portaudio to compile, you will need to grab a daily-snapshot and you need to install Open Sound System headers.

Then, if you follow the installation instructions for GNUstep, you should not run into any problems.

Intel

Intentionally left blank.

Sparc

GNUstep Solaris 10 U2 vmware appliance

  • Download sol u2 image, you need to have a Sun site account.
  • You can run this image in VMware server or VMware player 1.0.3.
  • Install Sun Studio 11 with latest patches.
  • Objective Compiler
    • compile your own
    • get it from BlastWave using pkg-get.
  • download all the GNUstep tar balls and follow build instruction.


OpenSolaris

This will be an add-on packages to OpenSolaris distributions using TWW tools to create SPARC/Intel packages in SVR4 formats. "pkg-inst gnustep-user-1.0 gnustep-developer-1.0 gnustep-apps-1.0" will install GNUstep user,developer and GNUstep native applications. pkg-rm will perform the reverse of installation.

It will have a nice name like GNUstep O.S. (OpenSolaris).


Darwin

Two issues differentiate Darwin from its FreeBSD cousin.

  1. Darwin uses the Apple Objective-C runtime, not the GNU version
  2. Darwin uses the Apple version of GCC, not the GNU version

See Platform:BSD#Darwin.

Windows

There are many Unix Environment solutions for windows. Currently GNUstep is using MingW as its UNIX environment foundation for Windows.

MingW

See Installation on Windows for details on MingW setup. Also look at precompiled binary installer, available from GNUstep's ftp site.


Others

To keep this list as brief as possible, information about these systems can be found here.