Difference between revisions of "Installation on Windows"

From GNUstepWiki
Jump to navigation Jump to search
 
(70 intermediate revisions by 7 users not shown)
Line 1: Line 1:
= Install Windows GNUstep manually =
+
= 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 =
 +
Building and installing GNUstep on windows is a "lengthy but painless process." Below is the detailed recipe.
  
 
== Install MinGW ==
 
== Install MinGW ==
Download MinGW-3.2.0-rc-3 or later from http://sourceforge.net/projects/mingw Install it into
+
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>
 
 
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)
+
(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>)
  
 
== Install msys ==
 
== Install msys ==
  
Download MSYS-1.0.10 or later from the same site.  Install it into C:/xxx/msys/1.0
+
Download MSYS-1.0.10 or later from the same site.  Install it into <tt>C:\''xxx''\msys\1.0</tt>
 
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.
 
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 ==
 
== Install msys developer toolkit ==
  
Download msysDTK-1.0.1 or later from the same site.  Install it into
+
Download msysDTK-1.0.1 or later from the same site.  Install it into <tt>C:\''xxx''\msys\1.0</tt>
 
 
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.
 
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 ==
+
== 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  
+
In windows, go to 'Start &rarr; All Programs &rarr; mingw &rarr; MSYS &rarr; Msys'.
Start -> All Programs -> mingw -> MSYS ->Msys
 
 
The MINGW32 window appears.
 
The MINGW32 window appears.
  
Line 30: Line 54:
 
  mkdir install
 
  mkdir install
 
  cd install
 
  cd install
  export CVS_RSH="ssh"
+
  svn co svn://svn.gna.org/svn/gnustep/modules/core
cvs -z3 -d:ext:anoncvs@savanah.gnu.org:/cvsroot/gnustep co gnustep
 
  
The following message appears:
+
This will download the core GNUstep libraries (make, base, gui and back).
    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:
+
=== Release tarball ===
  yes
+
 
 +
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
  
The latest and greatest gnustep library will download into your home directory/installs/gnustep.
+
<p style="color:red; background-color:yellow;">After these steps you have the most recent installation instructions in the file 'core/make/Documentation/README.MinGW'</p>
It took about 10 minutes with a cable modem connection.
 
  
 
== Install GNUstep make ==
 
== Install GNUstep make ==
  
 
  cd gnustep/core/make
 
  cd gnustep/core/make
  ./configure --prefix=/C/xxx/GNUstep
+
  ./configure --with-layout=fhs
 
  make
 
  make
 
  make install
 
  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  ==
 
== 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.
+
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
 
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
  
find /C/xxx/GNUstep/ -iname "libobjc*" -exec rm -i {} \;
+
Then get GNUstep's libobjc and install it.
 
+
  svn co svn://svn.gna.org/svn/gnustep/modules/dev-libs/libobjc
Then cd to dev-libs/libobjc in your cvs checkout directory and install it.  
+
cd libobjc  
  cd ~/install/gnustep/dev-libs/libobjc  
 
 
  make
 
  make
 
  make install
 
  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) ==
 
== 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
  ./configure
+
  ./configure --with-layout=fhs
 
  make  
 
  make  
 
  make install
 
  make install
Line 95: Line 108:
 
or from here: ftp://ftp.santafe.edu/pub/gnu/ffcall-1.10.tar.gz,
 
or from here: ftp://ftp.santafe.edu/pub/gnu/ffcall-1.10.tar.gz,
 
and type:
 
and type:
 
 
  cd ~/install
 
  cd ~/install
 
  tar -zxvf ffcall-1.10.tar.gz
 
  tar -zxvf ffcall-1.10.tar.gz
 
  cd ffcall-1.10
 
  cd ffcall-1.10
  ./configure --prefix=$GNUSTEP_SYSTEM_ROOT
+
  ./configure
    A windows prompt will appear stating that conftest.exe has encountered a problem and needs to close.
 
  
Click the [Don't Send] button.
+
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.
  
    A second windows prompt will appear stating that conftest.exe has encountered a problem and needs to close.
+
After much output,  the following will be displayed:
 
+
configure: creating ./config.status
Click the [Don't Send] button.
+
config.status: creating Makefile
 
+
config.status: creating config.h
    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:
 
Type the following:
 
 
  make
 
  make
 
  make install
 
  make install
Line 125: Line 126:
 
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
 
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
 
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
Line 135: Line 137:
  
 
[http://sourceforge.net/project/showfiles.php?group_id=23617&package_id=73290 Download libintl]
 
[http://sourceforge.net/project/showfiles.php?group_id=23617&package_id=73290 Download libintl]
 
+
:libintl-0.11.5-2-bin.zip
libintl-0.11.5-2-bin.zip
+
:libintl-0.11.5-2-lib.zip
libintl-0.11.5-2-lib.zip
 
  
 
[http://sourceforge.net/project/showfiles.php?group_id=23617&package_id=17090 Download libiconv]
 
[http://sourceforge.net/project/showfiles.php?group_id=23617&package_id=17090 Download libiconv]
 
+
:libiconv-1.9.2-1-bin.zip  
libiconv-1.8.1-bin.zip  
+
:libiconv-1.9.2-1-lib.zip  
libiconv-1.8.1-lib.zip  
 
  
 
[http://sourceforge.net/project/showfiles.php?group_id=23617&package_id=16861 Download zlib]
 
[http://sourceforge.net/project/showfiles.php?group_id=23617&package_id=16861 Download zlib]
 +
:zlib-1.2.2-bin.zip
 +
:zlib-1.2.2-lib.zip
  
zlib-1.2.2-bin.zip
+
from http://gnuwin32.sourceforge.net, and install them.  To install them, simply unzip them into <tt>C:\''xxx''\msys\1.0\mingw</tt>.
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 ==
 
== Install XML support ==
 
+
Download the latest version of libxml from [ftp://xmlsoft.org/libxml2/].
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
 
  ./configure
Line 209: Line 157:
 
  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 221: Line 168:
  
 
If you didn't install libxml,
 
If you didn't install libxml,
 
 
  ./configure --disable-xml
 
  ./configure --disable-xml
 
  make
 
  make
Line 231: Line 177:
  
 
[http://sourceforge.net/project/showfiles.php?group_id=23617&package_id=16348&release_id=218220 Download jpeg]
 
[http://sourceforge.net/project/showfiles.php?group_id=23617&package_id=16348&release_id=218220 Download jpeg]
 
+
:jpeg-6b-3-bin.zip
  jpeg-6b-3-bin.zip
+
:jpeg-6b-3-dep.zip
  jpeg-6b-3-dep.zip
+
:jpeg-6b-3-lib.zip
  jpeg-6b-3-lib.zip
 
  
 
[http://sourceforge.net/project/showfiles.php?group_id=23617&package_id=16351 Download tiff]
 
[http://sourceforge.net/project/showfiles.php?group_id=23617&package_id=16351 Download tiff]
 
+
:tiff-3.7.1-bin.zip
  tiff-3.7.1-bin.zip
+
:tiff-3.7.1-dep.zip
  tiff-3.7.1-dep.zip
+
:tiff-3.7.1-lib.zip
  tiff-3.7.1-lib.zip
 
  
 
[http://sourceforge.net/project/showfiles.php?group_id=23617&package_id=16183 Download libpng]
 
[http://sourceforge.net/project/showfiles.php?group_id=23617&package_id=16183 Download libpng]
 +
:libpng-1.2.8-bin.zip
 +
:libpng-1.2.8-dep.zip
 +
:libpng-1.2.8-lib.zip
  
  libpng-1.2.8-bin.zip
+
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>.
  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 ==
 
== Install GNUstep gui ==
Line 262: Line 203:
 
== Install GNUstep back ==
 
== Install GNUstep back ==
  
go in back, and type:
+
cd to core/back and type:
  
 
   ./configure
 
   ./configure
Line 271: Line 212:
  
 
go in a simple gui application (examples/gui a very good starting point), compile and run it. :-)
 
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''
 
''based on a mail from Nicola Pero''
 
= GNUstep .exe installer created  by 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 297: 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 PMS.
+
* WiX Win32 MSI package creation tool.
 
** candle.exe  
 
** candle.exe  
 
<pre>
 
<pre>
Line 315: Line 247:
 
   -out    specify output file (default: write to current directory)
 
   -out    specify output file (default: write to current directory)
 
   -pedantic:<level>  pedantic checks (levels: easy, heroic, legendary)
 
   -pedantic:<level>  pedantic checks (levels: easy, heroic, legendary)
  -ss      suppress schema validation of documents (performance boost)
 
  -ust    use small table definitions (for backwards compatiblity)
 
  -trace  show source trace for errors, warnings, and verbose messages
 
  -ext    extension (class, assembly), should extend CompilerExtension
 
  -zs      only do validation of documents (no output)
 
  -wx      treat warnings as errors
 
  -w<N>    set the warning level (0: show all, 3: show none)
 
  -sw      suppress all warnings (same as -w3)
 
  -sw<N>  suppress warning with specific message ID
 
  -v      verbose output (same as -v2)
 
  -v<N>    sets the level of verbose output (0: most output, 3: none)
 
  -?      this help information
 
  
 
<snip>
 
<snip>
Line 334: Line 254:
 
C:\tmp>
 
C:\tmp>
 
</pre>
 
</pre>
 +
 
** light.exe
 
** light.exe
 
<pre>
 
<pre>
Line 348: Line 269:
 
   -b        base path to locate all files (default: current directory)
 
   -b        base path to locate all files (default: current directory)
 
   -cc        path to cache built cabinets (will not be deleted after linking)
 
   -cc        path to cache built cabinets (will not be deleted after linking)
  -ext      extension (class, assembly), should extend SchemaExtension or Bin
+
 
erExtension
 
  -fv        add a 'fileVersion' entry to the MsiAssemblyName table (rarely ne
 
ded)
 
  -i        specify the base output path for uncompressed images (default: -o
 
t parameter)
 
  -loc      read localization string sfrom .wxl file
 
  -nologo    skip printing light logo information
 
  -notidy    do not delete temporary files (useful for debugging)
 
  -reusecab  reuse cabinets from cabinet cache
 
  -out      specify output file (default: write to current directory)
 
  -xo        output xml instead of MSI format
 
  -pedantic:<level>  pedantic checks (levels: easy, heroic, legendary)
 
  -reusecab  reuse cabinets from cabinet cache
 
  -sa        suppress assemblies: do not get assembly name information for ass
 
mblies
 
  -sacl      suppress resetting ACLs (useful when laying out image to a networ
 
share)
 
  -sadmin    suppress default admin sequence actions
 
  -sadv      suppress default adv sequence actions
 
  -sa        suppress assemblys: do not get assembly name information for asse
 
blies
 
  -sf        suppress files: do not get any file information (equivalent to -s
 
and -sh)
 
  -sh        suppress file info: do not get hash, version, language, etc
 
  -sl        suppress layout
 
  -ss        suppress schema validation of documents (performance boost)
 
  -sui      suppress default UI sequence actions
 
  -sv        suppress intermediate file version mismatch checking
 
  -ts        tag sectionId attribute on tuples (ignored if not used with -xo)
 
  -ust      use small table definitions (for backwards compatiblity)
 
  -wx        treat warnings as errors
 
  -w<N>      set the warning level (0: show all, 3: show none)
 
  -sw        suppress all warnings (same as -w3)
 
  -sw<N>    suppress warning with specific message ID
 
  -v        verbose output (same as -v2)
 
  -v<N>      sets the level of verbose output (0: most output, 3: none)
 
  -?        this help information
 
 
<snip>
 
<snip>
  
Line 392: Line 276:
 
C:\tmp>
 
C:\tmp>
 
</pre>
 
</pre>
 +
* makefile for nmake.
 
* gcc win32 compiler from MingW.
 
* gcc win32 compiler from MingW.
  
 
=== Checkout gnustep.wxs ===
 
=== Checkout gnustep.wxs ===
 
=== overview of gnustep.wxs ===
 
=== overview of gnustep.wxs ===
 +
 +
[[Category:Microsoft Windows]]

Latest revision as of 21:27, 9 December 2013

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 [1].

./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