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>