Difference between revisions of "Installation on Windows"
Line 153: | Line 153: | ||
== Install XML support == | == Install XML support == | ||
− | + | You will have to make some changes to libiconv for libxml to work properly. | |
+ | |||
+ | cd /mingw/lib | ||
+ | mkdir backup-libiconv | ||
+ | mv libiconv.la backup-libiconv | ||
+ | mv libiconv.lib backup-libiconv | ||
+ | dlltool -D libiconv-2.dll -C -l libiconvlib --export-all-symbols -A ../bin/libiconv-2.dll | ||
+ | |||
+ | If there are no errors: | ||
+ | |||
+ | rm -r backup-libiconv | ||
+ | |||
+ | I had to compile libiconv from source for this to work (the binaries didn't work with my computer for some reason, and I'm not sure if it normally works.) | ||
+ | |||
+ | Download the latest version of libxml from [[ftp://xmlsoft.org/libxml2/]]. | ||
+ | |||
+ | cd libxml2-... | ||
+ | vim include/libxml/xmlexports.h | ||
+ | |||
+ | There is a chunk of code in this file you will have to change. | ||
+ | |||
+ | Search for: | ||
+ | |||
+ | Windows platform with GNU compiler | ||
+ | |||
+ | in the code. Replace the code below it up to the comment about Cygwin: | ||
+ | |||
+ | #if defined(_WIN32) && defined(__MINGW32__) | ||
+ | #undef XMLPUBFUN | ||
+ | #undef XMLPUBVAR | ||
+ | #undef XMLCALL | ||
+ | #if !defined(LIBXML_STATIC) | ||
+ | #define XMLPUBFUN __declspec(dllexport) | ||
+ | #define XMLPUBVAR __declspec(dllexport) extern | ||
+ | #else | ||
+ | #define XMLPUBFUN | ||
+ | #if !defined(LIBXML_STATIC) | ||
+ | #define XMLPUBVAR __declspec(dllimport) extern | ||
+ | #else | ||
+ | #define XMLPUBVAR extern | ||
+ | #endif | ||
+ | #endif | ||
+ | #define XMLCALL __cdecl | ||
+ | #if !defined _REENTRANT | ||
+ | #define _REENTRANT | ||
+ | #endif | ||
+ | #endif | ||
+ | |||
+ | Save the file, then quit. Then compile normally. | ||
+ | |||
+ | ./configure | ||
+ | make | ||
+ | make install | ||
+ | |||
+ | I never installed to the end with this method (halfway through I just decided to use the installer) but it worked well for me. | ||
== Install GNUstep base == | == Install GNUstep base == |
Revision as of 01:48, 17 August 2006
Install MinGW
Download MinGW-3.2.0-rc-3 or later from http://sourceforge.net/projects/mingw Install it into
C:/xxx/msys/1.0/mingw
(where /xxx/ is the top-level path you want to use, I use Nicola/GNUstep so I install it into C:/Nicola/GNUstep/msys/1.0/mingw) (earlier versions of MinGW won't work)
Install msys
Download MSYS-1.0.10 or later from the same site. Install it into C:/xxx/msys/1.0 The postinstall script should ask you for the mingw location, then detect it and be happy that it's there and all is setup properly.
Install msys developer toolkit
Download msysDTK-1.0.1 or later from the same site. Install it into
C:/xxx/msys/1.0
Now your MSYS/MinGW system should be setup! Go around and make sure you know how to use the Unix-like shell. Log into it and work in it.
Download gnustep using cvs
In windows, go to
Start -> All Programs -> mingw -> MSYS ->Msys
The MINGW32 window appears.
Type the following:
mkdir install cd install export CVS_RSH="ssh" cvs -z3 -d:ext:anoncvs@savanah.gnu.org:/cvsroot/gnustep co gnustep
The following message appears:
The authenticity of host 'savanah.gnu.org (199.232.41.3)' can't be established. RSA key fingerprint is 80:5a:b0:0c:ec:93:66:29:49:7e:04:2b:fd:ba:2c:d5. Are you sure you want to continue connecting (yes/no)?
Type the following:
yes
The latest and greatest gnustep library will download into your home directory/installs/gnustep. It took about 10 minutes with a cable modem connection.
Install GNUstep make
cd gnustep/core/make ./configure --prefix=/C/xxx/GNUstep make make install
Setup your GNUstep environment
(you will need to do the same every time you start up your MSYS shell to do development)
. /C/xxx/GNUstep/System/Library/Makefiles/GNUstep.sh
Also, set HOMEPATH, HOMEDRIVE and HOME ... add the following lines to your ~/.profile:
export HOMEDRIVE=C: export HOMEPATH=/home/Nicola export HOME=/C/xxx/msys/1.0/home/Nicola . /C/xxx/GNUstep/System/Library/Makefiles/GNUstep.sh
(obviously replacing 'Nicola' with your Login name) (not sure if this setting of HOMEDRIVE etc is really required, will investigate)
Install the ObjC runtime
Actually, recent versions of gcc (3.2+) have a working libobjc on Windows. Nevertheless this step is necessary (at least on Windows 2000) unless you want some strange errors concerning NSAutoreleasePool etc.
First make sure to delete the old libobjc files
find /C/xxx/GNUstep/ -iname "libobjc*" -exec rm -i {} \;
Then cd to dev-libs/libobjc in your cvs checkout directory and install it.
cd ~/install/gnustep/dev-libs/libobjc make make install
Reinstall GNUstep make (with ObjC this time)
go in core/make and reconfigure/recompile again so that gnustep-objc is detected:
cd ~/install/gnustep/core/make make distclean ./configure make make install
gnustep-make should have detected your custom libobjc.
Install ffcall
Download ffcall from the GNUstep website into c:/xxx/msys/1.0/home/Nicola/install or from here: ftp://ftp.santafe.edu/pub/gnu/ffcall-1.10.tar.gz, and type:
cd ~/install tar -zxvf ffcall-1.10.tar.gz cd ffcall-1.10 ./configure --prefix=$GNUSTEP_SYSTEM_ROOT A windows prompt will appear stating that conftest.exe has encountered a problem and needs to close.
Click the [Don't Send] button.
A second windows prompt will appear stating that conftest.exe has encountered a problem and needs to close.
Click the [Don't Send] button.
A third windows prompt will appear stating that conftest.exe has encountered a problem and needs to close.
Click the [Don't Send] button.
After much output, the following will be displayed: configure: creating ./config.status config.status: creating Makefile config.status: creating config.h
Type the following:
make make install
Note: The configure script of ffcall-1.10 is broken for Windows 2000. You have to apply a patch: http://lists.gnu.org/archive/html/discuss-gnustep/2005-03/msg00258.html
Alternatively, a zip containing a precompiled copy of ffcall-1.9 is availabe here: ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/mingw-libs/ffcall-1.9-gnustep.zip
Unzip it into $GNUSTEP_SYSTEM_ROOT/Library.
Install additional libs
Download the following packages:
libintl-0.11.5-2-bin.zip libintl-0.11.5-2-lib.zip
libiconv-1.8.1-bin.zip libiconv-1.8.1-lib.zip
zlib-1.2.2-bin.zip zlib-1.2.2-lib.zip
from http://gnuwin32.sourceforge.net, and install them. To install them, simply unzip them into
/C/xxx/msys/1.0/mingw.
Install XML support
You will have to make some changes to libiconv for libxml to work properly.
cd /mingw/lib mkdir backup-libiconv mv libiconv.la backup-libiconv mv libiconv.lib backup-libiconv dlltool -D libiconv-2.dll -C -l libiconvlib --export-all-symbols -A ../bin/libiconv-2.dll
If there are no errors:
rm -r backup-libiconv
I had to compile libiconv from source for this to work (the binaries didn't work with my computer for some reason, and I'm not sure if it normally works.)
Download the latest version of libxml from [[1]].
cd libxml2-... vim include/libxml/xmlexports.h
There is a chunk of code in this file you will have to change.
Search for:
Windows platform with GNU compiler
in the code. Replace the code below it up to the comment about Cygwin:
#if defined(_WIN32) && defined(__MINGW32__) #undef XMLPUBFUN #undef XMLPUBVAR #undef XMLCALL #if !defined(LIBXML_STATIC) #define XMLPUBFUN __declspec(dllexport) #define XMLPUBVAR __declspec(dllexport) extern #else #define XMLPUBFUN #if !defined(LIBXML_STATIC) #define XMLPUBVAR __declspec(dllimport) extern #else #define XMLPUBVAR extern #endif #endif #define XMLCALL __cdecl #if !defined _REENTRANT #define _REENTRANT #endif #endif
Save the file, then quit. Then compile normally.
./configure make make install
I never installed to the end with this method (halfway through I just decided to use the installer) but it worked well for me.
Install GNUstep base
go in gnustep-base, and type
cd ~/install/gnustep/core/base ./configure --disable-xml make make install
Install additional GUI libs
for the gui, download and install the following packages:
jpeg-6b-3-bin.zip jpeg-6b-3-dep.zip jpeg-6b-3-lib.zip
tiff-3.7.1-bin.zip tiff-3.7.1-dep.zip tiff-3.7.1-lib.zip
libpng-1.2.8-bin.zip libpng-1.2.8-dep.zip libpng-1.2.8-lib.zip
The process is always the same: download the zip file from the gnuwin32 website, then unzip them into
/C/xxx/msys/1.0/mingw.
Install GNUstep gui
Type the following:
cd ~/install/gnustep/core/gui ./configure make make install
Install GNUstep back
go in back, and type:
./configure make make install
Check the installation
go in a simple gui application (examples/gui a very good starting point), compile and run it. :-)
based on a mail from Nicola Pero