[GRASS-dev] compilation of grass on AIX 7.1

Markus Metz markus.metz.giswork at gmail.com
Fri Jun 28 12:37:55 PDT 2013


On Fri, Jun 28, 2013 at 9:09 PM, Markus Neteler <neteler at osgeo.org> wrote:
> On Fri, Jun 28, 2013 at 8:29 PM, Markus Metz
> <markus.metz.giswork at gmail.com> wrote:
>> On Fri, Jun 28, 2013 at 7:13 AM, Markus Neteler <neteler at osgeo.org> wrote:
> ...
>>> How to tell GRASS 7 in configure to pick up the  /opt/freeware/ include file and
>>> library?
>>
>> In general, you can use some influential environment variables:
>>   CFLAGS      C compiler flags
>>   LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
>>               nonstandard directory <lib dir>
>>   LIBS        libraries to pass to the linker, e.g. -l<library>
>>   CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
>>               you have headers in a nonstandard directory <include dir>
>>
>> If some components are in non-standard /opt/freeware/, you could try to set
>>
>> LDFLAGS="-bsvr4 -R/opt/freeware/lib" CPPFLAGS="-I/opt/freeware/include"
>
> Not on AIX it seems...:
>
> checking whether the C compiler (gcc  -bsvr4 -R/opt/freeware/lib) works... no
> configure: error: installation or configuration problem: C compiler
> cannot create executables.
>
> cat config.log
> ...
> configure:754: checking host system type
> configure:777: checking for gcc
> configure:881: checking whether the C compiler (gcc  -bsvr4
> -R/opt/freeware/lib) works
> configure:897: gcc -o conftest  -I/opt/freeware/include -bsvr4
> -R/opt/freeware/lib conftest.c  1>&5
> gcc: error: unrecognized option '-bsvr4'
> gcc: error: unrecognized option '-R'
> ...
>

Oops, LDFLAGS should probably be
LDFLAGS="-Wl,-bsvr4,-R,/opt/freeware/lib -L/opt/freeware/lib"

For comparison, on Solaris, these extra packages including gdal are in
/opt/csw and I need to set

LDFLAGS="-Wl,-R/opt/csw/lib -L/opt/csw/lib -Wl,-R/opt/csw/gxx/lib
-L/opt/csw/gxx/lib"

in order to 1) get GRASS compiled, 2) get GRASS running, because
anything in /opt/csw should only be used by applications compiled
against it. By default, the system does not know about applications,
libraries or headers in /opt/csw, and I guess that this principle
(hide extra packages from the system) is common for both UNIX systems,
AIX and Solaris.

> Sigh :-)

Alternatively, try to disable nls, i.e. do not --enable-nls during
configuration.

Markus M


More information about the grass-dev mailing list