Talk:Compile and Install

From GRASS-Wiki
Jump to navigation Jump to search

--Nikos Alexandris 00:07, 31 March 2017 (PDT)

Ubuntu compilation hints

feedback on following the same directions under Ubuntu 8.10 amd64

  • apt-get says "Couldn't find package bpng12-dev"
HB: try "apt-cache search bpng*-dev". Probably they bumped the version number.

AIX 7.x compilation hints

Hints: Using the GNU C/C++ compiler on AIX

  • conf_proj_AIX.sh:
sh configure --prefix=$HOME/bin --without-mutex
  • conf_sqlite3.sh:
sh configure --prefix=$HOME/bin \
 --disable-shared --disable-threadsafe --disable-tcl
  • conf_gdal.sh:
export LIBICONV=/opt/freeware
export CC="gcc"
export CXX="g++"

PREFIX=$HOME/bin
CFLAGS='-DHAVE_INTTYPES_H=0' ./configure \
 --prefix=$PREFIX --with-libz=internal --with-threads=no --with-geotiff=internal --with-libtiff=internal

echo "Now manually edit:  vim port/cpl_config.h and disable use of AIX's <inttypes.h> header file"
echo "#define HAVE_INTTYPES_H 0"
echo "See bug http://trac.osgeo.org/gdal/ticket/4809"
  • Fix $HOME/bin/gdal-config issue (bug in GRASS GIS 7 or GDAL?): add to the 'CONFIG_LIBS' line the entry
 -lstdc++
  • If you want r.terraflow, patch the source code for a workaround of a gcc bug on AIX:
r.terraflow_AIX_gcc_fix.diff
Index: raster/r.terraflow/stats.h
===================================================================
--- raster/r.terraflow/stats.h  (revision 56936)
+++ raster/r.terraflow/stats.h  (working copy)
@@ -22,6 +22,16 @@
 
 #include <sys/types.h>
 
+/* http://gcc.gnu.org/ml/gcc-patches/2012-09/msg01957.html */
+#if defined(_AIX) && defined(_LARGE_FILES)
+#include <fcntl.h>
+#undef open
+/* Alias the symbols using asm */
+extern "C" {
+extern int open(const char *, int, ...) __asm__("open64");
+}
+#endif
+
 #include <fstream>
 #include <iostream>
 using namespace std;

AIX 5.x compilation hints

  • conf_wget_AIX.sh:
sh configure --prefix=/afs/cluster/grid/user/private/bin/ --disable-nls
  • conf_proj_AIX.sh:
sh configure --prefix=/afs/cluster/grid/user/private/bin --without-mutex
  • conf_gdal_AIX.sh:
export LIBICONV=/opt/freeware
export CC="gcc"
export CXX="g++"
PREFIX=/afs/cluster/grid/user/private/bin
sh configure \
   --prefix=$PREFIX \
   --with-libz=internal \
   --with-threads=no \
   --with-geotiff=internal --with-libtiff=internal
  • conf_grass6_AIX.sh
#!/bin/sh                                          

# optimization
# http://en.gentoo-wiki.com/wiki/Safe_Cflags/Intel
MYCFLAGS="-O2 $XEON"                              
MYCXXFLAGS="-O2"                                  

# debug
#MYCFLAGS="-g"
#MYCXXFLAGS="-g"

########
MYBIN=$HOME/private/bin
MYNAD2BIN=$MYBIN/bin/nad2bin

# 64bit:
CFLAGS="$MYCFLAGS" CXXFLAGS="$MYCXXFLAGS" NAD2BIN=$MYNAD2BIN ./configure \
  --prefix=$MYBIN \
  --with-cxx \
  --enable-largefile \
  --with-gdal=$MYBIN/bin/gdal-config \
  --with-includes=$MYBIN/include \
  --with-proj \
  --with-proj-includes=$MYBIN/include \
  --with-proj-libs=$MYBIN/lib \
  --with-proj-share=$MYBIN/share/proj \
  --with-png=yes \
  --with-tiff=yes \
  --with-tcltk=yes \
  --with-sqlite=yes \
  --with-opengl=yes \
  --with-x=yes \
  --with-nls=no \
  --with-freetype=no \
  --with-jpeg=no \
  --with-postgres=no \
  --with-mysql=no \
  --with-ffmpeg=no \
  --with-odbc=no \
  --with-fftw=no \
  --with-blas=no \
  --with-lapack=no \
  --with-motif=no \
  --with-glw=no \
  --with-readline=no \
  --with-opendwg=no \
  --with-python=no
  • conf_grass7_AIX.sh:
export LIBICONV=/opt/freeware
# comment next two lines for using the IBM xlc compiler:
export CC="gcc"
export CXX="g++"

PREFIX=$HOME/private/bin

CFLAGS='-ansi -D_ALL_SOURCE=1 -D_POSIX_SOURCE=1 -D_POSIX_C_SOURCE=200809L -Dinline=' ./configure \
  --prefix=$PREFIX \
  --disable-shared \
  --enable-largefile \
  --with-cxx \
  --with-proj-includes=$PREFIX/include/ \
  --with-proj-libs=$PREFIX/lib/ \
  --with-proj-share=$PREFIX/share/proj/ \
  --with-sqlite \
  --with-sqlite-includes=$PREFIX/include/ \
  --with-sqlite-libs=$PREFIX/lib/ \
  --with-tiff=no \
  --with-png=no \
  --with-fftw=no \
  --with-cairo=no \
  --with-freetype=no