[GRASSLIST:2958] Re: compiling grass 5.3 on SuSe 9.0

Glynn Clements glynn.clements at virgin.net
Tue Mar 16 03:35:26 EST 2004


otto dassau wrote:

> I try to compile grass 5.3 CVS on a SuSe 9.0  
> but cannot find the tcltk libraries and/or include  
> files. Currently ./configure uses: 
>  
> --with-tcltk-includes='/usr/include/ /usr/local/include/ \ 
> /usr/X11R6/include/ /opt/gnome/include/ /opt/kde3/include/ \ 
> /usr/X11R6/include/' \ 
> --with-tcltk-libs='/usr/lib/ /usr/share/lib/ /usr/local/lib/ \ 
> /usr/share/lib/ /usr/lib/tcl8.4/ /usr/lib/tk8.4/ /usr/X11R6/lib/' \ 
>  
> Software with development packages are installed. How can I find out,  
> which path I have to use? Does anybody have experiences with  
> SuSe 9.0? 

If you have installed the vendor's Tcl/Tk packages, you shouldn't need
any switches, as the relevant files invariably go into /usr/include
and /usr/lib, which are searched automatically.

You should normally only need to use --with-<package>-includes= or
--with-<package>-libs switches if you are using packages which aren't
installed in /usr/include and /usr/lib (e.g. those which you compiled
yourself or third-party add-ons, which often go under /usr/local).

The only common exception is PostgreSQL, whose headers normally go
into a subdirectory, but the subdirectory isn't part of the header's
official name (this doesn't apply to OpenGL, X11 etc, as those headers
use the subdirectory as part as their name, e.g. <GL/gl.h>, <X11/X.h>
etc).

If the configure checks fail, it is usually because the files "don't
work" in some sense, not because they aren't "found".

Configure checks don't merely check that a suitably-named file exists;
they actually attempt to use the file. For header files, this involves
compiling a trivial C program which #include's the header file. For
libraries, this involves compiling and linking a trivial C program
which calls a specific function which should be provided by the
library.

For headers, the check fails if the compiler produces any output. Even
if only warnings (rather than errors) are emitted, the check will
still fail. The compiler's exit code is ignored.

For libraries the check fails if the compiler returns a non-zero exit
code, or if no executable was created.

In general, if a configure check fails, but you're certain that the
header or library is installed in the expected place, look in
config.log for any error messages.

But note that there may be multiple attempts for a single header or
library; in that situation, the check only fails if all attempts
failed. For Tcl/Tk, only one attempt is made for each of the two
headers (tcl.h and tk.h), while six attempts are made for each library
(libtcl and libtk).

Also, note that the Tcl/Tk configure checks are only relevant for
NVIZ; the tcltkgrass package doesn't use that information, and is
built even if you use --without-tcltk.

-- 
Glynn Clements <glynn.clements at virgin.net>




More information about the grass-user mailing list