Compiling under Funtoo-Linux
First, emerge the general requirements (or ensure they are already installed)
emerge -av gcc make zlib flex bison python
It may be that a utility is missing for your configuration.
In case the missing utility is part of a package with another name,
e-file tool comes in handy to identify the uninstalled package.
to search for the package that provides the
(in which case it is
wxwidgets), it can be searched via
Then, emerge optional packages (you likely want to have these!)
USE="wxwidgets" emerge -av bzip2 fftw lapack libpng libgeotiff readline sqlite freetype ctypesgen wxpython numpy python-dateutil ply pillow matplotlib six cairo
There is more that can be installed, like databases and support for additional raster drivers/formats. Anyhow, before compiling GRASS GIS, make sure that Python version 3 is set to be the one "visible" to the system.
eselect python list # list available versions eselect python set 1 # probably #1 is python 2.7
To compile GRASS GIS, at least two extra libraries are required: PROJ and GDAL/OGR. Please consult their documentation on how to compile the latest stable resleases from source. The versions that are available through Portage, are usually not up-to-date!
# clean previous configuration make distclean # update source code svn up # renice! source: <http://lists.osgeo.org/pipermail/grass-user/2013-May/068229.html> renice +17 -p $$ # configure ./configure \ --with-freetype=yes \ --with-freetype-includes="/usr/include/freetype2/" \ 2>&1 | tee config_log.txt
# compile time make -j4 # optionally, check the compilation # time make check
More elaborated example
# clean time make distclean # update time git pull # taken from <http://lists.osgeo.org/pipermail/grass-user/2013-May/068229.html> renice +17 -p $$ # configure CFLAGS="-ggdb -march=native -Wall -Werror-implicit-function-declaration" \ ./configure \ --with-cxx \ --with-includes=/usr/include/ \ --with-libs=/usr/lib64/ \ --with-proj \ --with-proj-includes=/usr/include/ \ --with-proj-libs=/usr/lib64/ \ --with-proj-share=/usr/share/proj/ \ --with-geos \ --with-geos=/usr/bin/geos-config \ --with-gdal=/usr/local/bin/gdal-config \ --with-x \ --with-motif \ --with-cairo \ --with-opengl-libs=/usr/include/GL \ --without-ffmpeg \ --with-python=yes \ --with-wxwidgets \ --with-freetype=yes \ --with-freetype-includes=/usr/include/freetype2 \ --with-odbc=yes \ --with-sqlite=yes \ --with-postgres=yes \ --with-postgresql=yes \ --with-postgres-includes=/usr/include/postgresql \ --with-opencl \ --with-opencl-includes=/usr/include/CL/ \ --with-openmp \ --with-pthread \ --with-lapack \ --with-fftw \ --with-readline \ --with-regex \ --with-nls \ --with-jpeg \ --with-tiff \ --with-png \ --with-netcdf \ --without-opendwg \ --enable-largefile=yes \ --with-bzlib \ --with-bzlib-includes="/usr/include/" \ --with-zstd \ 2>&1 | tee config_log.txt # compile time make -j2 echo ARCH=$(grep -m 1 ARCH config.status |cut -d "%" -f3) echo " Start script is located in: ./$BINDIR/bin.$ARCH" echo " Binaries are located in: ./$PREFIX/dist.$ARCH"