|
|
(59 intermediate revisions by 14 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 ====
| |
| | | |
− | Building GNUstep from source is fairly straight-forward for NetBSD 1.6 and 2.0: it is suggested however to upgrade to 2.0 if possible. NetBSD/i386 has no known problems right now, however there are reports of crashout problems for gdomap on NetBSD/sparc which may be related to ffi/ffcall issues.
| + | = Solaris = |
| + | 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). |
| | | |
− | In general, it's easier to install dependency packages from pkgsrc rather than downloading the sources and tweaking them to build and install.
| + | 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]. |
| | | |
− | '''Prerequisites'''
| + | Then, if you follow the installation instructions for GNUstep, you should not run into any problems. |
| | | |
− | To get the dependency packages installed, cd to your pkgsrc tree and cd to the right package directories, on my system:
| + | === Intel === |
| | | |
− | cd /usr/pkgsrc
| + | ''Intentionally left blank''. |
| | | |
− | then go to the package you wish to install, for example:
| + | === Sparc === |
| | | |
− | cd devel/gmake
| + | * http://www.linuks.mine.nu/gnustep/solaris is one of package sources to create Solaris packages for GNUstep. |
| + | * 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. |
| | | |
− | and issue the command:
| + | === GNUstep Solaris 10 U2 vmware appliance === |
| | | |
− | make install
| + | * [http://developers.sun.com/solaris/downloads/solaris_apps/index.jsp 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 [http://www.blastwave.org/ BlastWave] using pkg-get. |
| + | * download all the GNUstep tar balls and follow build instruction. |
| | | |
− | This command will download source code and even dependencies on dependencies and compile and install them. Move back to the pkgsrc directory and do this again until all the packages are installed.
| |
| | | |
− | The dependency packages are:
| + | = OpenSolaris = |
| | | |
− | * devel/gmake
| + | 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. |
− | * graphics/jpeg
| |
− | * graphics/png
| |
− | * graphics/tiff
| |
− | * devel/ffcall OR devel/libffi
| |
− | * textproc/libxml2
| |
− | * devel/pth (only for NetBSD 1.6)
| |
| | | |
− | '''Build instructions'''
| + | It will have a nice name like GNUstep O.S. (OpenSolaris). |
| | | |
− | ''To be provided.''
| |
| | | |
− | ==== OpenBSD ==== | + | = Darwin = |
| + | Two issues differentiate Darwin from its FreeBSD cousin. |
| + | # Darwin uses the Apple [[Objective-C runtime]], not the GNU version |
| + | # Darwin uses the Apple version of GCC, not the GNU version |
| | | |
− | === HP/UX ===
| + | See [[Platform:BSD#Darwin]]. |
| | | |
− | === Irix === | + | = Windows = |
| | | |
− | === Linux ===
| + | There are many Unix Environment solutions for windows. Currently GNUstep is using [http://www.mingw.org/ MingW] as its UNIX environment foundation for Windows. |
− | ==== Debian ====
| |
− | Since Debian "Sarge" you can just say
| |
| | | |
− | apt-get install x-window-system-core wmaker gnustep gnustep-devel gnustep-games
| + | === MingW === |
| | | |
− | to get GNUstep, X11 and Window Maker installed.
| + | 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]. |
| | | |
− | But what happen if you are on Debian stable (3.0) release ?
| |
| | | |
− | Here is an answer from gnustep irc channel:
| + | = Others = |
− | <pre>
| + | To keep this list as brief as possible, information about these systems can [[Platform:Other|be found here]]. |
− | <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>
| |
| | | |
− | The above was a general guide to upgrade from Debian stable to unstable, not exactly the best way to install GNUstep packages. If one doesn't want to upgrade it is possible to simply add the unstable apt lines to the sources.list and specify the distribution when installing the packages, e.g.
| |
− | <pre>
| |
− | # apt-get install -t unstable gnumail.app
| |
− | </pre>
| |
| | | |
− | This will probably upgrade some other packages to satisfy dependencies, but will have a much small impact on the system since only the packages on which GNUstep depends will be upgraded.
| + | [[Category:Development]] |
− | | |
− | Yet another way is to add tarzeau's repository; he packages a huge ammount of GNUstep packages. Just add this to your sources.list:
| |
− | <pre>
| |
− | deb http://www.linuks.mine.nu/i_debian/ ./
| |
− | deb-src http://www.linuks.mine.nu/i_debian/ ./
| |
− | </pre>
| |
− | | |
− | This repository contains packages made in unstable, so it's possible that the dependencies only are satisfied in unstable systems.
| |
− | | |
− | ==== RedHat ====
| |
− | ===== Advance Server 3.0 =====
| |
− | ===== FC 3 =====
| |
− | | |
− | ==== Slackware ====
| |
− | ==== SuSE ====
| |
− | | |
− | === Solaris ===
| |
− | http://www.linuks.mine.nu/gnustep/solaris is one package sources to create solaris packages for GNUstep.
| |
− | ==== Intel ====
| |
− | ==== Sparc ====
| |
− | | |
− | === Windows ===
| |
− | ==== Cygwin ====
| |
− | ==== MingW ====
| |
− | ==== SFU ====
| |
− | Microsfot's Service For Unix.
| |
− | | |
− | === Others ===
| |
− | ==== LiveCD for Intel ====
| |
− | Current version is 0.9.4.2
| |
− | | |
− | Find the instructions to install and the CD itself [http://livecd.gnustep.org/ here]
| |
− | | |
− | ==== Linksys NSLU2 ====
| |
− | | |
− | * 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.
| |
− | * check out unslung source using follow command.
| |
− | | |
− | cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/nslu co unslung
| |
− | * add in objc as language need to be enabled.
| |
− | | |
− | perl -pi -e 's!^GCC_LANGUAGES=.*!GCC_LANGUAGES="c,c++,objc"!' toolchain/crosstool/nslu2-cross335.sh
| |
− | | |
− | perl -pi -e 's!^GCC_LANGUAGES=.*!GCC_LANGUAGES="c,c++,objc"!' sources/crosstool-native/nslu2-native335.sh
| |
− | | |
− | | |
− | | |
− | ** Compile cross-compiler for arm cpu using gcc compiler on debian 3.1 linux.
| |
− | | |
− | <pre>
| |
− | tjyang@debian:~/unslung$ pwd
| |
− | /home/tjyang/unslung
| |
− | tjyang@debian:~/unslung$ rm toolchain/crosstool/.configured
| |
− | tjyang@debian:~/unslung$ rm toolchain/crosstool/.built
| |
− | tjyang@debian:~/unslung$ unset LD_LIBRARY_PATH
| |
− | tjyang@debian:~/unslung$make toolchain
| |
− | </pre>
| |
− | | |
− | * A arm gcc with objective-C enabled.
| |
− | <pre>
| |
− | /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
| |
− | 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 helloworld.m
| |
− | #include <stdio.h>
| |
− | | |
− | int main(void)
| |
− | {
| |
− | printf("Hello World\n");
| |
− | }
| |
− | [tjyang@dual bin]$ ./gcc helloworld.m -lobjc -o helloworld
| |
− | [tjyang@dual bin]$ file helloworld
| |
− | 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>
| |
− | ** Second step is to use this cross-compiler which generate binaries code for armb cpu to compile a native compiler. This complier can only be run on native machine nslu2 not on Intel linux.
| |
− | <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/
| |
− | [tjyang@dual unslung]$
| |
− | | |
− | login into your nslu2, cd to where the ipk packages are.
| |
− | 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
| |
− | 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>
| |
− | | |
− | bash-2.05b# gcc helloworld.m -lobjc -o helloworld
| |
− | bash-2.05b# file helloworld
| |
− | helloworld: ELF 32-bit MSB executable, ARM, version 1 (ARM), for GNU/Linux 2.4.3, dynamically linked (uses shared libs), not stripped
| |
− | bash-2.05b# ./helloworld
| |
− | ./helloworld: error while loading shared libraries: libobjc.so.1: cannot open shared object file: No such file or directory
| |
− | bash-2.05b#
| |
− | | |
− | libobjc.so.1 is in /opt/armeb/armv5b-softfloat-linux/lib, this path need to be in LD_LIBRARY_PATH.
| |
− | | |
− | | |
− | bash-2.05b# ./helloworld
| |
− | Hello World
| |
− | bash-2.05b# uname -a
| |
− | Linux LKG7BFA96 2.4.22-xfs #1 Sat Jan 1 21:34:54 HST 2005 armv5b unknown unknown GNU/Linux
| |
− | bash-2.05b# date
| |
− | Thu Feb 17 11:35:19 CST 2005
| |
− | bash-2.05b# cat compile.sh
| |
− | /opt/armeb/armv5b-softfloat-linux/bin/gcc helloworld.m -o helloworld -lobjc
| |
− | bash-2.05b# cat /etc/profile
| |
− | PATH=/opt/bin:/share/hdd/data/public/nslu2/tjyang/unslung/staging/bin:${PATH}
| |
− | TERM=xterm
| |
− | export LD_LIBRARY_PATH=/opt/lib:/lib:/opt/armeb/armv5b-softfloat-linux/lib
| |
− | export PATH TERM
| |
− | bash-2.05b#
| |
− | | |
− | </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.
| |
− | | |
− | References: http://lists.gnu.org/archive/html/discuss-gnustep/2005-02/msg00124.html
| |