[[TOC]] == An overview of the dependencies required for building with MingW == We would like use a simplified approach with pre-built libraries for all the GRASS dependencies but for the moment compiling many of the dependencies is required in order to have the proper files for grass. Still, a few steps are eliminated if compilation is done within the '''OSGeo4W''' directory structure. === Install the OSGeo4W directory structure === OSGeo4W has several of the required dependencies for compiling GRASS: 1. Download the '''OSGeo4W installer''' from [http://download.osgeo.org/osgeo4w/osgeo4w-setup.exe here]. 2. Run the installer. 3. Select Advanced Install, and Next. 4. Set the install directory to c:\OSGeo4W (other directories or fine if there are no spaces in the path but make sure to adjust the instructions below (?)) 5. Select '''grass''' from the desktop section (this is a binary but we'll compile from source later). 6. Also select: * '''avce00''' * '''fftw-devel''' * '''freetype-devel''' * '''freetype-devel-mingw''' * '''gpsbabel''' * '''gsl-libs''' * '''gsl-devel''' * '''libpng-devel''' * '''libpng-devel-mingw''' * '''libtiff-devel''' * '''libxdr''' * '''mingw-libs''' (contains mingw-style libraries for VC build binaries and depends on gdal, libpq, libjpeg-devel, sqlite3, libtiff, zlib, proj) * '''pdcurses-devel''' * '''tcltk-devel''' * '''zlib-devel''' 7. Click next, the selected packages and their required subpackages will be downloaded and installed automatically. === Install the environment for compilation (MingW) === 1. Run msys (there should be an icon on the desktop) 2. type: {{{ mkdir /c/osgeo4w/apps/msys/osgeo4w }}} 3. Copy c:\osgeo4w\apps\msys\etc\fstab.sample to c:\osgeo4w\apps\msys\etc\fstab (without .sample) 4. Open c:\osgeo4w\apps\msys\etc\fstab 5. At line 16, change: {{{ c:/mingw /mingw c:/ActiveState/perl /perl }}} To: {{{ c:/osgeo4w/ /osgeo4w }}} 6. Download the MinGW packages: * '''mingw-runtime''' from [http://downloads.sourceforge.net/mingw/mingwrt-3.15.2-mingw32-dev.tar.gz here] * '''mingw32-make''' from [http://downloads.sourceforge.net/mingw/mingw32-make-3.81-20080326-3.tar.gz here] * '''gcc-core''' from [http://downloads.sourceforge.net/mingw/gcc-core-3.4.5-20060117-3.tar.gz here] * '''gcc-g++''' from [http://downloads.sourceforge.net/mingw/gcc-g++-3.4.5-20060117-3.tar.gz here] * '''w32api''' from [http://downloads.sourceforge.net/mingw/w32api-3.13-mingw32-dev.tar.gz here] * '''mingw-utils''' from [http://downloads.sourceforge.net/mingw/mingw-utils-0.3.tar.gz here] * '''bin-utils''' from [http://downloads.sourceforge.net/mingw/binutils-2.19.1-mingw32-bin.tar.gz here] 7. Unpack all to c:\osgeo4w === Pre-built Binaries === Download: * '''flex''' from [http://downloads.sourceforge.net/gnuwin32/flex-2.5.4a-1-bin.zip here] * '''bison''' from [http://downloads.sourceforge.net/gnuwin32/bison-2.1-bin.zip here] * '''bison-deps''' from [http://downloads.sourceforge.net/gnuwin32/bison-2.1-dep.zip here] * '''regex''' from [http://downloads.sourceforge.net/gnuwin32/regex-2.7-bin.zip here] * '''gettext-bin''' from [http://downloads.sourceforge.net/gnuwin32/gettext-0.14.4-bin.zip here] * '''gettext-lib''' from [http://downloads.sourceforge.net/gnuwin32/gettext-0.14.4-lib.zip here] * '''libintl-bin''' from [http://downloads.sourceforge.net/gnuwin32/libintl-0.14.4-bin.zip here] * '''libintl-lib''' from [http://downloads.sourceforge.net/gnuwin32/libintl-0.14.4-lib.zip here] Unpack all to c:\osgeo4w === Compiling and Installing GRASS (6.4.0) === 1. Download the latest GRASS 6.4.0 source code from [http://grass.osgeo.org/grass64/source/snapshot/ here]. 2. Unpack to c:\osgeo4w\usr\src 3. Open c:\osgeo4w\usr\src\grass64\mswindows\osgeo4w\package.sh and at line 12: Change: {{{ --with-libs="/c/OSGeo4W/lib /c/MinGW/lib" \ --with-includes="/c/OSGeo4W/include /c/MinGW/include" \ }}} to: {{{ --with-libs=/c/OSGeo4W/lib \ --with-includes=/c/OSGeo4W/include \ }}} 5. To compile, type in MSYS console: {{{ export PATH="/osgeo4w/bin:$PATH" cd /osgeo4w/usr/src/grass-6.4xxx (change to dir of the version you downloaded) ./mswindows/osgeo4w/package.sh }}} When finished, you should have the following compilation log (c:\osgeo4w\usr\src\grass-6.4xxx\error.log): {{{ GRASS GIS compilation log ------------------------- Started compilation: Mon Feb 16 10:11:17 GMT 2009 -- Errors in: /usr/local/src/grass-6.4.0/raster/r.li/r.li.daemon /usr/local/src/grass-6.4.0/raster/r.li/r.li.edgedensity /usr/local/src/grass-6.4.0/raster/r.li/r.li.patchdensity /usr/local/src/grass-6.4.0/raster/r.li/r.li.patchnum /usr/local/src/grass-6.4.0/raster/r.li/r.li.shape /usr/local/src/grass-6.4.0/raster/r.li/r.li.simpson /usr/local/src/grass-6.4.0/raster/r.li/r.li.shannon /usr/local/src/grass-6.4.0/raster/r.li/r.li.mps /usr/local/src/grass-6.4.0/raster/r.li/r.li.mpa /usr/local/src/grass-6.4.0/raster/r.li/r.li.padcv /usr/local/src/grass-6.4.0/raster/r.li/r.li.padsd /usr/local/src/grass-6.4.0/raster/r.li/r.li.padrange /usr/local/src/grass-6.4.0/raster/r.li/r.li.cwed /usr/local/src/grass-6.4.0/raster/r.li/r.li.richness /usr/local/src/grass-6.4.0/raster/r.li/r.li.dominance -- In case of errors please change into the directory with error and run 'make'. If you get multiple errors, you need to deal with them in the order they appear in the error log. If you get an error building a library, you will also get errors from anything which uses the library. -- Finished compilation: Mon Feb 16 10:11:17 GMT 2009 make: *** [default] Error 1 }}} Currently r.li.* cannot be compiled on Windows. 6. Because of these errors in the install script stops. To finish it type: {{{ make install }}} Now GRASS should be installed in c:\osgeo4w\apps\grass-6.4.0\ === Usage === To start grass use the icon on the desktop. OR, if you want to be able to use the command line from within grass, you'll need a different start-up file. 1. Open '''C:\OSGeo4W\apps\grass\bin\grass64''' and at line 24 add: {{{ # Set the PYTHONPATH PYTHONPATH="$GISBASE/etc/python:$PYTHONPATH" }}} 2. To start grass, type in MSYS console: {{{ /osgeo4w/apps/grass/bin/grass64 }}} Or to use the new wxpython GUI: {{{ /osgeo4w/apps/grass/bin/grass64 -wxpython }}} === TODO === Describe installations of: * other deps? * fix GDAL build instructions == Building with MS Visual Studio == * See [wiki:CompileOnWindowsMSVC] == See also == * [http://trac.osgeo.org/osgeo4w/wiki/pkg-grass GRASS package page in OSGeo4W] (including [http://trac.osgeo.org/osgeo4w/wiki/pkg-grass#PackagerNotes packaging notes]) * [wiki:BuildingOnWindows Develop your own GRASS modules on MS-Windows] * http://wiki.qgis.org/qgiswiki/BuildingFromSource by QGIS Team * http://www.webalice.it/marco.pasetti/grass/BuildFromSource.html by Marco Pasetti * http://www.webalice.it/marco.pasetti/qgis+grass/BuildFromSource.html by Marco Pasetti