Difference between revisions of "Installation on Windows"

From GNUstepWiki
Jump to navigation Jump to search
(Some troubleshooting help)
(17 intermediate revisions by 6 users not shown)
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.1.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 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 135: Line 151:
  
 
== 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 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] =
 
Using the binary installer is the easiest way to get the GNUstep developement libraries to your PC. Unfortunately the releases are very sporadic.
 
 
== install instruction ==
 
* Download [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows gnustep installer] and run it.
 
* select install binaries
 
Now you have an MSYS environment (minimal GNU with shell and basic programs). You can start the shell via "Start &rarr; Programs &rarr; GNUstep Developement &rarr; MSYS for GNUstep" and begin programming.
 
 
To start you could download the gnustep examples package:
 
svn co svn://svn.gna.org/svn/gnustep/modules/usr-apps/examples
 
cd examples/gui/GSTest
 
make
 
openapp ./GSTest.app
 
 
Have much fun!
 
  
 
= GNUstep MSI installer created  by [http://wix.sourceforge.net/ WiX]  =
 
= GNUstep MSI installer created  by [http://wix.sourceforge.net/ WiX]  =
Line 278: 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 330: Line 281:
 
=== Checkout gnustep.wxs ===
 
=== Checkout gnustep.wxs ===
 
=== overview of gnustep.wxs ===
 
=== overview of gnustep.wxs ===
 +
 +
[[Category:Microsoft Windows]]

Revision as of 22:56, 7 June 2010

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