<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://grasswiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%E2%9A%A0%EF%B8%8FKyngchaos</id>
	<title>GRASS-Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://grasswiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%E2%9A%A0%EF%B8%8FKyngchaos"/>
	<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/wiki/Special:Contributions/%E2%9A%A0%EF%B8%8FKyngchaos"/>
	<updated>2026-06-01T13:17:35Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Packaging_on_MacOSX&amp;diff=9583</id>
		<title>Packaging on MacOSX</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Packaging_on_MacOSX&amp;diff=9583"/>
		<updated>2009-09-22T14:00:46Z</updated>

		<summary type="html">&lt;p&gt;⚠️Kyngchaos: /* wxPython */ 6.4/6.5 differences&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MoveToTrac}}&lt;br /&gt;
Notes on packaging GRASS for distribution on Mac OS X.  This applies to the Mac OS X application build (&amp;lt;code&amp;gt;--enable-macosx-app&amp;lt;/code&amp;gt;) only.&lt;br /&gt;
&lt;br /&gt;
The OSX app build includes its own bindist make target, which creates an OSX installer package (instead of the tarball + script that the unix build bindist creates).&lt;br /&gt;
&lt;br /&gt;
== bundling ==&lt;br /&gt;
&lt;br /&gt;
There is also a bundle.make makefile fragment that is included in the main OSX makefile that is customizable to bundle dependencies and helpers into the application package, to make the app more portable to other OSX systems (so the user doesn't have to install them themselves).  See bundle.make comments for details on install commands and destination paths.&lt;br /&gt;
&lt;br /&gt;
A couple examples are included in bundle.make.  Here are more.&lt;br /&gt;
&lt;br /&gt;
=== wxPython ===&lt;br /&gt;
&lt;br /&gt;
wxPython is a good one to bundle, because a python module may directly link a wx library, and the binary distribution of wxPython uses a different path for each version, ''and'' the installer will destroy previous versions.  ie:&lt;br /&gt;
&lt;br /&gt;
 /usr/local/lib/wxPython-unicode-2.8.10.1/lib&lt;br /&gt;
&lt;br /&gt;
There are a couple different parts to copy. Plus, the GRASS startup script needs one change (this is done by the additions to bundle.make).  In bundle.make, first, add this before the &amp;lt;tt&amp;gt;bundle-macosx:&amp;lt;/tt&amp;gt; line (change the wx version to match what you have installed):&lt;br /&gt;
&lt;br /&gt;
 WXPREFIX=/usr/local/lib/wxPython-unicode-2.8.10.1&lt;br /&gt;
&lt;br /&gt;
Then in the &amp;lt;tt&amp;gt;bundle-macosx:&amp;lt;/tt&amp;gt; section (make sure to indent all lines with &amp;lt;tt&amp;gt;&amp;lt;tabs&amp;gt;&amp;lt;/tt&amp;gt;), you may need to change the library versions to match what you have installed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	${INSTALL} ${WXPREFIX}/lib/libwx_macud-2.8.0.dylib ${INST_DIR_TARGET}/lib&lt;br /&gt;
	${INSTALL} ${WXPREFIX}/lib/libwx_macud_gl-2.8.0.dylib ${INST_DIR_TARGET}/lib&lt;br /&gt;
	${INSTALL} ${WXPREFIX}/lib/libwx_macud_stc-2.8.0.dylib ${INST_DIR_TARGET}/lib&lt;br /&gt;
	${INSTALL} ${WXPREFIX}/lib/libwx_macud_gizmos-2.8.0.dylib ${INST_DIR_TARGET}/lib&lt;br /&gt;
	${INSTALL} ${WXPREFIX}/lib/libwx_macud_gizmos_xrc-2.8.0.dylib ${INST_DIR_TARGET}/lib&lt;br /&gt;
	cp -Rfp ${WXPREFIX}/lib/python2.5/site-packages/wx-2.8-mac-unicode/wx ${INST_DIR_TARGET}/etc/python&lt;br /&gt;
	cp -Rfp ${WXPREFIX}/lib/python2.5/site-packages/wx-2.8-mac-unicode/wxPython ${INST_DIR_TARGET}/etc/python&lt;br /&gt;
	cp -fp ${WXPREFIX}/lib/python2.5/site-packages/wxversion.py ${INST_DIR_TARGET}/etc/python&lt;br /&gt;
	sed -i '' -e 's/^GRASS_WXBUNDLED=.*/GRASS_WXBUNDLED=1/' ${INST_DIR_TARGET}/grass.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This applies to GRASS 6.5 and 7.  For GRASS 6.4, change all &amp;lt;tt&amp;gt;INST_DIR_TARGET&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;MACOSX_BUNDLE_PREFIX&amp;lt;/tt&amp;gt; above.&lt;br /&gt;
&lt;br /&gt;
Note: wxPython's version checking doesn't work in a bundled environment, so the &amp;lt;tt&amp;gt;GRASS_WXBUNDLED&amp;lt;/tt&amp;gt; flag is set in the startup script (that's what the sed line above does) to tell the GUI startup to skip the wx version check.&lt;/div&gt;</summary>
		<author><name>⚠️Kyngchaos</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Packaging_on_MacOSX&amp;diff=9581</id>
		<title>Packaging on MacOSX</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Packaging_on_MacOSX&amp;diff=9581"/>
		<updated>2009-09-21T03:50:50Z</updated>

		<summary type="html">&lt;p&gt;⚠️Kyngchaos: /* wxPython */ correct install variable, clarify steps&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MoveToTrac}}&lt;br /&gt;
Notes on packaging GRASS for distribution on Mac OS X.  This applies to the Mac OS X application build (&amp;lt;code&amp;gt;--enable-macosx-app&amp;lt;/code&amp;gt;) only.&lt;br /&gt;
&lt;br /&gt;
The OSX app build includes its own bindist make target, which creates an OSX installer package (instead of the tarball + script that the unix build bindist creates).&lt;br /&gt;
&lt;br /&gt;
== bundling ==&lt;br /&gt;
&lt;br /&gt;
There is also a bundle.make makefile fragment that is included in the main OSX makefile that is customizable to bundle dependencies and helpers into the application package, to make the app more portable to other OSX systems (so the user doesn't have to install them themselves).  See bundle.make comments for details on install commands and destination paths.&lt;br /&gt;
&lt;br /&gt;
A couple examples are included in bundle.make.  Here are more.&lt;br /&gt;
&lt;br /&gt;
=== wxPython ===&lt;br /&gt;
&lt;br /&gt;
wxPython is a good one to bundle, because a python module may directly link a wx library, and the binary distribution of wxPython uses a different path for each version, ''and'' the installer will destroy previous versions.  ie:&lt;br /&gt;
&lt;br /&gt;
 /usr/local/lib/wxPython-unicode-2.8.10.1/lib&lt;br /&gt;
&lt;br /&gt;
There are a couple different parts to copy. Plus, the GRASS startup script needs one change (this is done by the additions to bundle.make).  In bundle.make, first, add this before the &amp;lt;tt&amp;gt;bundle-macosx:&amp;lt;/tt&amp;gt; line (change the wx version to match what you have installed):&lt;br /&gt;
&lt;br /&gt;
 WXPREFIX=/usr/local/lib/wxPython-unicode-2.8.10.1&lt;br /&gt;
&lt;br /&gt;
Then in the &amp;lt;tt&amp;gt;bundle-macosx:&amp;lt;/tt&amp;gt; section (make sure to indent all lines with &amp;lt;tt&amp;gt;&amp;lt;tabs&amp;gt;&amp;lt;/tt&amp;gt;), you may need to change the library versions to match what you have installed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	${INSTALL} ${WXPREFIX}/lib/libwx_macud-2.8.0.dylib ${INST_DIR_TARGET}/lib&lt;br /&gt;
	${INSTALL} ${WXPREFIX}/lib/libwx_macud_gl-2.8.0.dylib ${INST_DIR_TARGET}/lib&lt;br /&gt;
	${INSTALL} ${WXPREFIX}/lib/libwx_macud_stc-2.8.0.dylib ${INST_DIR_TARGET}/lib&lt;br /&gt;
	${INSTALL} ${WXPREFIX}/lib/libwx_macud_gizmos-2.8.0.dylib ${INST_DIR_TARGET}/lib&lt;br /&gt;
	${INSTALL} ${WXPREFIX}/lib/libwx_macud_gizmos_xrc-2.8.0.dylib ${INST_DIR_TARGET}/lib&lt;br /&gt;
	cp -Rfp ${WXPREFIX}/lib/python2.5/site-packages/wx-2.8-mac-unicode/wx ${INST_DIR_TARGET}/etc/python&lt;br /&gt;
	cp -Rfp ${WXPREFIX}/lib/python2.5/site-packages/wx-2.8-mac-unicode/wxPython ${INST_DIR_TARGET}/etc/python&lt;br /&gt;
	cp -fp ${WXPREFIX}/lib/python2.5/site-packages/wxversion.py ${INST_DIR_TARGET}/etc/python&lt;br /&gt;
	sed -i '' -e 's/^GRASS_WXBUNDLED=.*/GRASS_WXBUNDLED=1/' ${INST_DIR_TARGET}/grass.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: wxPython's version checking doesn't work in a bundled environment, so the &amp;lt;tt&amp;gt;GRASS_WXBUNDLED&amp;lt;/tt&amp;gt; flag is set in the startup script (that's what the sed line above does) to tell the GUI startup to skip the wx version check.&lt;/div&gt;</summary>
		<author><name>⚠️Kyngchaos</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Packaging_on_MacOSX&amp;diff=9064</id>
		<title>Packaging on MacOSX</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Packaging_on_MacOSX&amp;diff=9064"/>
		<updated>2009-06-15T14:03:05Z</updated>

		<summary type="html">&lt;p&gt;⚠️Kyngchaos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes on packaging GRASS for distribution on Mac OS X.  This applies to the Mac OS X application build (&amp;lt;code&amp;gt;--enable-macosx-app&amp;lt;/code&amp;gt;) only.&lt;br /&gt;
&lt;br /&gt;
The OSX app build includes its own bindist make target, which creates an OSX installer package (instead of the tarball + script that the unix build bindist creates).&lt;br /&gt;
&lt;br /&gt;
== bundling ==&lt;br /&gt;
&lt;br /&gt;
There is also a bundle.make makefile fragment that is included in the main OSX makefile that is customizable to bundle dependencies and helpers into the application package, to make the app more portable to other OSX systems (so the user doesn't have to install them themselves).  See bundle.make comments for details on install commands and destination paths.&lt;br /&gt;
&lt;br /&gt;
A couple examples are included in bundle.make.  Here are more.&lt;br /&gt;
&lt;br /&gt;
=== wxPython ===&lt;br /&gt;
&lt;br /&gt;
wxPython is a good one to bundle, because a python module may directly link a wx library, and the binary distribution of wxPython uses a different path for each version, ''and'' the installer will destroy previous versions.  ie:&lt;br /&gt;
&lt;br /&gt;
 /usr/local/lib/wxPython-unicode-2.8.10.1/lib&lt;br /&gt;
&lt;br /&gt;
There a couple different parts to copy, plus the GRASS startup script needs one change.  In bundle.make, first, add this before the &amp;lt;tt&amp;gt;bundle-macosx:&amp;lt;/tt&amp;gt; line (change the wx version to match what you have installed):&lt;br /&gt;
&lt;br /&gt;
 WXPREFIX=/usr/local/lib/wxPython-unicode-2.8.10.1&lt;br /&gt;
&lt;br /&gt;
Then in the &amp;lt;tt&amp;gt;bundle-macosx:&amp;lt;/tt&amp;gt; section (make sure to indent all lines with &amp;lt;tt&amp;gt;&amp;lt;tabs&amp;gt;&amp;lt;/tt&amp;gt;), you may need to change the library versions to match what you have installed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	${INSTALL} ${WXPREFIX}/lib/libwx_macud-2.8.0.dylib ${MACOSX_BUNDLE_PREFIX}/lib&lt;br /&gt;
	${INSTALL} ${WXPREFIX}/lib/libwx_macud_gl-2.8.0.dylib ${MACOSX_BUNDLE_PREFIX}/lib&lt;br /&gt;
	${INSTALL} ${WXPREFIX}/lib/libwx_macud_stc-2.8.0.dylib ${MACOSX_BUNDLE_PREFIX}/lib&lt;br /&gt;
	${INSTALL} ${WXPREFIX}/lib/libwx_macud_gizmos-2.8.0.dylib ${MACOSX_BUNDLE_PREFIX}/lib&lt;br /&gt;
	${INSTALL} ${WXPREFIX}/lib/libwx_macud_gizmos_xrc-2.8.0.dylib ${MACOSX_BUNDLE_PREFIX}/lib&lt;br /&gt;
	cp -Rfp ${WXPREFIX}/lib/python2.5/site-packages/wx-2.8-mac-unicode/wx ${MACOSX_BUNDLE_PREFIX}/etc/wxpython&lt;br /&gt;
	cp -Rfp ${WXPREFIX}/lib/python2.5/site-packages/wx-2.8-mac-unicode/wxPython ${MACOSX_BUNDLE_PREFIX}/etc/wxpython&lt;br /&gt;
	${INSTALL_DATA} ${WXPREFIX}/lib/python2.5/site-packages/wxversion.py ${MACOSX_BUNDLE_PREFIX}/etc/wxpython&lt;br /&gt;
	sed -i '' -e 's/^GRASS_WXBUNDLED=.*/GRASS_WXBUNDLED=1/' ${MACOSX_BUNDLE_PREFIX}/grass.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
wxPython's version checking doesn't work in a bundled environment, so the &amp;lt;tt&amp;gt;GRASS_WXBUNDLED&amp;lt;/tt&amp;gt; flag is set in the startup script to tell the GUI startup to skip the wx version check.&lt;/div&gt;</summary>
		<author><name>⚠️Kyngchaos</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Packaging_on_MacOSX&amp;diff=9056</id>
		<title>Packaging on MacOSX</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Packaging_on_MacOSX&amp;diff=9056"/>
		<updated>2009-06-12T22:40:39Z</updated>

		<summary type="html">&lt;p&gt;⚠️Kyngchaos: created&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes on packaging GRASS for distribution on Mac OS X.&lt;br /&gt;
&lt;br /&gt;
todo&lt;/div&gt;</summary>
		<author><name>⚠️Kyngchaos</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Compile_and_Install&amp;diff=9055</id>
		<title>Compile and Install</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Compile_and_Install&amp;diff=9055"/>
		<updated>2009-06-12T22:38:11Z</updated>

		<summary type="html">&lt;p&gt;⚠️Kyngchaos: /* Mac OSX */ packaging&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How to do compilation and installation of GRASS 6? ==&lt;br /&gt;
&lt;br /&gt;
Here we explain the procedure to compile GRASS from SVN, but it also applies to official GRASS 6 releases.&lt;br /&gt;
&lt;br /&gt;
''For installation of precompiled binary packages, see the main [[Installation Guide]].''&lt;br /&gt;
&lt;br /&gt;
For detailed information on compilation, please see the [http://grass.itc.it/grass61/source/INSTALL INSTALL] file in the source code.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
GRASS needs at least two extra libraries: PROJ and GDAL/OGR&lt;br /&gt;
&lt;br /&gt;
''Note: if you want to have DBMS support in GDAL (subsequently in GRASS) you have to perform the &amp;quot;Optional&amp;quot; steps below as well.''&lt;br /&gt;
&lt;br /&gt;
* [http://proj.maptools.org PROJ4] for management of projections (with proj-datumgrid-1.3.zip support)&lt;br /&gt;
* Optional: [http://geos.refractions.net GEOS]&lt;br /&gt;
* Optional: [http://www.postgresql.org PostgreSQL], [http://www.mysql.org mySQL], [http://www.unixodbc.org unixODBC], [http://www.sqlite.org SQLite] (SQLite is needed for QGIS)&lt;br /&gt;
* [http://www.gdal.org GDAL/OGR] for reading and writing various GIS data formats (interoperability)&lt;br /&gt;
&lt;br /&gt;
You have to install these two libraries '''first'''.&lt;br /&gt;
&lt;br /&gt;
It is easiest to obtain a prepackaged version of these libraries (e.g., .rpm; .deb) for your particular operating system and run the corresponding package installation (e.g., rpm -Uhv packagename.rpm; apt-get) in a terminal window. Take care to also install the development packages of these libraries (...-devel packages). If there is no prepackage version, then you will have to download the source code (see links above, source code packages usually ends in .tar.gz or .zip) and compile it (you must have a C compiler installed as part of your operating system). The Web sites show the steps to compile the libraries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other libraries needed to run GRASS are listed on the {{website|grass64/source/REQUIREMENTS.html|requirements page}}.&lt;br /&gt;
&lt;br /&gt;
To compile, you will also need the respective &amp;quot;-devel&amp;quot; packages.&lt;br /&gt;
&lt;br /&gt;
=== Generic Compilation and installation procedure ===&lt;br /&gt;
&lt;br /&gt;
* It is wise that compilation processes are carried out as a normal user: If you want to get the source code in a place where  you do not have write permissions (e.g. in /usr/local/src/) just follow this:&lt;br /&gt;
      cd /usr/local/src/ &lt;br /&gt;
      su -c 'mkdir grass6'&lt;br /&gt;
      su -c 'chown yourlogin:yourgroup grass6'&lt;br /&gt;
&lt;br /&gt;
Otherwise if you have permissions just continue as a normal user:&lt;br /&gt;
      cd /usr/local/src/&lt;br /&gt;
      svn checkout ...&lt;br /&gt;
&lt;br /&gt;
* do a code checkout from the SVN source code repository&lt;br /&gt;
: checkout the latest GRASS 6.x from SVN (see: {{twiki|DownloadSource}})&lt;br /&gt;
&lt;br /&gt;
* in the grass6 directory, you will find the precious INSTALL file, open it with your favourite pager/editor and read it carefully!&lt;br /&gt;
&lt;br /&gt;
* run configure with parameters to adapt the compile process to your own system. To see what options can be passed to it, run configure --help. &lt;br /&gt;
&amp;lt;!-- The minimum set of configure parameters is &lt;br /&gt;
      ./configure ### --&amp;gt;&lt;br /&gt;
It may (!) look like this:&lt;br /&gt;
 &lt;br /&gt;
      ./configure \&lt;br /&gt;
          --with-cxx \&lt;br /&gt;
          --with-sqlite \&lt;br /&gt;
          --with-postgres-libs=/usr/include/pgsql/libpq \&lt;br /&gt;
          --with-postgres-includes=/usr/include/pgsql \&lt;br /&gt;
          --with-freetype \&lt;br /&gt;
          --with-freetype-includes=/usr/include/freetype2 \&lt;br /&gt;
          --with-motif \&lt;br /&gt;
          --with-proj-share=/usr/share/proj&lt;br /&gt;
&lt;br /&gt;
You may have to explicitly state the path for certain packages (i.e., gdal). The Unix 'locate' command will come in handy for finding the path of the package you need (you may have to run locate as root ex: sudo locate gdal-config).&lt;br /&gt;
&lt;br /&gt;
Please note that the paths mentioned may widely vary due to the distribution used.&lt;br /&gt;
See [[Compile_and_Install#Platform_Specific_Notes|Platform Specific Notes]] below.&lt;br /&gt;
&lt;br /&gt;
Depending on your needs it may be a good idea to include debugging hooks.&lt;br /&gt;
: See [[GRASS_Debugging#Compile_Time_Setup]].&lt;br /&gt;
 CFLAGS=&amp;quot;-ggdb -Wall -Werror-implicit-function-declaration&amp;quot; ./configure ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At the end of configuration process you should get report not much different from this:&lt;br /&gt;
&lt;br /&gt;
GRASS is now configured for:  i686-pc-linux-gnu&lt;br /&gt;
 &lt;br /&gt;
 Source directory:            /usr/src/grass6&lt;br /&gt;
 Build directory:             /usr/src/grass6&lt;br /&gt;
 Installation directory:      /usr/local/grass-6.3.svn&lt;br /&gt;
 Startup script in directory: ${exec_prefix}/bin&lt;br /&gt;
 C compiler:                  gcc -g -O2 &lt;br /&gt;
 C++ compiler:                c++ -g -O2&lt;br /&gt;
 FORTRAN compiler:            &lt;br /&gt;
 Building shared libraries:   yes&lt;br /&gt;
 64bit support:               no&lt;br /&gt;
 &lt;br /&gt;
  NVIZ:                       yes&lt;br /&gt;
 &lt;br /&gt;
  BLAS support:               no&lt;br /&gt;
  C++ support:                yes&lt;br /&gt;
  DWG support:                no&lt;br /&gt;
  FFMPEG support:             no&lt;br /&gt;
  FFTW support:               yes&lt;br /&gt;
  FreeType support:           yes&lt;br /&gt;
  GDAL support:               yes&lt;br /&gt;
  GLw support:                no&lt;br /&gt;
  JPEG support:               yes&lt;br /&gt;
  LAPACK support:             no&lt;br /&gt;
  Large File Support (LFS):   no&lt;br /&gt;
  Motif support:              no&lt;br /&gt;
  MySQL support:              no&lt;br /&gt;
  NLS support:                no&lt;br /&gt;
  ODBC support:               no&lt;br /&gt;
  OGR support:                yes&lt;br /&gt;
  OpenGL(R) support:          yes&lt;br /&gt;
  PNG support:                yes&lt;br /&gt;
  PostgreSQL support:         yes&lt;br /&gt;
  Readline support:           no&lt;br /&gt;
  SQLite support:             no&lt;br /&gt;
  Tcl/Tk support:             yes&lt;br /&gt;
  TIFF support:               yes&lt;br /&gt;
  X11 support:                yes&lt;br /&gt;
  &lt;br /&gt;
* Let's compile it (takes a little while...)!&lt;br /&gt;
      make&lt;br /&gt;
* At the end, you should get report not much different from this:&lt;br /&gt;
 ----------------------------------------------------------------------&lt;br /&gt;
 Following modules are missing the 'description.html' file in src code:&lt;br /&gt;
 ----------------------------------------------------------------------&lt;br /&gt;
 GRASS GIS compilation log&lt;br /&gt;
 -------------------------&lt;br /&gt;
 Started compilation: Ne kvě 28 13:18:43 CEST 2006&lt;br /&gt;
 --&lt;br /&gt;
 Errors in:&lt;br /&gt;
 --&lt;br /&gt;
 Finished compilation: Ne kvě 28 13:43:40 CEST 2006&lt;br /&gt;
 (In case of errors please change into the directory with error and run 'make')&lt;br /&gt;
&lt;br /&gt;
* If there is any error, change directory to directory with error and run &amp;quot;make&amp;quot; again. Report occuring bug to grass mailing list&lt;br /&gt;
* Once the installation process is finished, you're ready to install GRASS system wide.&lt;br /&gt;
      su -c 'make install'&lt;br /&gt;
* enjoy GRASS: &lt;br /&gt;
      grass63&lt;br /&gt;
&lt;br /&gt;
=== What else? ===&lt;br /&gt;
&lt;br /&gt;
If you want to use [http://www.qgis.org QGIS], then also compile the GRASS-GDAL/OGR plugin. This is also useful to access your GRASS-data&lt;br /&gt;
from other application using GDAL/OGR like [http://thuban.intevation.de thuban].&lt;br /&gt;
* [[Compile and install GRASS and QGIS with GDAL/OGR Plugin]] (enables QGIS to read GRASS data directly)&lt;br /&gt;
&lt;br /&gt;
=== Platform Specific Notes ===&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
&lt;br /&gt;
===== Debian =====&lt;br /&gt;
&lt;br /&gt;
Read the instructions here:&lt;br /&gt;
: http://trac.osgeo.org/grass/browser/grass/branches/develbranch_6/debian/README.debian&lt;br /&gt;
&lt;br /&gt;
   # first install PROJ, then GDAL.&lt;br /&gt;
   cd grass64/&lt;br /&gt;
   # follow instructions in debian/README.debian&lt;br /&gt;
   fakeroot buildpackage&lt;br /&gt;
&lt;br /&gt;
* Official [http://wiki.debian.org/DebianGis DebianGIS] packaging [http://svn.debian.org/viewsvn/pkg-grass/packages/grass/ control files], also accessible via svn:&lt;br /&gt;
  svn co svn://svn.debian.org/svn/pkg-grass/packages/grass/trunk/&lt;br /&gt;
     or&lt;br /&gt;
  svn co svn://svn.debian.org/svn/pkg-grass/packages/grass/branches/&amp;lt;GRASS Version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://hamish.bowman.googlepages.com/debiangisfiles#compile Compiling GRASS 6.1-CVS on Debian/OldStable (aka 3.1, Sarge)]&lt;br /&gt;
&lt;br /&gt;
===== Ubuntu =====&lt;br /&gt;
&lt;br /&gt;
''The above Debian notes will probably work with Ubuntu as well.''&lt;br /&gt;
&lt;br /&gt;
A more  [[Compile_and_Install_Ubuntu | specific page]] towards Ubuntu is being written on.&lt;br /&gt;
&lt;br /&gt;
====== Ubuntu 6.06, 7.10 ======&lt;br /&gt;
&lt;br /&gt;
* [http://david.p.finlayson.googlepages.com/makegrass.sh makegrass.sh] is script designed to automate most of the download, configuration and compilation of GRASS 6.x-CVS&lt;br /&gt;
** it is advised use [https://help.ubuntu.com/community/CheckInstall checkinstall] (''sudo apt-get install checkinstall'') instead of ''make install'' to keep track of installed software &lt;br /&gt;
** Think twice before using this script. Some users experienced problems such as disabled XGL etc.&lt;br /&gt;
* [[User:Steko/Automated_CVS_compiling|Here]] is another of these scripts, it's homemade so probably you'll find the above more useful for production sites.&lt;br /&gt;
&lt;br /&gt;
====== Ubuntu 7.10 64-bit ======&lt;br /&gt;
&lt;br /&gt;
* Compiling latest GRASS source code on a 64-bit machine (with an ATI graphic card) under Ubuntu 7.10 64-bit with support for: 64-bit, SQLite, OpenGL, PYTHON, FFMPEG&lt;br /&gt;
(Based on &amp;quot;Ubuntu 6.06 LTS - GRASS 6.1 Compilation Script&amp;quot; by David Finlayson)&lt;br /&gt;
''Assuming it is the first time attempting to compile GRASS' source code &amp;amp; installing SVN, PROJ, GDAL/OGR''&lt;br /&gt;
&lt;br /&gt;
'''Preparation'''&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
* install dependencies for compiling (in general) and dependencies for GRASS: PROJ, GDAL/OGR&lt;br /&gt;
 sudo apt-get install grass build-essential flex bison libncurses5-dev zlib1g-dev \&lt;br /&gt;
 libjpeg62-dev libgdal1-dev libtiff4-dev libgcc1 libpng12-dev tcl8.4-dev tk8.4-dev fftw3-dev \&lt;br /&gt;
 libfreetype6-dev libavcodec-dev libxmu-dev gdal-bin libreadline5 libreadline5-dev \&lt;br /&gt;
 make python-dev python-wxversion swig&lt;br /&gt;
&lt;br /&gt;
* install SQLite&lt;br /&gt;
 sudo apt-get install sqlite3 libsqlite3-dev&lt;br /&gt;
&lt;br /&gt;
* install SVN&lt;br /&gt;
 sudo apt-get install subversion&lt;br /&gt;
&lt;br /&gt;
* create a directory as a simple user where source code(s) are going to be stored (in our example we use a directory called '''src''' under '''/usr/local''')&lt;br /&gt;
&lt;br /&gt;
 sudo mkdir /usr/local/src&lt;br /&gt;
&lt;br /&gt;
* grant rwx (read-write-execute) permissions for our userid/ groupid on the directory (replace words userid and groupid with real userid):&lt;br /&gt;
 sudo chown ''userid'':''groupid'' /usr/local/src&lt;br /&gt;
&lt;br /&gt;
 sudo chmod ug+rwx /usr/local/src&lt;br /&gt;
&lt;br /&gt;
* download latest source code from GRASS SVN repository in a directory on the system (e.g. /usr/local/src)&lt;br /&gt;
 svn checkout https://svn.osgeo.org/grass/grass/trunk grass_trunk&lt;br /&gt;
&lt;br /&gt;
* Above command places GRASS' source code in '''/usr/local/src/grass_trunk'''. In case of a subsequent update use the command: '''svn up''' from within the grass_trunk directory&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''Before''' attempting to compile GRASS, READ section (C) in the '''INSTALL''' file located in the main directory of GRASS source code entitled:&lt;br /&gt;
'''(C) COMPILATION NOTES for 64bit platforms'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* installing FFTW3 if not already on system&lt;br /&gt;
 sudo apt-get install fftw3 fftw3-dev&lt;br /&gt;
&lt;br /&gt;
====== FFMPEG ======&lt;br /&gt;
* install FFMPEG (information taken from: http://stream0.org/2008/01/install-ffmpeg-on-ubuntu-gutsy.html)&lt;br /&gt;
* download source code with svn&lt;br /&gt;
 svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg&lt;br /&gt;
&lt;br /&gt;
* install dependencies&lt;br /&gt;
 sudo apt-get install liblame-dev libfaad2-dev libfaac-dev libxvidcore4-dev \&lt;br /&gt;
      liba52-0.7.4 liba52-0.7.4-dev libx264-dev libdts-dev checkinstall \&lt;br /&gt;
      build-essential subversion&lt;br /&gt;
&lt;br /&gt;
* guide to ffmpeg directory&lt;br /&gt;
 cd ffmpeg&lt;br /&gt;
&lt;br /&gt;
if necessary: '''make distclean''' before configuration (look at notes below)&lt;br /&gt;
&lt;br /&gt;
* configuration ('''note:''' the configuration parameter &amp;quot;'''--enable-pp'''&amp;quot; does not work anymore)&lt;br /&gt;
 # configure FFMPEG&lt;br /&gt;
 ./configure --enable-gpl --enable-libvorbis --enable-libtheora \&lt;br /&gt;
             --enable-liba52 --enable-libdc1394 --enable-libgsm \&lt;br /&gt;
             --enable-libmp3lame --enable-libfaad --enable-libfaac \&lt;br /&gt;
             --enable-libxvid --enable-pthreads --enable-libx264 \&lt;br /&gt;
             --enable-shared&lt;br /&gt;
&lt;br /&gt;
* compilation&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* installation on /usr/local/bin -- important to remember when configuring GRASS' source code for compilation&lt;br /&gt;
 sudo checkinstall&lt;br /&gt;
&lt;br /&gt;
====== '''go for GRASS!''' ======&lt;br /&gt;
* in our example we used the /usr/local/src directory to store GRASS' source code, so:&lt;br /&gt;
 cd /usr/local/src/grass_trunk&lt;br /&gt;
&lt;br /&gt;
* configuration&lt;br /&gt;
  CFLAGS=&amp;quot;-g -Wall&amp;quot; ./configure --enable-64bit \&lt;br /&gt;
        --with-libs=/usr/lib64 --with-cxx --with-freetype=yes \&lt;br /&gt;
        --with-postgres=no --with-sqlite=yes --enable-largefile=yes \&lt;br /&gt;
        --with-tcltk-includes=/usr/include/tcl8.4 \&lt;br /&gt;
        --with-freetype-includes=/usr/include/freetype2 \&lt;br /&gt;
        --with-opengl-libs=/usr/include/GL --with-readline \&lt;br /&gt;
        --with-python=yes --with-ffmpeg=yes \&lt;br /&gt;
        --with-ffmpeg-includes=/usr/local/include/ffmpeg&lt;br /&gt;
&lt;br /&gt;
*if OpenGL fails then maybe it is necessary to link '''glxATI.h''' with '''glx.h''' and re-run the configuration&lt;br /&gt;
&lt;br /&gt;
 cd /usr/include/GL&lt;br /&gt;
&lt;br /&gt;
 sudo ln glxATI.h glx.h&lt;br /&gt;
&lt;br /&gt;
* compilation&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* compilation is expected to end with a statement similar to the following:&lt;br /&gt;
&lt;br /&gt;
 Started compilation: Wed Feb 27 00:24:36 CET 2008&lt;br /&gt;
 --&lt;br /&gt;
 Errors in:&lt;br /&gt;
 No errors detected.&lt;br /&gt;
&lt;br /&gt;
* installation&lt;br /&gt;
 sudo checkinstall&lt;br /&gt;
&lt;br /&gt;
* launch 64-bit GRASS.6.4.svn&lt;br /&gt;
 grass64&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* in case of errors in future compilation attempts, remember to remove program binaries with&lt;br /&gt;
 make clean&lt;br /&gt;
* and the files created with the &amp;quot;configuration&amp;quot; from previous compilations with&lt;br /&gt;
 make distclean&lt;br /&gt;
&lt;br /&gt;
===== Mandriva =====&lt;br /&gt;
&lt;br /&gt;
Installation of dependencies (urpmi will ask you a few more):&lt;br /&gt;
&lt;br /&gt;
  # as root&lt;br /&gt;
    urpmi flex bison zlib-devel tiff-devel png-devel tcl-devel tk-devel sqlite3-devel \&lt;br /&gt;
          mesagl1-devel mesaglu1-devel libxmu6-devel gcc-c++ swig gettext \&lt;br /&gt;
          lib64wxgtk2.8 lib64wxgtk2.8-devel lib64wxgtkgl2.8 wxgtk2.8 \&lt;br /&gt;
          lib64wxPythonGTK2.8 lib64wxPythonGTK2.8-devel wxPythonGTK wxPythonGTK-wxversion&lt;br /&gt;
    exit&lt;br /&gt;
&lt;br /&gt;
Then (64 bit stuff optional of course):&lt;br /&gt;
  #  as user&lt;br /&gt;
  ./configure \&lt;br /&gt;
    --enable-64bit --with-libs=/usr/lib64 \&lt;br /&gt;
    --with-cxx \&lt;br /&gt;
    --with-gdal=/usr/local/bin/gdal-config \&lt;br /&gt;
    --with-sqlite \&lt;br /&gt;
    --with-nls \&lt;br /&gt;
    --with-python \&lt;br /&gt;
    --with-wxwidgets=/usr/lib/wxPython/bin/wx-config \&lt;br /&gt;
    --with-fftw \&lt;br /&gt;
    --with-ffmpeg --with-ffmpeg-includes=&amp;quot;/usr/include/libav* /usr/include/libpostproc /usr/include/libswscale&amp;quot; \&lt;br /&gt;
    --with-motif \&lt;br /&gt;
    --with-mysql --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib64 \&lt;br /&gt;
    --with-freetype --with-freetype-includes=/usr/include/freetype2 \&lt;br /&gt;
    --enable-largefile&lt;br /&gt;
   &lt;br /&gt;
    make&lt;br /&gt;
&lt;br /&gt;
    su&lt;br /&gt;
    # this will install into /usr/local/&lt;br /&gt;
    make install&lt;br /&gt;
    exit&lt;br /&gt;
&lt;br /&gt;
===== RPM SPEC files =====&lt;br /&gt;
&lt;br /&gt;
* ... can be found in the source code, rpm/ directory, &lt;br /&gt;
* or [http://teodori.org/repository/grass.html openSuSe]&lt;br /&gt;
* or [http://grass.itc.it/grass62/binary/linux/fedora_specs/ Fedora]&lt;br /&gt;
* or [http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/grass/ Mandriva 2008] or [http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/grass/current/SPECS/ Mandriva Cooker] (there are also [http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/proj/ proj4], [http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/geos/ geos], [http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/gdal/ gdal], [http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/gdal-grass/ gdal-grass-plugin], [http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/qgis/ qgis] etc)&lt;br /&gt;
&lt;br /&gt;
===== Zaurus =====&lt;br /&gt;
&lt;br /&gt;
... see [http://wiki.debian.org/?GrassGISonZaurus here] for instructions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Mac OSX ====&lt;br /&gt;
&lt;br /&gt;
* see the source/macosx readme&lt;br /&gt;
* also see [[Compiling on MacOSX]]&lt;br /&gt;
* some notes on [[Packaging on MacOSX]]&lt;br /&gt;
&lt;br /&gt;
==== Solaris ====&lt;br /&gt;
&lt;br /&gt;
* ''2008 Oct 15'': see [http://lists.osgeo.org/pipermail/grass-user/2008-October/047093.html this post on the grass mailing list]&lt;br /&gt;
&lt;br /&gt;
===== 10 SPARC/i86pc =====&lt;br /&gt;
&lt;br /&gt;
* get gcc compiler and tools. There are several sources: Solaris Companion CD (SFW pkg, installs in /opt/sfw/), Blastwave ([http://www.blastwave.org], CSW pkg, installs in /opt/csw/) or Sunfreeware ([http://www.sunfreeware.com], SMC pkg, installs in /usr/local/). &lt;br /&gt;
Needed Packages from Sunfreeware: SMCbinut, SMCbison, SMCcoreu, SMCfindu, SMCflex, SMCgawk, SMCgcc, SMCgrep, SMCgzip, SMCless, SMClibt, SMClicon, SMCmake, SMCncurs, SMCproj, SMCsed, SMCtar, SMCtcl, SMCtiff, SMCtk, SMCunzip, SMCzlib. &lt;br /&gt;
&lt;br /&gt;
* compile and install fftw-library ([http://www.fftw.org]). You need to re-compile the library with: &lt;br /&gt;
&lt;br /&gt;
      ./configure --with-pic --enable-shared; make ; make install. &lt;br /&gt;
&lt;br /&gt;
The pre-built packages don't work. &lt;br /&gt;
&lt;br /&gt;
* compile and install gdal library (see documentation of gdal, [http://www.gdal.org]).&lt;br /&gt;
&lt;br /&gt;
* compile and install any additional libraries (e. g. GEOS, [http://geos.refractions.net]). &lt;br /&gt;
&lt;br /&gt;
* set compiler flags and path. e. g.: &lt;br /&gt;
&lt;br /&gt;
      # on ultra-sparc machine:&lt;br /&gt;
      CFLAGS=&amp;quot;-O3 -mcpu=v9&amp;quot;&lt;br /&gt;
      CXXFLAGS=&amp;quot;-O3 -mcpu=v9&amp;quot;&lt;br /&gt;
      PATH=&amp;quot;/usr/local/bin:/opt/sfw/bin:/usr/ccs/bin:/usr/bin:/usr/sbin&amp;quot;&lt;br /&gt;
      export CFLAGS CXXFLAGS PATH&lt;br /&gt;
&lt;br /&gt;
Path has to be changed for the packages (Sunfreeware: /usr/local/bin, Solaris Companion: /opt/sfw/bin, Blastwave: /opt/csw/bin). &lt;br /&gt;
&lt;br /&gt;
* Next configure, e. g.: &lt;br /&gt;
&lt;br /&gt;
      ./configure --with-postgres-includes=/usr/include/pgsql/ \&lt;br /&gt;
      --with-postgres-libs=/usr/lib --with-postgres=yes \&lt;br /&gt;
      --with-includes=/usr/local/include/ncurses&lt;br /&gt;
&lt;br /&gt;
If you use n(ew)curses, you have to include the path /usr/local/include/ncurses. &lt;br /&gt;
&lt;br /&gt;
then:&lt;br /&gt;
&lt;br /&gt;
      make&lt;br /&gt;
      su&lt;br /&gt;
      make install&lt;br /&gt;
&lt;br /&gt;
If the shared libraries are not found at runtime of the modules, use 'crle' to add the paths of the libraries for the dynamic linker, e. g. as root:&lt;br /&gt;
&lt;br /&gt;
      crle -l /lib:/usr/lib:/usr/local/lib:/opt/sfw/lib:/usr/X11/lib&lt;br /&gt;
&lt;br /&gt;
Be careful not to omit a library path, the system may be unusable if you forget the /lib path.&lt;br /&gt;
&lt;br /&gt;
==== MS-Windows ====&lt;br /&gt;
&lt;br /&gt;
===== MS-Windows/Cygwin =====&lt;br /&gt;
&lt;br /&gt;
... see [http://grass.itc.it/platforms/wingrass.html here] (should be moved to the Wiki)&lt;br /&gt;
&lt;br /&gt;
===== MS-Windows/native =====&lt;br /&gt;
&lt;br /&gt;
====== Compile ======&lt;br /&gt;
&lt;br /&gt;
* [http://www.webalice.it/marco.pasetti/grass/BuildFromSource.html GRASS Windows Native Binary Building Guide] (GRASS 6.3.x)&lt;br /&gt;
* [http://trac.osgeo.org/grass/wiki/CompileOnWindows GRASS Windows Native Binary Building Guide] (GRASS 6.4.x)&lt;br /&gt;
* See/adapt [http://blog.qgis.org/node/124 idea] for unattended install of QGIS (et al) from [http://trac.osgeo.org/osgeo4w/ OSGeo4W] from the QuantumGIS Blog.&lt;br /&gt;
&lt;br /&gt;
See also [[WinGRASS Current Status]] for latest updates.&lt;br /&gt;
&lt;br /&gt;
=== Common problems and solutions ===&lt;br /&gt;
&lt;br /&gt;
During compilation, error can occur if certain packages are not installed. Here a list of problems with solution:&lt;br /&gt;
&lt;br /&gt;
* error: X11/Xlib.h: No such file or directory&lt;br /&gt;
** this suggests that you don't have the X headers installed&lt;br /&gt;
** Solution: Install the libx11-dev package&lt;br /&gt;
&lt;br /&gt;
=== Optimization ===&lt;br /&gt;
&lt;br /&gt;
GCC and other compilers support [http://gcc.gnu.org/onlinedocs/gcc-4.3.3/gcc/Optimize-Options.html#Optimize-Options optimization]&lt;br /&gt;
&lt;br /&gt;
If you would like to set compiler optimisations, for a possibly faster binary, type (don't enter a &amp;quot;;&amp;quot; anywhere):&lt;br /&gt;
&lt;br /&gt;
        CFLAGS=-O ./configure&lt;br /&gt;
or,&lt;br /&gt;
        setenv CFLAGS -O&lt;br /&gt;
        ./configure&lt;br /&gt;
&lt;br /&gt;
whichever works on your shell. Use -O2 instead of -O if your compiler supports this (note: O is the letter, not zero). Using the &amp;quot;gcc&amp;quot; compiler, you can also specify processor specific flags (examples, please suggest better settings to us):&lt;br /&gt;
&lt;br /&gt;
  CFLAGS=&amp;quot;-mcpu=athlon -O2&amp;quot; # AMD Athlon processor with code optimisations&lt;br /&gt;
  CFLAGS=&amp;quot;-march=amdfam10&amp;quot;  # AMD Phenom II X4 64bit processor with gcc &amp;gt;=4.3&lt;br /&gt;
  CFLAGS=&amp;quot;-mcpu=pentium&amp;quot;    # Intel Pentium processor&lt;br /&gt;
  CFLAGS=&amp;quot;-mcpu=pentium4&amp;quot;   # Intel Pentium4 processor&lt;br /&gt;
  CFLAGS=&amp;quot;-O2 -msse -msse2 -mfpmath=sse -minline-all-stringops&amp;quot; # Intel XEON 64bit processor&lt;br /&gt;
  CFLAGS=&amp;quot;-mtune=nocona -m64 -minline-all-stringops&amp;quot;            # Intel Pentium 64bit processor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To find out optional CFLAGS for your platform, enter:&lt;br /&gt;
  gcc -dumpspecs&lt;br /&gt;
&lt;br /&gt;
See also: http://gcc.gnu.org/&lt;br /&gt;
&lt;br /&gt;
A real fast GRASS version (and small binaries) will be created with LDFLAGS set to &amp;quot;stripping&amp;quot; (but this disables debugging):&lt;br /&gt;
&lt;br /&gt;
  CFLAGS=&amp;quot;-O2 -mcpu=&amp;lt;cpu_see_above&amp;gt; -Wall&amp;quot; LDFLAGS=&amp;quot;-s&amp;quot; ./configure&lt;br /&gt;
&lt;br /&gt;
=== Configure options and their meanings ===&lt;br /&gt;
&lt;br /&gt;
For configure there are many options and some GRASS modules are built only if some options are set. Here are listed common configuration options with short explanation.&lt;br /&gt;
&lt;br /&gt;
* --prefix=/path - Sets path where GRASS will be installed. GRASS will reside in /path/grass-version.&lt;br /&gt;
* --enable-largefile - Enables large (&amp;gt;2Gb on 32bit systems) support. For current large file support status look at [[Large File Support]] page.&lt;br /&gt;
* --with-cxx - Enables compilation of C++ code. Required for r.terraflow module.&lt;br /&gt;
* --with-readline - Enables readline support. If readline is enabled, you can use its history/editing facilities when entering r.mapcalc expressions on stdin.&lt;br /&gt;
* --with-glw - Enables GLw support. The GLw library provides OpenGL &amp;quot;canvas&amp;quot; widgets for Athena and Motif. &lt;br /&gt;
 &lt;br /&gt;
 That switch is unnecessary for normal compilation. It's only&lt;br /&gt;
 required for r3.showdspf, which isn't normally built; if you &lt;br /&gt;
 want it, you have build it manually &lt;br /&gt;
 (e.g. &amp;quot;make -C raster3d/r3.showdspf&amp;quot;).&lt;br /&gt;
 As similar functionality is now provided by NVIZ, r3.showdspf&lt;br /&gt;
 is deprecated.&lt;br /&gt;
 r3.showdspf uses the Motif widget (so you also need a &lt;br /&gt;
 Motif library, e.g. Lesstif or OpenMotif).&lt;br /&gt;
 [http://grass.itc.it/pipermail/grassuser/2006-December/037475.html Glynn Clements at GRASS-user mailing list]&lt;br /&gt;
&lt;br /&gt;
=== Parallelized compilation on multi-core CPUs ===&lt;br /&gt;
&lt;br /&gt;
You can dramatically accelerate the compilation of the GRASS code with the -j flag of &amp;quot;make&amp;quot; if you have a multi-core CPU system. This determines the maximum number of jobs to have running at once, so cores don't have to sit idle waiting for jobs on other cores to complete. A good rule of thumb for this value is &amp;lt;tt&amp;gt;number_of_cores * 1.5&amp;lt;/tt&amp;gt;, but note that setting any higher than the actual number of cores will only affect the timing slightly. For example, on a dual-core processor:&lt;br /&gt;
  make -j 4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- CFLAGS=&amp;quot;-pipe&amp;quot; doesn't seem to help much --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Addons ==&lt;br /&gt;
&lt;br /&gt;
=== GRASS-GDAL plugin ===&lt;br /&gt;
&lt;br /&gt;
* see [[Compile and install GRASS and QGIS with GDAL/OGR Plugin]]&lt;br /&gt;
&lt;br /&gt;
=== Compiled C modules ===&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
Either:&lt;br /&gt;
* a binary GRASS package, or&lt;br /&gt;
* source code which has been prepared with:&lt;br /&gt;
    ./configure [opionally flags]&lt;br /&gt;
    make libs&lt;br /&gt;
&lt;br /&gt;
Each of the [[GRASS_AddOns|addon]] modules should come with a Makefile. To compile it, just run:&lt;br /&gt;
    make MODULE_TOPDIR=/path/to/grass64/&lt;br /&gt;
&lt;br /&gt;
Installation (requires perhaps &amp;quot;sudo&amp;quot;):&lt;br /&gt;
    make MODULE_TOPDIR=/path/to/grass64/ install&lt;br /&gt;
&lt;br /&gt;
Note: Compiled addons may require a re-compilation if you changed/updated your GRASS standard binaries.&lt;br /&gt;
&lt;br /&gt;
==== If binary comes with a -dev package ====&lt;br /&gt;
&lt;br /&gt;
Nowadays one does not need to the source code, nor compiling GRASS by oneself to be able to add add-ons. On Debian, you can just install the grass-dev package and then run:&lt;br /&gt;
 make MODULE_TOPDIR=/usr/lib/grass64/&lt;br /&gt;
&lt;br /&gt;
The grass-dev package essentially provides GRASS's &amp;lt;tt&amp;gt;include&amp;lt;/tt&amp;gt; header files and Make configuration files.&lt;br /&gt;
&lt;br /&gt;
=== Scripts ===&lt;br /&gt;
&lt;br /&gt;
If the addon module is a script, it is sufficient to copy it into the (GRASS binaries) path somewhere. Alternatively, install addons into a separate GRASS addons binaries/scripts directory which is easier to maintain. It avoids getting clobbered every time you reinstall GRASS. To use these separately stored scripts, set and export the GRASS_ADDON_PATH environment variable before starting GRASS and it will automatically be added to the module search path (see the {{cmd|variables}} help page). To simplify this, do for example:&lt;br /&gt;
&lt;br /&gt;
 # add in $HOME/.bashrc:&lt;br /&gt;
 GRASS_ADDON_PATH=/usr/local/grass/addons/&lt;br /&gt;
 export GRASS_ADDON_PATH&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>⚠️Kyngchaos</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Compile_and_Install&amp;diff=8383</id>
		<title>Compile and Install</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Compile_and_Install&amp;diff=8383"/>
		<updated>2009-03-12T04:59:48Z</updated>

		<summary type="html">&lt;p&gt;⚠️Kyngchaos: OSX - drop link to old platform notes page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How to do compilation and installation of GRASS 6? ==&lt;br /&gt;
&lt;br /&gt;
Here we explain the procedure to compile GRASS from SVN, but it also applies to official GRASS 6 releases.&lt;br /&gt;
&lt;br /&gt;
''For installation of precompiled binary packages, see the main [[Installation Guide]].''&lt;br /&gt;
&lt;br /&gt;
For detailed information on compilation, please see the [http://grass.itc.it/grass61/source/INSTALL INSTALL] file in the source code.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
GRASS needs at least two extra libraries: PROJ and GDAL/OGR&lt;br /&gt;
&lt;br /&gt;
''Note: if you want to have DBMS support in GDAL (subsequently in GRASS) you have to perform the &amp;quot;Optional&amp;quot; steps below as well.''&lt;br /&gt;
&lt;br /&gt;
* [http://proj.maptools.org PROJ4] for management of projections (with proj-datumgrid-1.3.zip support)&lt;br /&gt;
* Optional: [http://geos.refractions.net GEOS]&lt;br /&gt;
* Optional: [http://www.postgresql.org PostgreSQL], [http://www.mysql.org mySQL], [http://www.unixodbc.org unixODBC], [http://www.sqlite.org SQLite] (SQLite is needed for QGIS)&lt;br /&gt;
* [http://www.gdal.org GDAL/OGR] for reading and writing various GIS data formats (interoperability)&lt;br /&gt;
&lt;br /&gt;
You have to install these two libraries '''first'''.&lt;br /&gt;
&lt;br /&gt;
It is easiest to obtain a prepackaged version of these libraries (e.g., .rpm; .deb) for your particular operating system and run the corresponding package installation (e.g., rpm -Uhv packagename.rpm; apt-get) in a terminal window. Take care to also install the development packages of these libraries (...-devel packages). If there is no prepackage version, then you will have to download the source code (see links above, source code packages usually ends in .tar.gz or .zip) and compile it (you must have a C compiler installed as part of your operating system). The Web sites show the steps to compile the libraries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other libraries needed to run GRASS are listed on the {{website|grass64/source/REQUIREMENTS.html|requirements page}}.&lt;br /&gt;
&lt;br /&gt;
To compile, you will also need the respective &amp;quot;-devel&amp;quot; packages.&lt;br /&gt;
&lt;br /&gt;
=== Generic Compilation and installation procedure ===&lt;br /&gt;
&lt;br /&gt;
* It is wise that compilation processes are carried out as a normal user: If you want to get the source code in a place where  you do not have write permissions (e.g. in /usr/local/src/) just follow this:&lt;br /&gt;
      cd /usr/local/src/ &lt;br /&gt;
      su -c 'mkdir grass6'&lt;br /&gt;
      su -c 'chown yourlogin:yourgroup grass6'&lt;br /&gt;
&lt;br /&gt;
Otherwise if you have permissions just continue as a normal user:&lt;br /&gt;
      cd /usr/local/src/&lt;br /&gt;
      svn checkout ...&lt;br /&gt;
&lt;br /&gt;
* do a code checkout from the SVN source code repository&lt;br /&gt;
: checkout the latest GRASS 6.x from SVN (see: {{twiki|DownloadSource}})&lt;br /&gt;
&lt;br /&gt;
* in the grass6 directory, you will find the precious INSTALL file, open it with your favourite pager/editor and read it carefully!&lt;br /&gt;
&lt;br /&gt;
* run configure with parameters to adapt the compile process to your own system. To see what options can be passed to it, run configure --help. &lt;br /&gt;
&amp;lt;!-- The minimum set of configure parameters is &lt;br /&gt;
      ./configure ### --&amp;gt;&lt;br /&gt;
It may (!) look like this:&lt;br /&gt;
 &lt;br /&gt;
      ./configure \&lt;br /&gt;
          --with-cxx \&lt;br /&gt;
          --with-sqlite \&lt;br /&gt;
          --with-postgres-libs=/usr/include/pgsql/libpq \&lt;br /&gt;
          --with-postgres-includes=/usr/include/pgsql \&lt;br /&gt;
          --with-freetype \&lt;br /&gt;
          --with-freetype-includes=/usr/include/freetype2 \&lt;br /&gt;
          --with-motif \&lt;br /&gt;
          --with-proj-share=/usr/share/proj&lt;br /&gt;
&lt;br /&gt;
You may have to explicitly state the path for certain packages (i.e., gdal). The Unix 'locate' command will come in handy for finding the path of the package you need (you may have to run locate as root ex: sudo locate gdal-config).&lt;br /&gt;
&lt;br /&gt;
Please note that the paths mentioned may widely vary due to the distribution used.&lt;br /&gt;
See [[Compile_and_Install#Platform_Specific_Notes|Platform Specific Notes]] below.&lt;br /&gt;
&lt;br /&gt;
Depending on your needs it may be a good idea to include debugging hooks.&lt;br /&gt;
: See [[GRASS_Debugging#Compile_Time_Setup]].&lt;br /&gt;
 CFLAGS=&amp;quot;-ggdb -Wall -Werror-implicit-function-declaration&amp;quot; ./configure ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At the end of configuration process you should get report not much different from this:&lt;br /&gt;
&lt;br /&gt;
GRASS is now configured for:  i686-pc-linux-gnu&lt;br /&gt;
 &lt;br /&gt;
 Source directory:            /usr/src/grass6&lt;br /&gt;
 Build directory:             /usr/src/grass6&lt;br /&gt;
 Installation directory:      /usr/local/grass-6.3.svn&lt;br /&gt;
 Startup script in directory: ${exec_prefix}/bin&lt;br /&gt;
 C compiler:                  gcc -g -O2 &lt;br /&gt;
 C++ compiler:                c++ -g -O2&lt;br /&gt;
 FORTRAN compiler:            &lt;br /&gt;
 Building shared libraries:   yes&lt;br /&gt;
 64bit support:               no&lt;br /&gt;
 &lt;br /&gt;
  NVIZ:                       yes&lt;br /&gt;
 &lt;br /&gt;
  BLAS support:               no&lt;br /&gt;
  C++ support:                yes&lt;br /&gt;
  DWG support:                no&lt;br /&gt;
  FFMPEG support:             no&lt;br /&gt;
  FFTW support:               yes&lt;br /&gt;
  FreeType support:           yes&lt;br /&gt;
  GDAL support:               yes&lt;br /&gt;
  GLw support:                no&lt;br /&gt;
  JPEG support:               yes&lt;br /&gt;
  LAPACK support:             no&lt;br /&gt;
  Large File Support (LFS):   no&lt;br /&gt;
  Motif support:              no&lt;br /&gt;
  MySQL support:              no&lt;br /&gt;
  NLS support:                no&lt;br /&gt;
  ODBC support:               no&lt;br /&gt;
  OGR support:                yes&lt;br /&gt;
  OpenGL(R) support:          yes&lt;br /&gt;
  PNG support:                yes&lt;br /&gt;
  PostgreSQL support:         yes&lt;br /&gt;
  Readline support:           no&lt;br /&gt;
  SQLite support:             no&lt;br /&gt;
  Tcl/Tk support:             yes&lt;br /&gt;
  TIFF support:               yes&lt;br /&gt;
  X11 support:                yes&lt;br /&gt;
  &lt;br /&gt;
* Let's compile it (takes a little while...)!&lt;br /&gt;
      make&lt;br /&gt;
* At the end, you should get report not much different from this:&lt;br /&gt;
 ----------------------------------------------------------------------&lt;br /&gt;
 Following modules are missing the 'description.html' file in src code:&lt;br /&gt;
 ----------------------------------------------------------------------&lt;br /&gt;
 GRASS GIS compilation log&lt;br /&gt;
 -------------------------&lt;br /&gt;
 Started compilation: Ne kvě 28 13:18:43 CEST 2006&lt;br /&gt;
 --&lt;br /&gt;
 Errors in:&lt;br /&gt;
 --&lt;br /&gt;
 Finished compilation: Ne kvě 28 13:43:40 CEST 2006&lt;br /&gt;
 (In case of errors please change into the directory with error and run 'make')&lt;br /&gt;
&lt;br /&gt;
* If there is any error, change directory to directory with error and run &amp;quot;make&amp;quot; again. Report occuring bug to grass mailing list&lt;br /&gt;
* Once the installation process is finished, you're ready to install GRASS system wide.&lt;br /&gt;
      su -c 'make install'&lt;br /&gt;
* enjoy GRASS: &lt;br /&gt;
      grass63&lt;br /&gt;
&lt;br /&gt;
=== What else? ===&lt;br /&gt;
&lt;br /&gt;
If you want to use [http://www.qgis.org QGIS], then also compile the GRASS-GDAL/OGR plugin. This is also useful to access your GRASS-data&lt;br /&gt;
from other application using GDAL/OGR like [http://thuban.intevation.de thuban].&lt;br /&gt;
* [[Compile and install GRASS and QGIS with GDAL/OGR Plugin]] (enables QGIS to read GRASS data directly)&lt;br /&gt;
&lt;br /&gt;
=== Platform Specific Notes ===&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
&lt;br /&gt;
===== Debian =====&lt;br /&gt;
&lt;br /&gt;
   # first install PROJ, then GDAL.&lt;br /&gt;
   cd grass63/&lt;br /&gt;
   # follow instructions in debian/README.debian&lt;br /&gt;
   fakeroot buildpackage&lt;br /&gt;
&lt;br /&gt;
* Official [http://pkg-grass.alioth.debian.org/cgi-bin/wiki.pl DebianGIS] packaging [http://svn.debian.org/wsvn/pkg-grass/packages/grass/branches/ control files], also accessible via svn:&lt;br /&gt;
   svn co svn://svn.debian.org/svn/pkg-grass/packages/grass/branches/&amp;lt;GRASS Version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://hamish.bowman.googlepages.com/debiangisfiles#compile Compiling GRASS 6.1-CVS on Debian/OldStable (aka 3.1, Sarge)]&lt;br /&gt;
&lt;br /&gt;
===== Ubuntu =====&lt;br /&gt;
&lt;br /&gt;
''The above Debian notes will probably work with Ubuntu as well.''&lt;br /&gt;
&lt;br /&gt;
====== Ubuntu 6.06, 7.10 ======&lt;br /&gt;
&lt;br /&gt;
* [http://david.p.finlayson.googlepages.com/makegrass.sh makegrass.sh] is script designed to automate most of the download, configuration and compilation of GRASS 6.x-CVS&lt;br /&gt;
** it is advised use [https://help.ubuntu.com/community/CheckInstall checkinstall] (''sudo apt-get install checkinstall'') instead of ''make install'' to keep track of installed software &lt;br /&gt;
** Think twice before using this script. Some users experienced problems such as disabled XGL etc.&lt;br /&gt;
* [[User:Steko/Automated_CVS_compiling|Here]] is another of these scripts, it's homemade so probably you'll find the above more useful for production sites.&lt;br /&gt;
&lt;br /&gt;
====== Ubuntu 7.10 64-bit ======&lt;br /&gt;
&lt;br /&gt;
* Compiling latest GRASS source code on a 64-bit machine (with an ATI graphic card) under Ubuntu 7.10 64-bit with support for: 64-bit, SQLite, OpenGL, PYTHON, FFMPEG&lt;br /&gt;
(Based on &amp;quot;Ubuntu 6.06 LTS - GRASS 6.1 Compilation Script&amp;quot; by David Finlayson)&lt;br /&gt;
''Assuming it is the first time attempting to compile GRASS' source code &amp;amp; installing SVN, PROJ, GDAL/OGR''&lt;br /&gt;
&lt;br /&gt;
'''Preparation'''&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
* install dependencies for compiling (in general) and dependencies for GRASS: PROJ, GDAL/OGR&lt;br /&gt;
 sudo apt-get install grass build-essential flex bison libncurses5-dev zlib1g-dev \&lt;br /&gt;
 libjpeg62-dev libgdal1-dev libtiff4-dev libgcc1 bpng12-dev tcl8.4-dev tk8.4-dev fftw3-dev \&lt;br /&gt;
 libfreetype6-dev libavcodec-dev libxmu-dev gdal-bin libreadline5 libreadline5-dev \&lt;br /&gt;
 make python-dev python-wxversion swig&lt;br /&gt;
&lt;br /&gt;
* install SQLite&lt;br /&gt;
 sudo apt-get install sqlite3 libsqlite3-dev&lt;br /&gt;
&lt;br /&gt;
* install SVN&lt;br /&gt;
 sudo apt-get install subversion&lt;br /&gt;
&lt;br /&gt;
* create a directory as a simple user where source code(s) are going to be stored (in our example we use a directory called '''src''' under '''/usr/local''')&lt;br /&gt;
&lt;br /&gt;
 sudo mkdir /usr/local/src&lt;br /&gt;
&lt;br /&gt;
* grant rwx (read-write-execute) permissions for our userid/ groupid on the directory (replace words userid and groupid with real userid):&lt;br /&gt;
 sudo chown ''userid'':''groupid'' /usr/local/src&lt;br /&gt;
&lt;br /&gt;
 sudo chmod ug+rwx /usr/local/src&lt;br /&gt;
&lt;br /&gt;
* download latest source code from GRASS SVN repository in a directory on the system (e.g. /usr/local/src)&lt;br /&gt;
 svn checkout https://svn.osgeo.org/grass/grass/trunk grass_trunk&lt;br /&gt;
&lt;br /&gt;
* Above command places GRASS' source code in '''/usr/local/src/grass_trunk'''. In case of a subsequent update use the command: '''svn up''' from within the grass_trunk directory&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''Before''' attempting to compile GRASS, READ section (C) in the '''INSTALL''' file located in the main directory of GRASS source code entitled:&lt;br /&gt;
'''(C) COMPILATION NOTES for 64bit platforms'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* installing FFTW3 if not already on system&lt;br /&gt;
 sudo apt-get install fftw3 fftw3-dev&lt;br /&gt;
&lt;br /&gt;
====== FFMPEG ======&lt;br /&gt;
* install FFMPEG (information taken from: http://stream0.org/2008/01/install-ffmpeg-on-ubuntu-gutsy.html)&lt;br /&gt;
* download source code with svn&lt;br /&gt;
 svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg&lt;br /&gt;
&lt;br /&gt;
* install dependencies&lt;br /&gt;
 sudo apt-get install liblame-dev libfaad2-dev libfaac-dev libxvidcore4-dev \&lt;br /&gt;
      liba52-0.7.4 liba52-0.7.4-dev libx264-dev libdts-dev checkinstall \&lt;br /&gt;
      build-essential subversion&lt;br /&gt;
&lt;br /&gt;
* guide to ffmpeg directory&lt;br /&gt;
 cd ffmpeg&lt;br /&gt;
&lt;br /&gt;
if necessary: '''make distclean''' before configuration (look at notes below)&lt;br /&gt;
&lt;br /&gt;
* configuration ('''note:''' the configuration parameter &amp;quot;'''--enable-pp'''&amp;quot; does not work anymore)&lt;br /&gt;
 ./configure --enable-gpl --enable-libvorbis --enable-libtheora \&lt;br /&gt;
             --enable-liba52 --enable-libdc1394 --enable-libgsm \&lt;br /&gt;
             --enable-libmp3lame --enable-libfaad --enable-libfaac \&lt;br /&gt;
             --enable-libxvid --enable-pthreads --enable-libx264 \&lt;br /&gt;
             --enable-shared&lt;br /&gt;
&lt;br /&gt;
* compilation&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* installation on /usr/local/bin -- important to remember when configuring GRASS' source code for compilation&lt;br /&gt;
 sudo checkinstall&lt;br /&gt;
&lt;br /&gt;
====== '''go for GRASS!''' ======&lt;br /&gt;
* in our example we used the /usr/local/src directory to store GRASS' source code, so:&lt;br /&gt;
 cd /usr/local/src/grass_trunk&lt;br /&gt;
&lt;br /&gt;
* configuration&lt;br /&gt;
  CFLAGS=&amp;quot;-g -Wall&amp;quot; ./configure --enable-64bit \&lt;br /&gt;
        --with-libs=/usr/lib64 --with-cxx --with-freetype=yes \&lt;br /&gt;
        --with-postgres=no --with-sqlite=yes --enable-largefile=yes \&lt;br /&gt;
        --with-tcltk-includes=/usr/include/tcl8.4 \&lt;br /&gt;
        --with-freetype-includes=/usr/include/freetype2 \&lt;br /&gt;
        --with-opengl-libs=/usr/include/GL --with-readline \&lt;br /&gt;
        --with-python=yes --with-ffmpeg=yes \&lt;br /&gt;
        --with-ffmpeg-includes=/usr/local/include/ffmpeg&lt;br /&gt;
&lt;br /&gt;
*if OpenGL fails then maybe it is necessary to link '''glxATI.h''' with '''glx.h''' and re-run the configuration&lt;br /&gt;
&lt;br /&gt;
 cd /usr/include/GL&lt;br /&gt;
&lt;br /&gt;
 sudo ln glxATI.h glx.h&lt;br /&gt;
&lt;br /&gt;
* compilation&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* compilation is expected to end with a statement similar to the following:&lt;br /&gt;
&lt;br /&gt;
 Started compilation: Wed Feb 27 00:24:36 CET 2008&lt;br /&gt;
 --&lt;br /&gt;
 Errors in:&lt;br /&gt;
 No errors detected.&lt;br /&gt;
&lt;br /&gt;
* installation&lt;br /&gt;
 sudo checkinstall&lt;br /&gt;
&lt;br /&gt;
* launch 64-bit GRASS.6.4.svn&lt;br /&gt;
 grass64&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* in case of errors in future compilation attempts, remember to remove program binaries with&lt;br /&gt;
 make clean&lt;br /&gt;
* and the files created with the &amp;quot;configuration&amp;quot; from previous compilations with&lt;br /&gt;
 make distclean&lt;br /&gt;
&lt;br /&gt;
===== RPM SPEC files =====&lt;br /&gt;
&lt;br /&gt;
* ... can be found in the source code, rpm/ directory, &lt;br /&gt;
* or [http://www.gdf-hannover.de/media.php?id=1&amp;amp;lg=en here] (Mandrake, SuSe)&lt;br /&gt;
* or [http://teodori.org/repository/grass.html openSuSe]&lt;br /&gt;
* or [http://grass.itc.it/grass62/binary/linux/fedora_specs/ Fedora]&lt;br /&gt;
* or [http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/grass/ Mandriva 2008] or [http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/grass/current/SPECS/ Mandriva Cooker] (there are also [http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/proj/ proj4], [http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/geos/ geos], [http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/gdal/ gdal], [http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/gdal-grass/ gdal-grass-plugin], [http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/qgis/ qgis] etc)&lt;br /&gt;
&lt;br /&gt;
===== Zaurus =====&lt;br /&gt;
&lt;br /&gt;
... see [http://wiki.debian.org/?GrassGISonZaurus here] for instructions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Mac OSX ====&lt;br /&gt;
&lt;br /&gt;
... see [[Compiling on MacOSX]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Solaris ====&lt;br /&gt;
&lt;br /&gt;
* ''2008 Oct 15'': see [http://lists.osgeo.org/pipermail/grass-user/2008-October/047093.html this post on the grass mailing list]&lt;br /&gt;
&lt;br /&gt;
===== 10 SPARC/i86pc =====&lt;br /&gt;
&lt;br /&gt;
* get gcc compiler and tools. There are several sources: Solaris Companion CD (SFW pkg, installs in /opt/sfw/), Blastwave ([http://www.blastwave.org], CSW pkg, installs in /opt/csw/) or Sunfreeware ([http://www.sunfreeware.com], SMC pkg, installs in /usr/local/). &lt;br /&gt;
Needed Packages from Sunfreeware: SMCbinut, SMCbison, SMCcoreu, SMCfindu, SMCflex, SMCgawk, SMCgcc, SMCgrep, SMCgzip, SMCless, SMClibt, SMClicon, SMCmake, SMCncurs, SMCproj, SMCsed, SMCtar, SMCtcl, SMCtiff, SMCtk, SMCunzip, SMCzlib. &lt;br /&gt;
&lt;br /&gt;
* compile and install fftw-library ([http://www.fftw.org]). You need to re-compile the library with: &lt;br /&gt;
&lt;br /&gt;
      ./configure --with-pic --enable-shared; make ; make install. &lt;br /&gt;
&lt;br /&gt;
The pre-built packages don't work. &lt;br /&gt;
&lt;br /&gt;
* compile and install gdal library (see documentation of gdal, [http://www.gdal.org]).&lt;br /&gt;
&lt;br /&gt;
* compile and install any additional libraries (e. g. GEOS, [http://geos.refractions.net]). &lt;br /&gt;
&lt;br /&gt;
* set compiler flags and path. e. g.: &lt;br /&gt;
&lt;br /&gt;
      # on ultra-sparc machine:&lt;br /&gt;
      CFLAGS=&amp;quot;-O3 -mcpu=v9&amp;quot;&lt;br /&gt;
      CXXFLAGS=&amp;quot;-O3 -mcpu=v9&amp;quot;&lt;br /&gt;
      PATH=&amp;quot;/usr/local/bin:/opt/sfw/bin:/usr/ccs/bin:/usr/bin:/usr/sbin&amp;quot;&lt;br /&gt;
      export CFLAGS CXXFLAGS PATH&lt;br /&gt;
&lt;br /&gt;
Path has to be changed for the packages (Sunfreeware: /usr/local/bin, Solaris Companion: /opt/sfw/bin, Blastwave: /opt/csw/bin). &lt;br /&gt;
&lt;br /&gt;
* Next configure, e. g.: &lt;br /&gt;
&lt;br /&gt;
      ./configure --with-postgres-includes=/usr/include/pgsql/ \&lt;br /&gt;
      --with-postgres-libs=/usr/lib --with-postgres=yes \&lt;br /&gt;
      --with-includes=/usr/local/include/ncurses&lt;br /&gt;
&lt;br /&gt;
If you use n(ew)curses, you have to include the path /usr/local/include/ncurses. &lt;br /&gt;
&lt;br /&gt;
then:&lt;br /&gt;
&lt;br /&gt;
      make&lt;br /&gt;
      su&lt;br /&gt;
      make install&lt;br /&gt;
&lt;br /&gt;
If the shared libraries are not found at runtime of the modules, use 'crle' to add the paths of the libraries for the dynamic linker, e. g. as root:&lt;br /&gt;
&lt;br /&gt;
      crle -l /lib:/usr/lib:/usr/local/lib:/opt/sfw/lib:/usr/X11/lib&lt;br /&gt;
&lt;br /&gt;
Be careful not to omit a library path, the system may be unusable if you forget the /lib path.&lt;br /&gt;
&lt;br /&gt;
==== MS-Windows ====&lt;br /&gt;
&lt;br /&gt;
===== MS-Windows/Cygwin =====&lt;br /&gt;
&lt;br /&gt;
... see [http://grass.itc.it/platforms/wingrass.html here] (should be moved to the Wiki)&lt;br /&gt;
&lt;br /&gt;
===== MS-Windows/native =====&lt;br /&gt;
&lt;br /&gt;
====== Compile ======&lt;br /&gt;
See new [http://www.webalice.it/marco.pasetti/grass/BuildFromSource.html GRASS Windows Native Binary Building Guide]&lt;br /&gt;
&lt;br /&gt;
See also [[WinGRASS Current Status]] for latest updates.&lt;br /&gt;
&lt;br /&gt;
... or see [http://wiki.qgis.org/qgiswiki/BuildingWindowsBinaryOnLinux here incl. QGIS compilation] (with MinGW)&lt;br /&gt;
&lt;br /&gt;
* See/adapt [http://blog.qgis.org/node/124 idea] for unattended install of Qgis (et al) from [http://trac.osgeo.org/osgeo4w/ OsGeo4w] from the QuantumGIS Blog.&lt;br /&gt;
&lt;br /&gt;
=== Common problems and solutions ===&lt;br /&gt;
&lt;br /&gt;
During compilation, error can occur if certain packages are not installed. Here a list of problems with solution:&lt;br /&gt;
&lt;br /&gt;
* error: X11/Xlib.h: No such file or directory&lt;br /&gt;
** this suggests that you don't have the X headers installed&lt;br /&gt;
** Solution: Install the libx11-dev package&lt;br /&gt;
&lt;br /&gt;
=== Configure options and their meanings ===&lt;br /&gt;
&lt;br /&gt;
For configure there are many options and some GRASS modules are built only if some options are set. Here are listed common configuration options with short explanation.&lt;br /&gt;
&lt;br /&gt;
* --prefix=/path - Sets path where GRASS will be installed. GRASS will reside in /path/grass-version.&lt;br /&gt;
* --enable-largefile - Enables large (&amp;gt;2Gb on 32bit systems) support. For current large file support status look at [[Large File Support]] page.&lt;br /&gt;
* --with-cxx - Enables compilation of C++ code. Required for r.terraflow module.&lt;br /&gt;
* --with-readline - Enables readline support. If readline is enabled, you can use its history/editing facilities when entering r.mapcalc expressions on stdin.&lt;br /&gt;
* --with-glw - Enables GLw support. The GLw library provides OpenGL &amp;quot;canvas&amp;quot; widgets for Athena and Motif. &lt;br /&gt;
 &lt;br /&gt;
 That switch is unnecessary for normal compilation. It's only&lt;br /&gt;
 required for r3.showdspf, which isn't normally built; if you &lt;br /&gt;
 want it, you have build it manually &lt;br /&gt;
 (e.g. &amp;quot;make -C raster3d/r3.showdspf&amp;quot;).&lt;br /&gt;
 As similar functionality is now provided by NVIZ, r3.showdspf&lt;br /&gt;
 is deprecated.&lt;br /&gt;
 r3.showdspf uses the Motif widget (so you also need a &lt;br /&gt;
 Motif library, e.g. Lesstif or OpenMotif).&lt;br /&gt;
 [http://grass.itc.it/pipermail/grassuser/2006-December/037475.html Glynn Clements at GRASS-user mailing list]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Addons ==&lt;br /&gt;
&lt;br /&gt;
=== Compiled C modules ===&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
Either:&lt;br /&gt;
* a binary GRASS package, or&lt;br /&gt;
* source code which has been prepared with:&lt;br /&gt;
    ./configure [opionally flags]&lt;br /&gt;
    make libs&lt;br /&gt;
&lt;br /&gt;
Each of the [[GRASS_AddOns|addon]] modules should come with a Makefile. To compile it, just run:&lt;br /&gt;
&lt;br /&gt;
 make MODULE_TOPDIR=/path/to/grass64/&lt;br /&gt;
&lt;br /&gt;
Note: Compiled addons may require a re-compilation if you changed/updated your GRASS standard binaries.&lt;br /&gt;
&lt;br /&gt;
==== If binary comes with a -dev package ====&lt;br /&gt;
&lt;br /&gt;
Nowadays one does not need to the source code, nor compiling GRASS by oneself to be able to add add-ons. On Debian, you can just install the grass-dev package and then run:&lt;br /&gt;
 make MODULE_TOPDIR=/usr/lib/grass&lt;br /&gt;
&lt;br /&gt;
The grass-dev package essentially provides GRASS's &amp;lt;tt&amp;gt;include&amp;lt;/tt&amp;gt; header files and Make configuration files.&lt;br /&gt;
&lt;br /&gt;
=== Scripts ===&lt;br /&gt;
&lt;br /&gt;
If the addon module is a script, it is sufficient to copy it into the (GRASS binaries) path somewhere. Alternatively, install addons into a separate GRASS addons binaries/scripts directory which is easier to maintain. It avoids getting clobbered every time you reinstall GRASS. To use these separately stored scripts, set and export the GRASS_ADDON_PATH environment variable before starting GRASS and it will automatically be added to the module search path (see the {{cmd|variables}} help page). To simplify this, do for example:&lt;br /&gt;
&lt;br /&gt;
 # add in $HOME/.bashrc:&lt;br /&gt;
 GRASS_ADDON_PATH=/usr/local/grass/addons/&lt;br /&gt;
 export GRASS_ADDON_PATH&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>⚠️Kyngchaos</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Compiling_on_MacOSX&amp;diff=8382</id>
		<title>Compiling on MacOSX</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Compiling_on_MacOSX&amp;diff=8382"/>
		<updated>2009-03-12T04:24:17Z</updated>

		<summary type="html">&lt;p&gt;⚠️Kyngchaos: cleanup; uptodate notes in source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Up-to-date compilation instructions are maintained in the source &amp;lt;tt&amp;gt;macosx/ReadMe.rtf&amp;lt;/tt&amp;gt;.&lt;br /&gt;
This builds a double-clickable application with &amp;quot;aqua&amp;quot; options where possible (Tcl/Tk, Python, OpenGL,...) &lt;br /&gt;
and leaves out obscure X11-only-based features that have newer system-agnostic options (like motif/xganim), &lt;br /&gt;
though these newer features may not be quite as fully-featured, yet.&lt;br /&gt;
The X11 display system ''is'' included, since it is simple to include and is still quite useful.&lt;br /&gt;
&lt;br /&gt;
The method below is for the older X11-based compilation, and includes the X11 motif-based xganim.&lt;br /&gt;
&lt;br /&gt;
To build Grass from source you can use the frameworks that are on : &lt;br /&gt;
http://www.kyngchaos.com/software:frameworks&lt;br /&gt;
great thanks to W.Kyngesburye.&lt;br /&gt;
&lt;br /&gt;
After installing all the frameworks you can add some library such &amp;quot;motif&amp;quot; needed by Xganim, using fink or build the source code&lt;br /&gt;
&lt;br /&gt;
Install from source the tcl-tk library : http://www.tcl.tk/software/tcltk/downloadnow84.tml  in /usr/local&lt;br /&gt;
&lt;br /&gt;
Postgres can be easily compiled from source.&lt;br /&gt;
&lt;br /&gt;
Download a cvs version http://grass.itc.it/download/index.php&lt;br /&gt;
&lt;br /&gt;
Then configure and make grass cvs :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /path_to_grass_source&lt;br /&gt;
&lt;br /&gt;
./configure --enable-sysv --with-x --with-opengl=x11 --without-odbc --with-cxx --with-freetype \&lt;br /&gt;
--with-freetype-includes=/Library/Frameworks/FreeType.framework/unix/include \&lt;br /&gt;
--with-freetype-libs=/Library/Frameworks/FreeType.framework/unix/lib \&lt;br /&gt;
--with-gdal=/Library/Frameworks/GDAL.framework/Versions/1.5/Programs/gdal-config \&lt;br /&gt;
--with-proj-includes=/Library/Frameworks/PROJ.framework/unix/include \&lt;br /&gt;
--with-proj-libs=/Library/Frameworks/PROJ.framework/unix/lib \&lt;br /&gt;
--with-proj-share=/Library/Frameworks/PROJ.framework/Versions/4.5/unix/share/ \&lt;br /&gt;
--with-jpeg --with-jpeg-includes=/Library/Frameworks/UnixImageIO.framework/unix/include \&lt;br /&gt;
--with-jpeg-libs=/Library/Frameworks/UnixImageIO.framework/unix/lib \&lt;br /&gt;
--with-tiff --with-tiff-includes=/Library/Frameworks/UnixImageIO.framework/unix/include \&lt;br /&gt;
--with-tiff-libs=/Library/Frameworks/UnixImageIO.framework/unix/lib \&lt;br /&gt;
--with-png-includes=/Library/Frameworks/UnixImageIO.framework/unix/include \&lt;br /&gt;
--with-png-libs=/Library/Frameworks/UnixImageIO.framework/unix/lib \&lt;br /&gt;
--with-sqlite --with-sqlite-libs=/Library/Frameworks/SQLite3.framework/unix/lib \&lt;br /&gt;
--with-sqlite-includes=/Library/Frameworks/SQLite3.framework/unix/include \&lt;br /&gt;
--with-fftw --with-fftw-includes=/Library/Frameworks/FFTW3.framework/unix/include \&lt;br /&gt;
--with-fftw-libs=/Library/Frameworks/FFTW3.framework/unix/lib \&lt;br /&gt;
--with-postgres-includes=/usr/local/pgsql/include --with-postgres-libs=/usr/local/pgsql/lib \&lt;br /&gt;
--with-freetype --with-freetype-includes=/Library/Frameworks/FreeType.framework/unix/include \&lt;br /&gt;
--with-freetype-libs=/Library/Frameworks/FreeType.framework/unix/lib --with-python --with-readline \&lt;br /&gt;
--with-readline-includes=/sw/include/readline --with-readline-libs=/sw/lib --with-tcltk-includes=/usr/local/include \&lt;br /&gt;
--with-tcltk-libs=/usr/local/lib --with-blas --with-lapack \&lt;br /&gt;
--with-blas-includes=/System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Headers \&lt;br /&gt;
--with-lapack-includes=/System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Headers \&lt;br /&gt;
--with-motif --with-motif-includes=/sw/include --with-motif-libs=/sw/lib --with-glw&lt;br /&gt;
&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>⚠️Kyngchaos</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Extension_development&amp;diff=5021</id>
		<title>Extension development</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Extension_development&amp;diff=5021"/>
		<updated>2007-10-23T03:59:38Z</updated>

		<summary type="html">&lt;p&gt;⚠️Kyngchaos: add makefile notes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General =&lt;br /&gt;
&lt;br /&gt;
Gather ideas and resources on developing extensions.  Especially for installing extensions external to the main GRASS installation.&lt;br /&gt;
&lt;br /&gt;
= Other Pages =&lt;br /&gt;
&lt;br /&gt;
* [[Development GEM]] - Current GEM SVN setup&lt;br /&gt;
* [[GRASS 6.3 Feature Plan]] - backreference - hopefully extension compilation can be done for 6.3&lt;br /&gt;
* [[GRASS 7 ideas collection#Conceptual Changes|GRASS 7 Conceptual Changes]] - formalizing a user GRASS prefs and addons dir&lt;br /&gt;
&lt;br /&gt;
= Environment variables =&lt;br /&gt;
&lt;br /&gt;
Setting environment variables should be left up to the user or build startup.&lt;br /&gt;
&lt;br /&gt;
Currently, there is a relatively new &amp;lt;code&amp;gt;GRASS_ADDON_ETC&amp;lt;/code&amp;gt;.  It is a list of paths which point directly to &amp;quot;etc/&amp;quot; directories where an external module can find any support data files or programs it needs (an example is the &amp;lt;code&amp;gt;adinit.dat&amp;lt;/code&amp;gt; file needed by '''v.in.dwg''').  It is used by the libgis function G_find_etc(), and the general module '''g.findetc'''.&lt;br /&gt;
&lt;br /&gt;
There is also &amp;lt;code&amp;gt;GRASS_ADDON_PATH&amp;lt;/code&amp;gt;, which has been around for many years, and is a list of paths to &amp;quot;bin/&amp;quot; dirs where external modules can be found.  This is appended to the shell &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To simplify the possible need for an extension to need any of the standard dirs - bin, include, lib, etc, scripts, docs,... - I suggest a variable having paths point to the common root of those, say &amp;lt;code&amp;gt;GRASS_EXTN_DIR&amp;lt;/code&amp;gt;.  Then, as necessary, the appropriate subdir would be added.  ie init.sh would add */bin to the shell &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; and */lib to &amp;lt;code&amp;gt;[DY]LD_LIBRARY_PATH&amp;lt;/code&amp;gt;.  This can easily support the $HOME/.grass7 dir idea in the future.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;GRASS_ADDON_PATH&amp;lt;/code&amp;gt; should be kept for backwards compatibility, and it can still be useful for random user scripts.  &amp;lt;code&amp;gt;GRASS_ADDON_ETC&amp;lt;/code&amp;gt; should at least be deprecated, if not completely removed - it's a recent CVS addition and I doubt anyone has used it yet.&lt;br /&gt;
&lt;br /&gt;
= Compilation =&lt;br /&gt;
&lt;br /&gt;
In 6.3CVS, the Makefiles are now installed.  With a little Makefile cleanup, and a few extra necessary items installled (demolocation and a couple tools), an installed GRASS can support compiling an extension without needing the full GRASS source, and without needing any extra module setup (as is needed currently by GEM-enabled modules).  A standard GRASS module Makefile is all the would be needed.&lt;br /&gt;
&lt;br /&gt;
= Makefiles =&lt;br /&gt;
&lt;br /&gt;
Some notes from discussion with Glynn:&lt;br /&gt;
&lt;br /&gt;
* change RUN_GISBASE and RUN_GISRC to be based on ARCH_DISTDIR - this makes it possible to override them for an extension build.  Then move them from platform.make.in to grass.make.in, as they are then not configured values.&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;RUN_GISBASE = ${ARCH_DISTDIR}&amp;lt;br/&amp;gt;RUN_GISRC = ${RUN_GISBASE}/demolocation/.grassrc${GRASS_VERSION_MAJOR}${GRASS_VERSION_MINOR}&amp;lt;/code&amp;gt;&lt;br /&gt;
* move LIB_PREFIX, LIB_SUFFIX and GRASS_LIBRARY_TYPE from grass.make.in to platform.make.in, as they are configured values.  Though, leave the version variables, which are configured values, in grass.make.in?  Why not put those in platform.make.in, and have grass.make.in -&amp;gt; grass.make - then there is just one configured make fragment, platform.make.in?&lt;br /&gt;
* have 2 values in ARCH_INC and ARCH_LIBPATH, based on ARCH_DISTDIR and GISBASE. In a normal build, they are the same.  In an extension build, ARCH_DISTDIR is the extension source &amp;quot;staging area&amp;quot; and GISBASE is the installed binary base, and thus will pick up both as needed.  There appear to be a few module makefiles that use GISBASE that should be updated to use ARCH_DISTDIR.&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;ARCH_INC = -I$(ARCH_DISTDIR)/include -I$(GISBASE)/include&amp;lt;br/&amp;gt;ARCH_LIBPATH = -L$(ARCH_DISTDIR)/lib -L$(GISBASE)/lib&amp;lt;/code&amp;gt;&lt;br /&gt;
* some main makefile stuff is needed in the fragments to enable installation in alternate (ie external to installed GRASS) locations.  It was suggested to move common install features to an new makefile fragment.&lt;br /&gt;
* dependencies need to be taken care of in bin and etc targets.  vpath seems to be the key.  And it's not critical, as nothing is actually built by dependencies.&lt;br /&gt;
&lt;br /&gt;
= GEM =&lt;br /&gt;
&lt;br /&gt;
''[...in progress... more to come...]''&lt;/div&gt;</summary>
		<author><name>⚠️Kyngchaos</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Extension_development&amp;diff=4921</id>
		<title>Extension development</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Extension_development&amp;diff=4921"/>
		<updated>2007-10-20T16:57:07Z</updated>

		<summary type="html">&lt;p&gt;⚠️Kyngchaos: /* Other Pages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General =&lt;br /&gt;
&lt;br /&gt;
Gather ideas and resources on developing extensions.  Especially for installing extensions external to the main GRASS installation.&lt;br /&gt;
&lt;br /&gt;
= Other Pages =&lt;br /&gt;
&lt;br /&gt;
* [[Development GEM]] - Current GEM SVN setup&lt;br /&gt;
* [[GRASS 7 ideas collection#Conceptual Changes|GRASS 7 Conceptual Changes]] - formalizing a user GRASS prefs and addons dir&lt;br /&gt;
&lt;br /&gt;
= Environment variables =&lt;br /&gt;
&lt;br /&gt;
Setting environment variables should be left up to the user or build startup.&lt;br /&gt;
&lt;br /&gt;
Currently, there is a relatively new &amp;lt;code&amp;gt;GRASS_ADDON_ETC&amp;lt;/code&amp;gt;.  It is a list of paths which point directly to &amp;quot;etc/&amp;quot; directories where an external module can find any support data files or programs it needs (an example is the &amp;lt;code&amp;gt;adinit.dat&amp;lt;/code&amp;gt; file needed by '''v.in.dwg''').  It is used by the libgis function G_find_etc(), and the general module '''g.findetc'''.&lt;br /&gt;
&lt;br /&gt;
There is also &amp;lt;code&amp;gt;GRASS_ADDON_PATH&amp;lt;/code&amp;gt;, which has been around for many years, and is a list of paths to &amp;quot;bin/&amp;quot; dirs where external modules can be found.  This is appended to the shell &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To simplify the possible need for an extension to need any of the standard dirs - bin, include, lib, etc, scripts, docs,... - I suggest a variable having paths point to the common root of those, say &amp;lt;code&amp;gt;GRASS_EXTN_DIR&amp;lt;/code&amp;gt;.  Then, as necessary, the appropriate subdir would be added.  ie init.sh would add */bin to the shell &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; and */lib to &amp;lt;code&amp;gt;[DY]LD_LIBRARY_PATH&amp;lt;/code&amp;gt;.  This can easily support the $HOME/.grass7 dir idea in the future.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;GRASS_ADDON_PATH&amp;lt;/code&amp;gt; should be kept for backwards compatibility, and it can still be useful for random user scripts.  &amp;lt;code&amp;gt;GRASS_ADDON_ETC&amp;lt;/code&amp;gt; should at least be deprecated, if not completely removed - it's a recent CVS addition and I doubt anyone has used it yet.&lt;br /&gt;
&lt;br /&gt;
= Compilation =&lt;br /&gt;
&lt;br /&gt;
In 6.3CVS, the Makefiles are now installed.  With a little Makefile cleanup, and a few extra necessary items installled (demolocation and a couple tools), an installed GRASS can support compiling an extension without needing the full GRASS source, and without needing any extra module setup (as is needed currently by GEM-enabled modules).  A standard GRASS module Makefile is all the would be needed.&lt;br /&gt;
&lt;br /&gt;
''[...in progress... more to come...]''&lt;/div&gt;</summary>
		<author><name>⚠️Kyngchaos</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Extension_development&amp;diff=4920</id>
		<title>Extension development</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Extension_development&amp;diff=4920"/>
		<updated>2007-10-20T16:55:35Z</updated>

		<summary type="html">&lt;p&gt;⚠️Kyngchaos: New extension development ideas page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General =&lt;br /&gt;
&lt;br /&gt;
Gather ideas and resources on developing extensions.  Especially for installing extensions external to the main GRASS installation.&lt;br /&gt;
&lt;br /&gt;
= Other Pages =&lt;br /&gt;
&lt;br /&gt;
* [[(Development) GEM}]] - Current GEM SVN setup&lt;br /&gt;
* [[GRASS 7 ideas collection#Conceptual Changes|GRASS 7 Conceptual Changes]] - formalizing a user GRASS prefs and addons dir&lt;br /&gt;
&lt;br /&gt;
= Environment variables =&lt;br /&gt;
&lt;br /&gt;
Setting environment variables should be left up to the user or build startup.&lt;br /&gt;
&lt;br /&gt;
Currently, there is a relatively new &amp;lt;code&amp;gt;GRASS_ADDON_ETC&amp;lt;/code&amp;gt;.  It is a list of paths which point directly to &amp;quot;etc/&amp;quot; directories where an external module can find any support data files or programs it needs (an example is the &amp;lt;code&amp;gt;adinit.dat&amp;lt;/code&amp;gt; file needed by '''v.in.dwg''').  It is used by the libgis function G_find_etc(), and the general module '''g.findetc'''.&lt;br /&gt;
&lt;br /&gt;
There is also &amp;lt;code&amp;gt;GRASS_ADDON_PATH&amp;lt;/code&amp;gt;, which has been around for many years, and is a list of paths to &amp;quot;bin/&amp;quot; dirs where external modules can be found.  This is appended to the shell &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To simplify the possible need for an extension to need any of the standard dirs - bin, include, lib, etc, scripts, docs,... - I suggest a variable having paths point to the common root of those, say &amp;lt;code&amp;gt;GRASS_EXTN_DIR&amp;lt;/code&amp;gt;.  Then, as necessary, the appropriate subdir would be added.  ie init.sh would add */bin to the shell &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; and */lib to &amp;lt;code&amp;gt;[DY]LD_LIBRARY_PATH&amp;lt;/code&amp;gt;.  This can easily support the $HOME/.grass7 dir idea in the future.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;GRASS_ADDON_PATH&amp;lt;/code&amp;gt; should be kept for backwards compatibility, and it can still be useful for random user scripts.  &amp;lt;code&amp;gt;GRASS_ADDON_ETC&amp;lt;/code&amp;gt; should at least be deprecated, if not completely removed - it's a recent CVS addition and I doubt anyone has used it yet.&lt;br /&gt;
&lt;br /&gt;
= Compilation =&lt;br /&gt;
&lt;br /&gt;
In 6.3CVS, the Makefiles are now installed.  With a little Makefile cleanup, and a few extra necessary items installled (demolocation and a couple tools), an installed GRASS can support compiling an extension without needing the full GRASS source, and without needing any extra module setup (as is needed currently by GEM-enabled modules).  A standard GRASS module Makefile is all the would be needed.&lt;br /&gt;
&lt;br /&gt;
''[...in progress... more to come...]''&lt;/div&gt;</summary>
		<author><name>⚠️Kyngchaos</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_6.3_Feature_Plan&amp;diff=4919</id>
		<title>GRASS 6.3 Feature Plan</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_6.3_Feature_Plan&amp;diff=4919"/>
		<updated>2007-10-20T15:59:04Z</updated>

		<summary type="html">&lt;p&gt;⚠️Kyngchaos: /* Wishlist */ Makefiles to build extensions.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GRASS 6.3.x feature plan ==&lt;br /&gt;
=== About feature plan ===&lt;br /&gt;
&lt;br /&gt;
To make GRASS releases more often and more predictable, here is GRASS next releases feature plan. This feature plan has to be filled by developers working on GRASS 6.3.&lt;br /&gt;
&lt;br /&gt;
=== TODO GRASS 6.3.0 ===&lt;br /&gt;
There is the release branch for 6.3.x, see details at [http://grass.itc.it/devel/cvstags.php CVS: tags and branches]. A release branch is considered as &amp;quot;frozen&amp;quot;, only bugfixes can be done.&lt;br /&gt;
&lt;br /&gt;
==== Beta0 ====&lt;br /&gt;
* complete and stabilize the native [[WinGRASS Current Status|winGRASS port]] (seems to be in a good shape now)&lt;br /&gt;
&lt;br /&gt;
===== Must do =====&lt;br /&gt;
* &amp;lt;strike&amp;gt;replace r.proj with r.proj.seg&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;d.text with d.text.new&amp;lt;/strike&amp;gt;&lt;br /&gt;
* r.out.gdal sets NoData wrong [http://wald.intevation.org/tracker/index.php?func=detail&amp;amp;aid=405&amp;amp;group_id=21&amp;amp;atid=204 #405]&lt;br /&gt;
* Windows start script's installed on Linux (grass63.bat etc.) [http://wald.intevation.org/tracker/?group_id=21&amp;amp;atid=204&amp;amp;func=detail&amp;amp;aid=323 #323] and [http://wald.intevation.org/tracker/?group_id=21&amp;amp;atid=204&amp;amp;func=detail&amp;amp;aid=471 #471]&lt;br /&gt;
* g.region vect=map -a issues [http://wald.intevation.org/tracker/index.php?func=detail&amp;amp;aid=489&amp;amp;group_id=21&amp;amp;atid=204 #489]&lt;br /&gt;
&lt;br /&gt;
===== Mostly done? =====&lt;br /&gt;
* use GEM for ''GRASS Addons SVN'' - status unclear&lt;br /&gt;
&lt;br /&gt;
===== Wishlist =====&lt;br /&gt;
&lt;br /&gt;
* modify Makefile system to support translated HTML pages. Store translated HTML files in centralized directory with locale specific subdirs, file name is module name.&lt;br /&gt;
* Implement [http://freegis.org/cgi-bin/viewcvs.cgi/*checkout*/grass6/doc/vector/TODO vector improvements] as suggested by Radim&lt;br /&gt;
* Integrate [http://mpa.itc.it/markus/i_points_auto/ i.points.auto] (merge into i.vpoints) - see also [[Image processing]] - note that A Scianna/Palermo has modernized version&lt;br /&gt;
* Make sqlite the default DB? &amp;lt;- needs more testing, for 6.5? &lt;br /&gt;
* drop d.m display manager (as now almost unmaintained; there is gis.m and/or a python based GUI)&lt;br /&gt;
: Some people still prefer it (see posts to grass-dev) and I will fix bugs in it, but not enhance/add new modules to it without good reason. So I don't see the need to drop it before the WxPython version is ready. It's not hurting us any keeping it. --Hamish&lt;br /&gt;
:: We should keep plain d.mon interface but why keep d.m, if gis.m has become really good? Probably we should clearly state, that d.m is UNMAINTAINED and OBSOLETE? [[User:MarisN|MarisN]] 08:24, 16 February 2007 (CET)&lt;br /&gt;
* raster maps: implement SQL based [[Time series in GRASS|time series support]] (Markus has working code from Soeren; done some improvements)&lt;br /&gt;
* Safe parallel building with make -j N [http://wald.intevation.org/tracker/?group_id=21&amp;amp;atid=204&amp;amp;func=detail&amp;amp;aid=359 #359]&lt;br /&gt;
* Clean up Makefile system to support extension compilation and installation outside the GRASS installation and without the full GRASS source.  Much like what GEM does, but without needing the module source setup and not limited to installing within the GRASS installation dir.  This could also simplify GEM on the compilation side.  See also general [[Extension development]].&lt;br /&gt;
&lt;br /&gt;
=== In progress ===&lt;br /&gt;
* native MS Windows port&lt;br /&gt;
* Database connection for v.out.vtk: --[[User:Huhabla|huhabla]] 20:47, 14 August 2006 (CEST)&lt;br /&gt;
** single column support for numerical data (int, float, double)&lt;br /&gt;
** GRASSRGB column support (done for ps.map)&lt;br /&gt;
** multiple column support for vector data&lt;br /&gt;
* rewrite most of the g3d modules to fulfil the grass function naming convention --[[User:Huhabla|huhabla]] 20:47, 14 August 2006 (CEST)&lt;br /&gt;
* adding further (organized) keywords to every grass command and script [http://grass.itc.it/pipermail/grass-dev/2006-August/025164.html] and [http://grass.itc.it/pipermail/grass-dev/2006-August/025190.html]:&lt;br /&gt;
** display commands&lt;br /&gt;
** database commands&lt;br /&gt;
** general commands&lt;br /&gt;
** imagery commands&lt;br /&gt;
** misc commands&lt;br /&gt;
** paint commands&lt;br /&gt;
** photo commands&lt;br /&gt;
** postscript commands&lt;br /&gt;
** raster commands&lt;br /&gt;
** raster3D commands&lt;br /&gt;
** vector commands&lt;br /&gt;
* continue with wxpython prototype&lt;br /&gt;
* write (Python based?) GUI wizard to create new locations (MN and terrestris.de)&lt;br /&gt;
* implement Python-SWIG interface&lt;br /&gt;
* less verbose commands&lt;br /&gt;
* BLAS/LAPACK updates&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Release Roadmap]]&lt;/div&gt;</summary>
		<author><name>⚠️Kyngchaos</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Installation_Guide&amp;diff=2411</id>
		<title>Installation Guide</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Installation_Guide&amp;diff=2411"/>
		<updated>2006-08-23T14:21:34Z</updated>

		<summary type="html">&lt;p&gt;⚠️Kyngchaos: /* Mac OS X */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
&lt;br /&gt;
''For compilation of GRASS source code, see [[Compile and Install]].''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRASS requires a workstation running some flavor of UNIX conforming to POSIX standards like Linux, Mac OS X, Solaris, IRIX, or BSD. It is also possible to run GRASS in MS Windows by using UNIX translation software such as Cygwin or MinGW. Ideally, you should have at least 500 Mb for data and 128 Mb RAM. The source code package needs around 30 MB uncompressed. The resulting binaries may need between 20 MB and 180 MB depending on your platform. During a full compilation you may need temporarily up to 150MB including the source code.&lt;br /&gt;
&lt;br /&gt;
The [http://grass.itc.it/download/index.php Software Download Section] of the main GRASS web site contains the latest binaries and source code for all supported platforms. That site also has general directions for installing GRASS manually. However, installation is slightly different on each operating system. Here you can find user-contributed pointers for installing GRASS on specific platforms. In particular, many operating systems have package management utilities that can greatly simplify GRASS installation.&lt;br /&gt;
&lt;br /&gt;
== GNU/Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
&lt;br /&gt;
A binary version of GRASS is available from the apt repository. As root type:&lt;br /&gt;
&lt;br /&gt;
  apt-get install grass grass-doc&lt;br /&gt;
&lt;br /&gt;
This is the easiest way to install GRASS on Debian. If you choose to install a binary version manually from the main web site, be sure to follow the instructions for making symlinks found as a note to the [[http://grass.itc.it/grass61/binary/linux/snapshot/ 6.1 weekly snapshot]] release.&lt;br /&gt;
&lt;br /&gt;
==== DebianGis ====&lt;br /&gt;
&lt;br /&gt;
There is also the wonderfull [http://pkg-grass.alioth.debian.org/cgi-bin/wiki.pl DebianGIS] project which has a more recent GRASS version with its related packages.&lt;br /&gt;
&lt;br /&gt;
To install from there follow the [http://pkg-grass.alioth.debian.org/cgi-bin/wiki.pl/DebianGisRepository instructions] there&lt;br /&gt;
&lt;br /&gt;
==== Compiling GRASS from source on Debian ====&lt;br /&gt;
Packages needed for (nearly) complete GRASS installation from source code: &lt;br /&gt;
  flex, bison, libreadline4-dev || libreadline5-dev, libncurses5-dev, lesstif2-dev, debhelper (&amp;gt;= 4.0.2), dpatch, libtiff4-dev, &lt;br /&gt;
  tcl8.4-dev, tk8.4-dev, fftw-dev, xlibmesa-gl-dev, libfreetype6-dev, autoconf2.13, autotools-dev, libgdal1-1.3.1-dev, &lt;br /&gt;
  proj (&amp;gt;= 4.4.7), libjpeg62-dev, libpng12-dev, postgresql-dev, unixodbc-dev, doxygen, fakeroot&lt;br /&gt;
&lt;br /&gt;
==== Compile GRASS and package it (debian/testing) ====&lt;br /&gt;
&lt;br /&gt;
  grass6$ fakeroot debian/rules binary&lt;br /&gt;
&lt;br /&gt;
=== Fedora ===&lt;br /&gt;
&lt;br /&gt;
[http://ftp.gwdg.de/pub/misc/freegis/intevation/freegis/fedora/ Intevation] provides RPM-packages for stable releases prepared to install on Fedora systems.&lt;br /&gt;
&lt;br /&gt;
=== Mandriva ===&lt;br /&gt;
&lt;br /&gt;
[http://www.gdf-hannover.de GDF Hannover] provides RPM-packages for stable releases prepared to install on Mandriva systems.&lt;br /&gt;
&lt;br /&gt;
You can download them here: [http://www.gdf-hannover.de/software]&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
[http://www.gdf-hannover.de GDF Hannover] provides RPM-packages for stable releases prepared to install on SUSE-systems.&lt;br /&gt;
&lt;br /&gt;
You can download them here: [http://www.gdf-hannover.de/software]&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
GRASS Binaries are available from apt/synaptic. From a terminal type:&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install grass grass-doc&lt;br /&gt;
&lt;br /&gt;
or alternatively, search for and install these packages from Synaptic. This is the easy way to get GRASS on your system. Even if you choose to install binaries from another source, you may want to install this version just so that all (most) dependencies are installed as painlessly as possible.&lt;br /&gt;
&lt;br /&gt;
To get the latest version of GRASS on Ubuntu, compile the code from source. See the [[Compile and Install]] section for a shell script that makes this easy.&lt;br /&gt;
&lt;br /&gt;
== Mac OS X ==&lt;br /&gt;
&lt;br /&gt;
Precompiled Mac OSX packages can be found [http://www.kyngchaos.com/software/unixport here] and [http://wwwamb.bologna.enea.it/forgrass/download.htm here].&lt;br /&gt;
&lt;br /&gt;
== MS-Windows ==&lt;br /&gt;
&lt;br /&gt;
* Precompiled winGRASS/Cygwin 6.1 packages are provided [http://geni.ath.cx/grass.html here] (requires Cygwin unix emulator, see there).&lt;br /&gt;
&lt;br /&gt;
* Precompiled native winGRASS packages with QGIS integrated are provided [http://gisalaska.com/torrents/ here] (no Cygwin needed).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>⚠️Kyngchaos</name></author>
	</entry>
</feed>