Installation on Windows

From GNUstepWiki

(Difference between revisions)
Revision as of 14:03, 3 March 2007
Pingi (Talk | contribs)
Install msys
← Previous diff
Current revision
Fedor (Talk | contribs)
Install instructions
Line 1: Line 1:
 += Binary installer =
 +Using the binary [http://www.gnustep.org/experience/Windows.html installer] (created using Nullsoft's [http://nsis.sourceforge.net/Main_Page NSIS]) is the easiest way to get the GNUstep development libraries to your PC.
 +
 +== Install instructions ==
 +* Download installers from [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows the ftp site] (i.e. gnustep-msys-system-0.X.X-setup.exe + gnustep-core-0.X.X-setup.exe) and run them.
 +* Also download gnustel-devel-X.X.X-setup.exe if you want to compile applications.
 +* select install binaries
 +Now you have an MSYS environment (minimal GNU with shell and basic programs). You can start the shell via "Start → Programs → GNUstep → Shell" and begin programming.
 +
 +<small>To start you could download the gnustep examples package:
 + svn co svn://svn.gna.org/svn/gnustep/modules/usr-apps/examples
 +alternatively download the gnustep-example package from [ftp://ftp.gnustep.org/pub/gnustep/core/ here] and unpack with <code>tar zxf gnustep-examples-1.3.0.tar.gz</code>. To compile/run an example type:
 + cd examples/gui/GSTest
 + make
 + openapp ./GSTest.app
 +</small>
 +Have much fun!
 +
 +== Installer Troubleshooting ==
 +
 +# I installed gnustep-msys-system and tried to start Shell, but nothing happened (or I got an error).
 +There could be a number of issues here
 +* Try to reinstall (uninstall gnustep-msys-system and install again)
 +* Do you have a previous CYGWIN install? Remove it and any CYGWIN environment variable
 +* You might need to rebase the msys.dll. Instructions coming soon...
 +
= Install Windows GNUstep Manually = = Install Windows GNUstep Manually =
 +Building and installing GNUstep on windows is a "lengthy but painless process." Below is the detailed recipe.
== Install MinGW == == Install MinGW ==
-Download [http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=82721 MinGW] (MinGW-5.1.3.exe or later) from http://sourceforge.net/projects/mingw Install it into <tt>C:\''xxx''\msys\1.0\mingw</tt>+Download [http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=82721 MinGW] (MinGW-5.1.3.exe or later) (cygwin works with a little tweaking; see talk page) from http://sourceforge.net/projects/mingw Install it into <tt>C:\''xxx''\msys\1.0\mingw</tt>
(where ''xxx'' is the top-level path you want to use, I use Nicola/GNUstep so I install it into <tt>C:\Nicola\GNUstep\msys\1.0\mingw</tt>) (where ''xxx'' is the top-level path you want to use, I use Nicola/GNUstep so I install it into <tt>C:\Nicola\GNUstep\msys\1.0\mingw</tt>)
Line 13: Line 40:
== Install msys developer toolkit == == Install msys developer toolkit ==
-Download msysDTK-1.0.1 or later from the same site. Install it into <tt>C:/''xxx''/msys/1.0</tt>+Download msysDTK-1.0.1 or later from the same site. Install it into <tt>C:\''xxx''\msys\1.0</tt>
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. 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.
Line 47: Line 74:
make make
make install make install
- 
-<!---== Setup your GNUstep environment == 
- 
-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 
- 
-(obviously replacing 'Nicola' with your Login name) (not sure if this setting of HOMEDRIVE etc is really required, will investigate) 
-----> 
== Install the ObjC runtime == == Install the ObjC runtime ==
Line 78: Line 94:
== Reinstall GNUstep make (with ObjC this time) == == Reinstall GNUstep make (with ObjC this time) ==
-go in core/make and reconfigure/recompile again so that gnustep-objc is detected:+Enter the core/make directory and reconfigure/recompile again so that gnustep-objc is detected:
cd ~/install/gnustep/core/make cd ~/install/gnustep/core/make
make distclean make distclean
Line 132: Line 148:
:zlib-1.2.2-lib.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'.+from http://gnuwin32.sourceforge.net, and install them. To install them, simply unzip them into <tt>C:\''xxx''\msys\1.0\mingw</tt>.
== 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/]. 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 ./configure
make make
make install 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.--->+ 
 +<p style="color:red; background-color:yellow;">Do not install libxslt. It is broken on Windows.</p>
== Install GNUstep base == == Install GNUstep base ==
-go in gnustep-base, and type +Enter the gnustep-base directory, and type
- +
cd ~/install/gnustep/core/base cd ~/install/gnustep/core/base
./configure ./configure
Line 200: Line 168:
If you didn't install libxml, If you didn't install libxml,
- 
./configure --disable-xml ./configure --disable-xml
make make
Line 224: Line 191:
:libpng-1.2.8-lib.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'.+The process is always the same: download the zip file from the gnuwin32 website, then unzip them into <tt>C:''xxx''\msys\1.0\mingw</tt>.
== Install GNUstep gui == == Install GNUstep gui ==
Line 251: Line 218:
''based on a mail from Nicola Pero'' ''based on a mail from Nicola Pero''
- 
-= GNUstep .exe installer using Nullsoft's [http://nsis.sourceforge.net/Main_Page NSIS] = 
- 
-== install instruction == 
-There are three versions of exe installer for gnustep. 
- 
-* Download [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows gnustep NSIS installer ]. 
-** select copy the binaries. 
- 
- 
-* Download and compile gnustep examples tar ball. 
- 
-* "openapp GSTest.app" will bring up a screen with GNUstep interface. 
= GNUstep MSI installer created by [http://wix.sourceforge.net/ WiX] = = GNUstep MSI installer created by [http://wix.sourceforge.net/ WiX] =
Line 275: Line 229:
* answer following questions. * answer following questions.
* Test the installation. * Test the installation.
-== Prepare your gnustep win32 development environment ==+== Prepare your Win32 gnustep WiX packaging environment ==
=== List of depended software === === List of depended software ===
* WiX Win32 MSI package creation tool. * WiX Win32 MSI package creation tool.
Line 327: Line 281:
=== Checkout gnustep.wxs === === Checkout gnustep.wxs ===
=== overview of gnustep.wxs === === overview of gnustep.wxs ===
 +
 +[[Category:Microsoft Windows]]

Current revision

Contents

Binary installer

Using the binary installer (created using Nullsoft's NSIS) is the easiest way to get the GNUstep development libraries to your PC.

Install instructions

  • Download installers from the ftp site (i.e. gnustep-msys-system-0.X.X-setup.exe + gnustep-core-0.X.X-setup.exe) and run them.
  • Also download gnustel-devel-X.X.X-setup.exe if you want to compile applications.
  • select install binaries

Now you have an MSYS environment (minimal GNU with shell and basic programs). You can start the shell via "Start → Programs → GNUstep → Shell" and begin programming.

To start you could download the gnustep examples package:

svn co svn://svn.gna.org/svn/gnustep/modules/usr-apps/examples 

alternatively download the gnustep-example package from here and unpack with tar zxf gnustep-examples-1.3.0.tar.gz. To compile/run an example type:

cd examples/gui/GSTest
make
openapp ./GSTest.app

Have much fun!

Installer Troubleshooting

  1. I installed gnustep-msys-system and tried to start Shell, but nothing happened (or I got an error).

There could be a number of issues here

  • Try to reinstall (uninstall gnustep-msys-system and install again)
  • Do you have a previous CYGWIN install? Remove it and any CYGWIN environment variable
  • You might need to rebase the msys.dll. Instructions coming soon...

Install Windows GNUstep Manually

Building and installing GNUstep on windows is a "lengthy but painless process." Below is the detailed recipe.

Install MinGW

Download MinGW (MinGW-5.1.3.exe or later) (cygwin works with a little tweaking; see talk page) 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)

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

Via subversion

If you have a copy of SVN (http://subversion.tigris.org/) installed on your system and want to have the most up-to-date version just being worked on, do the following.

In windows, go to 'Start → All Programs → mingw → MSYS → Msys'. The MINGW32 window appears.

Type the following:

mkdir install
cd install
svn co svn://svn.gna.org/svn/gnustep/modules/core

This will download the core GNUstep libraries (make, base, gui and back).

Release tarball

Otherwise download from the main site http://www.gnustep.org (or ftp://ftp.gnustep.org/pub/gnustep/core/) the file gnustep-startup-x.yy.z.tar.gz. It contains the core libraries. Put it somewhere in your MSYS home folder, i.e. under C:\xxx\msys\1.0\home\Nicola\install

To unpack the file type the following into the MSYS window

cd ~/install   #or where you put it
tar zxf gnustep-startup-0.16.1.tar.gz

After these steps you have the most recent installation instructions in the file 'core/make/Documentation/README.MinGW'

Install GNUstep make

cd gnustep/core/make
./configure --with-layout=fhs
make
make install

Install the ObjC runtime

Actually, recent versions of gcc (3.2+) have a working libobjc on Windows. Nevertheless this step is necessary unless you want some strange errors concerning NSAutoreleasePool etc.

First make sure to delete the old libobjc files

rm -Rf /mingw/lib/gcc/mingw32/3.4.2/include/objc
rm -Rf /mingw/lib/libobjc.a
rm -Rf /mingw/lib/libobjc.la

Then get GNUstep's libobjc and install it.

svn co svn://svn.gna.org/svn/gnustep/modules/dev-libs/libobjc
cd libobjc 
make
make install

If you don't use SVN, download gnustep-libobjc from ftp://ftp.gnustep.org/pub/gnustep/libs/

Reinstall GNUstep make (with ObjC this time)

Enter the core/make directory and reconfigure/recompile again so that gnustep-objc is detected:

cd ~/install/gnustep/core/make
make distclean
./configure --with-layout=fhs
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

A windows prompt may appear (several times) 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

Precompiled library

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:

Download libintl

libintl-0.11.5-2-bin.zip
libintl-0.11.5-2-lib.zip

Download libiconv

libiconv-1.9.2-1-bin.zip
libiconv-1.9.2-1-lib.zip

Download zlib

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

Download the latest version of libxml from ftp://xmlsoft.org/libxml2/.

./configure
make
make install

Do not install libxslt. It is broken on Windows.

Install GNUstep base

Enter the gnustep-base directory, and type

cd ~/install/gnustep/core/base
./configure
make
make install

If you didn't install libxml,

./configure --disable-xml
make
make install

Install additional GUI libs

for the gui, download and install the following packages:

Download jpeg

jpeg-6b-3-bin.zip
jpeg-6b-3-dep.zip
jpeg-6b-3-lib.zip

Download tiff

tiff-3.7.1-bin.zip
tiff-3.7.1-dep.zip
tiff-3.7.1-lib.zip

Download libpng

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

cd to core/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. :-)

Some older makefiles may require that you type

export GNUSTEP_MAKEFILES=/usr/local/share/GNUstep/Makefiles

before compiling.

based on a mail from Nicola Pero

GNUstep MSI installer created by WiX

There are three sub packages

  • user : To minimize the footprint of gnustep system on Windows machines.
  • developer : include WiX,gcc and package sources.
  • gnustep applications : include a broad suite of GNUstep applications.

Install GNUstep MSI installer

  • Download the msi from here.
  • answer following questions.
  • Test the installation.

Prepare your Win32 gnustep WiX packaging environment

List of depended software

  • WiX Win32 MSI package creation tool.
    • candle.exe
C:\tmp>candle
Microsoft (R) Windows Installer Xml Compiler version 2.0.4221.0
Copyright (C) Microsoft Corporation 2003. All rights reserved.

 usage:  candle.exe [-?] [-nologo] [-out outputFile] sourceFile [sourceFile ...]


   -d<name>=<value>  define a parameter for the preprocessor
   -p<file>  preprocess to a file (or stdout if no file supplied)
   -I<dir>  add to include search path
   -nologo  skip printing candle logo information
   -out     specify output file (default: write to current directory)
   -pedantic:<level>  pedantic checks (levels: easy, heroic, legendary)

<snip>

For more information see: http://wix.sourceforge.net

C:\tmp>
    • light.exe
C:\tmp>light
Microsoft (R) Windows Installer Xml Linker version 2.0.4221.0
Copyright (C) Microsoft Corporation 2003. All rights reserved.

 usage:  light.exe [-?] [-b basePath] [-nologo] [-out outputFile] objectFile [o
jectFile ...]

   -ai        allow identical rows, identical rows will be treated as a warning
   -au        (experimental) allow unresolved references, will not create a val
d output
   -b         base path to locate all files (default: current directory)
   -cc        path to cache built cabinets (will not be deleted after linking)

<snip>

For more information see: http://wix.sourceforge.net

C:\tmp>
  • makefile for nmake.
  • gcc win32 compiler from MingW.

Checkout gnustep.wxs

overview of gnustep.wxs