Developers
I have just updated my CVS branches and attempted a re-compilation: I have not done a general compilation for two weeks approx. I find that the configure bombs out with
ddgray@armadce:/arc/ddgray/cvs/main/grass$ CFLAGS="-g" LDFLAGS="" ./configure --prefix=/opt --bindir=/usr/local/bin --with-tiff-includes=/usr/include --with-tiff-libs=/usr/lib --with-tcl-includes=/usr/include --with-tcl-libs=/usr/lib
checking host system type... i686-pc-linux-gnu
checking for gcc... gcc
checking whether the C compiler (gcc -g ) works... yes
checking whether the C compiler (gcc -g ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking for full floating-point support... yes
checking for SysV... no
checking for another button... no
checking for XDriver... socket
[...]
checking for gdImageGif in -lgd... no
checking for gdImageCreateTrueColor in -lgd... no
checking whether to use Tcl/Tk... yes
checking for location of Tcl/Tk includes...
checking for tcl.h... yes
checking for tk.h... yes
checking Tcl version... 7.6
checking Tk version... 4.2
configure: error: *** Tcl/Tk version mismatch.
This is picking up Tcl/Tk for TkStep, an old version I still require in /usr/local/*. I tried to configure as you can see that it would pick up the correct 8.3 libs in /usr/* (I actually have 6 Tcl versions scattered about). Then I noticed that this only appends the include and lib directories specified. If that is the case, it seems wrong to me: the `--with-tcl-incudes' should specify where to look, or at least prepend the specified directory. I notice the tiff libs are searched the same way, perhaps all search paths are specified this way. If so, can they all be changed?
David
On Sat, Jan 26, 2002 at 11:00:27PM +0000, David D Gray wrote:
Developers
I have just updated my CVS branches and attempted a re-compilation: I
have not done a general compilation for two weeks approx. I find that
the configure bombs out with
ddgray@armadce:/arc/ddgray/cvs/main/grass$ CFLAGS="-g" LDFLAGS=""
./configure --prefix=/opt --bindir=/usr/local/bin
--with-tiff-includes=/usr/include --with-tiff-libs=/usr/lib
--with-tcl-includes=/usr/include --with-tcl-libs=/usr/lib
checking host system type... i686-pc-linux-gnu
checking for gcc... gcc
checking whether the C compiler (gcc -g ) works... yes
checking whether the C compiler (gcc -g ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking for full floating-point support... yes
checking for SysV... no
checking for another button... no
checking for XDriver... socket
[...]
checking for gdImageGif in -lgd... no
checking for gdImageCreateTrueColor in -lgd... no
checking whether to use Tcl/Tk... yes
checking for location of Tcl/Tk includes...
checking for tcl.h... yes
checking for tk.h... yes
checking Tcl version... 7.6
checking Tk version... 4.2
configure: error: *** Tcl/Tk version mismatch.
This is picking up Tcl/Tk for TkStep, an old version I still require in
/usr/local/*. I tried to configure as you can see that it would pick up
the correct 8.3 libs in /usr/* (I actually have 6 Tcl versions scattered
about). Then I noticed that this only appends the include and lib
directories specified. If that is the case, it seems wrong to me: the
`--with-tcl-incudes' should specify where to look, or at least prepend
the specified directory. I notice the tiff libs are searched the same
way, perhaps all search paths are specified this way. If so, can they
all be changed?
David
... ah - I am not the only
Also here the configure picks up
a wrong version, although I tried to eliminate all oldish tcl/tk
stuff. My parameters to configure seem to be somewhat ignored.
Markus
A follow-up
the recent sync of the configure versions have solved the
problem of tcl/tk lib detection (at least for me).
Thanks, Glynn,
Markus
David D Gray wrote:
This is picking up Tcl/Tk for TkStep, an old version I still require in
/usr/local/*. I tried to configure as you can see that it would pick up
the correct 8.3 libs in /usr/* (I actually have 6 Tcl versions scattered
about). Then I noticed that this only appends the include and lib
directories specified. If that is the case, it seems wrong to me: the
`--with-tcl-incudes' should specify where to look, or at least prepend
the specified directory. I notice the tiff libs are searched the same
way, perhaps all search paths are specified this way. If so, can they
all be changed?
I've fixed the configure checks.
--
Glynn Clements <glynn.clements@virgin.net>
Glynn Clements wrote:
David D Gray wrote:
This is picking up Tcl/Tk for TkStep, an old version I still require in /usr/local/*. I tried to configure as you can see that it would pick up the correct 8.3 libs in /usr/* (I actually have 6 Tcl versions scattered about). Then I noticed that this only appends the include and lib directories specified. If that is the case, it seems wrong to me: the `--with-tcl-incudes' should specify where to look, or at least prepend the specified directory. I notice the tiff libs are searched the same way, perhaps all search paths are specified this way. If so, can they all be changed?
I've fixed the configure checks.
It's still picking up the headers in the /usr/local/include directory. However if I disable these temporarily, the correct headers in /usr/include are found.
David
David D Gray wrote:
> >This is picking up Tcl/Tk for TkStep, an old version I still require in
> >/usr/local/*. I tried to configure as you can see that it would pick up
> >the correct 8.3 libs in /usr/* (I actually have 6 Tcl versions scattered
> >about). Then I noticed that this only appends the include and lib
> >directories specified. If that is the case, it seems wrong to me: the
> >`--with-tcl-incudes' should specify where to look, or at least prepend
> >the specified directory. I notice the tiff libs are searched the same
> >way, perhaps all search paths are specified this way. If so, can they
> >all be changed?
> >
>
> I've fixed the configure checks.
It's still picking up the headers in the /usr/local/include directory.
However if I disable these temporarily, the correct headers in
/usr/include are found.
I think that you're experiencing gcc's default header search path:
/usr/local/include
/usr/<platform>/include
/usr/lib/gcc-lib/<platform>/<version>/include
/usr/include
If you install headers into /usr/local/include, they effectively
supersede any corresponding headers in /usr/include. In general, don't
install headers into /usr/local/include if you want to still be able
to use the versions from /usr/include.
You can force the addition of -I/usr/include with:
--with-tcltk-includes=/usr/include
On GNU-only systems (i.e. Linux), that's generally safe, but on other
systems (notably Solaris) it's often fatal (typically, gcc picks up
the system's stdarg.h from /usr/include instead of gcc's version and
bad things happen thereafter).
The original behaviour was incorrect (the library-specific -I switches
*should* be prepended), but it wasn't responsible for your problem.
--
Glynn Clements <glynn.clements@virgin.net>
Glynn Clements wrote:
David D Gray wrote:
This is picking up Tcl/Tk for TkStep, an old version I still require in /usr/local/*. I tried to configure as you can see that it would pick up the correct 8.3 libs in /usr/* (I actually have 6 Tcl versions scattered about). Then I noticed that this only appends the include and lib directories specified. If that is the case, it seems wrong to me: the `--with-tcl-incudes' should specify where to look, or at least prepend the specified directory. I notice the tiff libs are searched the same way, perhaps all search paths are specified this way. If so, can they all be changed?
I've fixed the configure checks.
It's still picking up the headers in the /usr/local/include directory. However if I disable these temporarily, the correct headers in /usr/include are found.
I think that you're experiencing gcc's default header search path:
/usr/local/include
/usr/<platform>/include
/usr/lib/gcc-lib/<platform>/<version>/include
/usr/include
If you install headers into /usr/local/include, they effectively
supersede any corresponding headers in /usr/include. In general, don't
install headers into /usr/local/include if you want to still be able
to use the versions from /usr/include.
You can force the addition of -I/usr/include with:
--with-tcltk-includes=/usr/include
And therein lies the problem. It was my goof after all. I put `--with-tcl-includes' instead of `--with-tcltk-includes', and so happened as you describe. Presumably because, with so many variants of Tcl/Tk around, I'm so used to it.
But that raises another question. Shouldn't configure stop if a
wrong option is supplied? I have seen that on many configure runs in the past, with various projects' sources.
David
David D Gray wrote:
But that raises another question. Shouldn't configure stop if a
wrong option is supplied? I have seen that on many configure runs in the
past, with various projects' sources.
The autoconf documentation says:
`configure' scripts do not complain about `--with-PACKAGE' options
that they do not support. This behavior permits configuring a source
tree containing multiple packages with a top-level `configure' script
when the packages support different options, without spurious error
messages about options that some of the packages support. An
unfortunate side effect is that option spelling errors are not
diagnosed. No better approach to this problem has been suggested so
far.
IOW, "It's A Feature, Not A Bug".
Unfortunately, the behaviour can't easily be changed.
--
Glynn Clements <glynn.clements@virgin.net>