arbitrary build can't find libs - right way to do this?

Steve Franks stevefranks at
Wed Nov 21 07:50:53 PST 2007

> Steve Franks wrote:
> > On Nov 20, 2007 4:16 PM, Roland Smith <rsmith at> 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'...


More information about the freebsd-questions mailing list