./configure command

Ralf Corsepius rc040203 at freenet.de
Fri Apr 7 03:32:46 UTC 2006

On Thu, 2006-04-06 at 21:22 -0500, Michael Hennebry wrote:
> yum gcc
> will probably get gcc,
> but not necessarily one the OP needs
> if he needs the mentioned cross-compiler
> for a new-fangled microcontroller.
> If they are there, he is going to
> need to find the options that will
> build a cross-compiler.
> If they are not there,
> he will have to compile from source.
> Since he does not now have a compiler,
> yum gcc
> will still be necessary for
> building the cross-compiler.
> If he needs a cross-compiler
> for a new-fangled machine,
> he will need to do more than
> just select options,
> he will need to teach
> gcc the instruction set of
> the new-fangled machine.
> Once he has built his new compiler,
> he will probably need to compile a new
> set of standard libraries to go with it.
> About ./configure and make:
> Performing ./configure and make as an
> ordinary user is probably safe enough.
Well, though it's safe in the sense of "It won't corrupt your system",
this is likely to have other side-effects on this user.

> It's doing the make install as root
> that has the potential for trouble.
> My first thought in this regard
> is to determine whether one really
> wants the software installed as
> as system software.  If not,
> something like
> make prefix=$HOME/verylocal install
> will probably do the trick.
Nope. Think along library search paths, include file search paths
configuration file search paths and hard-coded directory/filenames.

In most case you will want
configure --prefix=$HOME/verylocal
make prefix=$HOME/verylocal

because packages containing hard-codes directories/filenames/paths will
encode them at configuration time.
I.e. most packages having been configured with
./configure --prefix=/usr
and installed with
make prefix=$HOME
will contain hard-coded references to /usr instead of $HOME.

> One does not have to become root.
> If one does want the software
> installed as system software,
> do some testing first.
> Edit Makefile,
> removing any .SILENT targets.
> As an ordinary user,
> make -n prefix=/opt 'CP=cp -i' install 2>&1 | tee makeno.out
Same as above. This won't work in most cases.

> Package management is most useful on system
> software that is used by other system software.
> On software on top of the food chain it's not as useful,
> though it's not necessarily useless.
I disagree. 


More information about the users mailing list