Compiling on macOS using Homebrew
What is homebrew and why use it
To quote from their website:
- easy to install
- does not need administrator privileges
- installs packages to their own directory and then symlinks their files into /usr/local
The formulas to install programs are called recipes and they make it possible to install several version of the same program (as well as HEAD of different Version Control Systems) at the same time which can then be symlinked. This makes it perfect for the purpose of in=stalling HEAD of GRASS GIS for testing purposes.
How to install GRASS GIS 7.1 SVN Head
I assume that homebrew is installed and working.
Different recipes are organized in so called taps which need to be added to homebrew by using brew tap command. The GRASS GIS 7.1 recipes are in the following github repo:
In addition, GRASS GIS has dependencies which can be found in the homebrew/science tap.
To add these two to homebrew, one has to use the commands
brew tap rkrug/head-only brew tap homebrew/science brew update
If you want to use the option --with-liblas make sure that liblas is build using the correct installed version of gdal by running
brew install liblas brew install --build-from-source liblas
The first comand installs from bottles (binary) when available, and the second command reinstalls liblas by building it from source, therby using installed dependencies.
Otherwise you might get the following error when using the option --with-liblas:
checking whether to use libLAS... yes checking for liblas-config... /usr/local/opt/liblas/bin/liblas-config configure: error: *** Unable to locate libLAS library.
Thanks to Glynn Clements for identifying this error (see the mail on gmane).
Finally, GRASS 7.1 SVN can be installed by
brew install --HEAD grass-71
This should be it.
If this does not work, please leave comments at the issues page of the tap or at the grass-dev mailing list.
GRASS GIS 7.0.x for El Capitan without disabling SIP
The new homebrew recipe for GRASS 7.0 does install on El Capitan with SIP enabled! This is thanks to Larry Shaffer. See https://github.com/OSGeo/homebrew-osgeo4mac/issues/118#issuecomment-200278686
The recipe is part of the Homebrew-osgeo4mac tap, see
for info on how to use them.
Install Instructions on OS X with Brew and Anaconda Python
Installations can get complicated or fail if the primary Python is not the system Python, and/or is Python 3. The following commands helped install GRASS 7.0.4 on OS X 10.11.6 even when Anacaconda Python3 is the default Python.
Display the current path, and remove any folders or directories that provide access to the non-system python2.7:
echo $PATH # ~/local/anaconda/bin:/Users/MyName/bin:/usr/local/bin:/usr/bin/sbin
Set GRASS python
Add osgeo to brew as described above:
brew tap osgeo/osgeo4mac brew install numpy brew install wxpython brew install netcdf brew install gdal --with-complete brew install grass-70 --with-netcdf --with-gdal-1
- PATH adjustments are only needed during installation. After installation, the PATH can return to its default value and GRASS works fine.
brew install grass-70is run without explicitly installing gdal as above, gdal-2 is installed. This led to problems importing NetCDF data. Installing gdal with
--with-completeand then explicitly telling grass-70 to use that version fixed this issue.
- There may be other brew dependencies that were installed previously and therefore not listed here.
- There is an osgeo4mac which contains recipes for GRASS GIS 6.4 and 7.0 and other GIS tools - highly re=commendable tap!
- by running
brew test -v grass-71
you can run GRASS GIS tests but they are not implemented as they should be - work in progress.