Gregor Best wrote: > On Wed, Mar 16, 2016 at 12:04:31AM -0400, Michael McConville wrote: > > Michael McConville wrote: > > > For some reason, it picks up guile if available and uses it even if > > > guile2 (which is the only one that works here) is installed. I didn't > > > see a configure option to force guile2. If only guile2 is installed, it > > > works as expected. What's the best way of dealing with this? > > > > I should probably give a little more information on this, as I spent a > > while on it: > > > > When guile 1.x is present, the configure script still recognizes and > > chooses guile 2. Moreover, the correct pkg-config seems to be used, as > > the guile 2 include headers are visible in the cc commands. I tried > > looking into where things are failing, but it uses all sorts of > > unfamiliar GNU build gunk (I think it might even bootstrap). > > > > I think the issue is that guile1.x installs its main header to > /usr/local/include/libguile.h > and guile2.x installs it to > /usr/local/include/guile/2.0/libguile.h > > If you use pkg-config to get flags for guile2.x, the header for guile1.x > is still in your include path and, depending on the order of flags, gets > picked up before the one for guile2. > > I've had a similar problem when I worked on a project of mine. I think > the correct way to fix this would be to have the guile1.x port install > its headers to /usr/local/include/guile/1.8 or something like that.
I think you're right. I was misunderstanding how include precedence works. I though that because they were specified in this order: > -I/usr/local/include/guile/2.0 -I/usr/local/include guile2 should be picked up, but it seems that that isn't the case.