Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Nov 2007 08:50:51 -0700
From:      "Steve Franks" <stevefranks@ieee.org>
To:        "Chuck Robey" <chuckr@chuckr.org>
Cc:        rsmith@xs4all.nl, User Questions <freebsd-questions@freebsd.org>
Subject:   Re: arbitrary build can't find libs - right way to do this?
Message-ID:  <539c60b90711210750x1249b0dard6213bb0b27f40ce@mail.gmail.com>
In-Reply-To: <4743A8BF.3070802@chuckr.org>
References:  <539c60b90711201434s361ec72co898fad601f35535a@mail.gmail.com> <20071120231601.GB1161@slackbox.xs4all.nl> <539c60b90711201612o5c8cfc99ma53829b181959e15@mail.gmail.com> <4743A8BF.3070802@chuckr.org>

next in thread | previous in thread | raw e-mail | index | archive | help
>
> Steve Franks wrote:
> > On Nov 20, 2007 4:16 PM, Roland Smith <rsmith@xs4all.nl> wrote:
> >> On Tue, Nov 20, 2007 at 03:34:29PM -0700, Steve Franks wrote:
> >>> I'm trying to compile a non-port application for the first time ever.
> >>> The associated library built and installed just fine - I can see them
> >>> right in /usr/local/lib and usr/local/include/libnamefoo.h  However,
> >>> when I run ./configure for the application, it clearly can't find the
> >>> libs.  So my question is, should I be changing my path, is there a
> >>> standard variable I need to export, or what?  Obviously for ports this
> >>> just works, so I've never had to do it.  I'm sure there's a standard
> >>> way, so I thought I'd get in the habit of doing that right from the
> >>> start...
> >> The best way would be to write a port makefile and submit it. That way
> >> you only have to figure it out once. Especially if the app needs patches
> >> to work correctly on FreeBSD. And in case of a free software app, others
> >> can use it as well, _and_ help you with bugfixing. :-) For closed source
> >> stuff submitting a port would probably be useless.
> >
> > I'd love to (submit a port), but how do I make a port if I can't even
> > get it to work the first time myself?
> >     configure --includedir=/usr/local/include doesn't work;
> >     export CPATH =/usr/local/include doesn't work;
> >     export CPPFLAGS -l/usr/local/include doesn't work;
> >     I've checked the permissions,
> >     and I can see the file right there, but configure/gcc can't.  The
> > developer swears something must be 'different' about freebsd because
> > his gcc finds the same file in /usr/local/include.  Appears his system
> > is gentoo
>
> You don't givec me really enoough for me to go on, but I think really
> you need to know about 3 options to gcc (at least one of which you
> should be using, but you aren't)
>
> -v = means for gcc (which is really a smallish driver program for the
> real compiler) to show all of the subprograms that it kicks off,
> including all of the parameters it uses, and specifically for you, it
> shows the entire lib and include file search path it knows aboout.
> You aren't using this, so far as I can see.
>
> The other two are options to add to the default search path.  Above, it
> seems like you are using -l to add an include file path, this is wrong,
> you should use -I, -l is to specify specific libraries to link in, not a
> path to search for the libs in.  To add a library search path, you use -L.
>
>

Well, after several permutations, I believe the magic string was:

    export CPPFLAGS='-I/usr/local/include'

Near as I can tell, double quotes, CFLAGS, and CPATH were all
failures, but I ain't the expert in these matters.  Novices replace
'export' with 'setenv' if they are on csh instead of bash, right?

Anyway, thanks for all the replies - now to start reading that
'porter's handbook'...

Steve



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?539c60b90711210750x1249b0dard6213bb0b27f40ce>