Files
gnucash/packaging/win32
Christian Stimming 67ac544ffa Win32 build: Disable debug output of r22877 again as it does not seem necessary anymore.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@22890 57a11ea4-9604-0410-9ed3-97b8803252fd
2013-04-08 10:23:04 +00:00
..
2011-03-23 17:28:24 +00:00
2011-03-23 17:48:57 +00:00
2011-04-12 23:52:51 +00:00
2011-04-12 23:52:51 +00:00

These scripts try to download and install a Windows/mingw32 build
environment for GnuCash on Windows.

Note: The mingw homepage is http://www.mingw.org. You can read more
      about mingw over there. The packages to download are all
      on sourceforge however, so the direct links are given here.

These scripts support two ways to build a Windows/mingw32 version of GnuCash:
- directly on a Windows PC
- via cross-compilation on Linux

1. Build GnuCash directly on a Windows PC
-----------------------------------------

Before you start with the automated build, you have to complete these
steps manually. The directory variables are set in `defaults.sh' and optionally
`custom.sh'.

Note: when installing software as asked below, avoid using paths
      with spaces. Some parts of the build system don't cope well
      with spaces. So don't install in c:\Program Files. The build
      system by default assumes c:\soft as base directory
      called $GLOBAL_DIR from now on).
      
* Download and install git for windows from http://git-scm.com/downloads.
  This will install some git related items in the Windows Explorer
  context menus (you can access them via right-click in any directory)
  
* Choose a spot where you want to store a copy of the GnuCash repository.
  The default path is $GLOBAL_DIR\gnucash\repos.
  Reminder: avoid pathnames with spaces in it.

* Create all directories in the path except the last one. For the example,
  make sure $GLOBAL_DIR\gnucash exists
  
* Open a Windows explorer and go to $GLOBAL_DIR\gnucash (or your chosen location)

* Right-click. In the popup select git bash. This will open a command prompt.

* Enter: git clone git://github.com/Gnucash/gnucash.git repos
  The last part should be what you chose the call the directory to store the
  copy of the GnuCash repository.

* Download MSYS from
  https://sourceforge.net/projects/mingw/files/MSYS%20Base%20System/msys-1.0.11/MSYS-1.0.11.exe/download
  to $DOWNLOAD_DIR
  Note: there may be a more recent version available when you read this, use
        whatever version that is available. BUT: be sure to use MSYS-xyz.exe
        (ie the MSYS installer) and not the *bin.tar.lzma. I got confused
        the first time I tried, because directory msys-1.0.12 existed on
        sourceforge, but it didn't have the windows installer. You should
        use the installer, not try to unpack the -bin.tar.lzma files. So
        choose whatever version that has got an installer.

* Install MSYS into $MSYS_DIR.

* Download mingwPORT's wget from
  https://sourceforge.net/projects/mingw/files/mingwPORT/Current%20Releases/wget-1.9.1-mingwPORT.tar.bz2/download
  to $DOWNLOAD_DIR
  Note: the version number may have changed when you try this. Use whatever version
        that is available

* Via Windows Explorer go to <your-repos-dir>\packaging\win32

* Look at defaults.sh and create a file named custom.sh to specify adapted directory
  variables.
  
  - If you used a path to your GnuCash repository other than the default
    $GLOBAL_DIR\gnucash\repos, you should at least specify REPOS_DIR in here.
  - Also if you want the build system to reuse git you have just installed,
    you can specify the path to git's installation location via GIT_DIR
  - If you want verbose output of any script step, add "set -x" to that file.

* Either, download Qt from http://www.trolltech.com/developer/downloads/qt/windows,
  install it and set QTDIR in custom.sh, like "QTDIR=/c/Qt/4.2.3"; or skip building
  the AqBanking Setup Wizard by specifying "AQBANKING_WITH_QT=no".

Start/Enter any MSYS shell window. Let the automated build begin by:

  $INSTALLER_DIR/install.sh

Good luck!

To generate a self-installing setup.exe file that contains
*everything*, run the following command after install.sh has
completed:

  $INSTALLER_DIR/dist.sh
  
  
  Note: if you didn't download and install Qt earlier, this command will fail
        regardless of whether you disabled AQ_BANKING_WITH_QT or not. This is
        a bug in the configuration script for the installer builder (issc).

More information is collected on http://wiki.gnucash.org/wiki/Windows


2. Cross-compile GnuCash/win32 on a linux PC
--------------------------------------------

Cross-compiling a Windows/mingw32 executable of GnuCash on a Linux
host system. (Note: This used to work unchangedly in Sept'2006 but
probably not any longer.)

These steps need to be performed:

1. Look at defaults.sh and create a file named custom.sh to specify adapted
   directory variables.  If you want verbose output of any script
   step, add "set -x" to that file. Particularly for cross-compiling,
   set these variables:
   * cross_compile: should be set to yes
   * GLOBAL_DIR: the base directory for all other directory definitions,
     unless you explicitly override it for some directories.
   * MINGW_DIR: set this to your preferred prefix of the mingw32 gcc/binutils
     on your Linux installation.
     (It is strongly recommended to choose a prefix different
      from your normal compiler tool chain in order to distinguish
      your native vs. cross compiler more easily.) 

2. Then run the script create_cross_mingw.sh - it will
   download, compile, and install a mingw32 tool chain.

3. Download a binary windows packages for "guile" e.g. from
   http://www.tu-harburg.de/~et2cs/gnc/ and unpack it into the
   directory $GUILE_DIR as given in defaults.sh. (This is done because
   the build system for guile doesn't support cross-compiling.)

4. Call install.sh, which will read the directory settings from
   defaults.sh/custom.sh. It should download, compile, and install everything
   automatically. Eventually the windows gnucash is installed into
   $GNUCASH_DIR. 

5. The content of $GNUCASH_DIR (as well as all the other binary
   packages) should then be copied to a windows machine. The paths
   in $GNUCASH_DIR/bin/gnucash and/or $GNUCASH_DIR/bin/gnucash.cmd
   need to be adjusted for the installation location on the
   windows machine.

Good luck!