Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 31 Oct 2008 16:21:45 -0400 (EDT)
From:      Daniel Eischen <deischen@freebsd.org>
To:        Nate Eldredge <neldredge@math.ucsd.edu>
Cc:        freebsd-hackers <freebsd-hackers@freebsd.org>, Steve Franks <stevefranks@ieee.org>
Subject:   Re: includes, configure, /usr/lib vs. /usr/local/lib, and linux coders
Message-ID:  <Pine.GSO.4.64.0810311610430.2317@sea.ntplx.net>
In-Reply-To: <Pine.GSO.4.64.0810311238580.16737@zeno.ucsd.edu>
References:  <539c60b90810311123w2aa94b8akcd0a5d0fe791885a@mail.gmail.com>  <Pine.GSO.4.64.0810311154030.16737@zeno.ucsd.edu> <539c60b90810311230i11460966la7ff35b0093642ec@mail.gmail.com> <Pine.GSO.4.64.0810311238580.16737@zeno.ucsd.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 31 Oct 2008, Nate Eldredge wrote:

> 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.

I don't really care who's to blame (I'd guess I'd blame both
the Linux distros and the Linux application developers), but
the move to put everything in /usr/include and /usr/lib annoys
the heck out of me.  It blurs the line between the base OS and
installed 3rd party software.  Perhaps that's because Linux is
really just a kernel, and to the distributors - most, if not
all, of their software is 3rd-party.

It's really nice to be able to install 3rd-party software
so that it doesn't affect the base OS.  On FreeBSD, it's
easy enough just to 'rm -rf /usr/local' and start fresh
without having to worry about screwing up the base OS.

-- 
DE



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