includes, configure, /usr/lib vs. /usr/local/lib, and linux coders

Nate Eldredge neldredge at math.ucsd.edu
Fri Oct 31 12:46:42 PDT 2008


On Fri, 31 Oct 2008, Steve Franks wrote:

> Let's backup.  What's the 'right' way to get a bloody linux program
> that expects all it's headers in /usr/include to compile on freebsd
> where all the headers are in /usr/local/include?  That's all I'm
> really asking.  Specifically, it's looking for libusb & libftdi.  If I
> just type gmake, it can't find it, but if I manually edit the
> Makefiles to add -I/usr/local/include, it can.  Obviously, manually
> editing the makefiles is *not* the right way to fix it (plus it's
> driving me crazy).

C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/include
LIBRARY_PATH=$LIBRARY_PATH:/usr/local/lib
export C_INCLUDE_PATH LIBRARY_PATH
./configure
gmake

Adjust as appropriate if using csh.

Personally, I set those environment variables in my .profile.

By the way, I think you're being a little unfair to blame this on Linux 
programs or programmers.  Normally it's the user's responsibility to 
ensure that their compiler searches for include files, etc, in the 
appropriate place.  Many Linux distributions put everything in 
/usr/include, which is searched by default.  FreeBSD puts stuff from ports 
in /usr/local/include which isn't searched by default.  I find that 
behavior inconvenient, which is why I set those environment variables, so 
I don't have to think about it.

-- 

Nate Eldredge
neldredge at math.ucsd.edu


More information about the freebsd-hackers mailing list