Compiling under Funtoo-Linux

The Generic Compilation & installation procedure is valid also for the Funtoo-Linux meta-distribution. The following example scripts are provided as a mean to get started.

Installing dependencies

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, the e-file tool comes in handy to identify the uninstalled package. For example, to search for the package that provides the wx-config utility (in which case it is wxwidgets), it can be searched via

e-file wx-config

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: <>
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 <>
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

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"
Last modified 7 weeks ago Last modified on Feb 12, 2020, 2:20:29 PM