This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Confused about build proceedure srcdir vs objdir


Florian Weimer <fw@deneb.enyo.de> writes:

> Harry Putnam <reader@newsguy.com> writes:
>
>> Very thick skull here.  Can we ditch the jargon?
>
> | We use @var{srcdir} to refer to the toplevel source directory for
> | GCC; we use @var{objdir} to refer to the toplevel build/object directory.
>  
> Why is this description so unclear?  Do you think it would help to
> change it to:

Let me start by saying that it is clear that some extensive effort
went into trying to provide adequate instruction.  And that it is all
there if one pays close attention and reads *all* the INSTALL/*.html
files.

Now in answer to your question: Objdir was meaningless to me. I
suspect it would be to many people.  Calling what is really just a
certain file, an `object' may be the `in term' amongst programmers,
but not at large.

Other aspects of compiling gcc are different than one expects.
The `make bootstrap' part, and building from somewhere besides the toplevel
directory. 

> | We use @var{srcdir} to refer to the toplevel source directory for
> | GCC (populated with the contents of the distribution tarball, or a
> | checked-out copy from the GCC CVS); we use @var{objdir} to refer to
> | the toplevel build/object directory (in which the files generated
> | during the build process will reside).

This doesn't seem much clearer than what is there, but contains more
verbiage.  objdir should disappear altogether in favor of builddir..
or some other name that couples the idea of building with a directory
name. What is currently there:

   We  use  srcdir  to refer to the toplevel source directory for GCC; we
   use objdir to refer to the toplevel build/object directory.

Could be edited a bit to read:

(Keep in mind, that I am still not totally sure of where `builddir' is 
 supposed to be... The help files and posts here seem to indicate it
 should be a subdirectory of gcc-3.0.2, but then there is talk of it
 being `outside' the source tree.. that is confusing)

   We use srcdir to refer to the toplevel directory of GCC package.
   (Top level of unpacked GCC.tar.gz)

   We use `builddir' to refer to a user created sub-directory under
   the top level directory of GCC package.  We recommend running the
   compile from `builddir'.

Most gnu packages include an INSTALL file in the top level directory,
with a simple outline of what steps are needed:
 
They boil down to this:
tar xzvf gnu_package-1.1.tar.gz
cd gnu_package-1.1.tar.gz
./configure
make
make install

The gcc package lacks that file and instead has an INSTALL directory
with a series of *.html instruction files.  I think the package would
benefit by renaming INSTALL to install and keeping a single INSTALL
file with a few basic things like a simplified outline.  And pointers to
the more detailed instruction in ./install/*.html

INSTALL/Configure.html contains an outline but it may be
too brief (and jargonized) to be usefull.

   To configure GCC:
   % mkdir objdir
   % cd objdir
   % srcdir/configure [options] [target]

People familiar with gnu software will expect the traditional INSTALL
and look there for quick instructions.

I mentioned that I am not very experienced in this, but of the 20 or so
gnu packages I have built from source, all followed the above proceedure

Why not follow that tradition?  In this case using 
Paolo Carlinis' useful and clear outline

gunzip gcc-3.0.2.tar.gz

tar xf gcc-3.0.2.tar

mkdir gcc-3.0.2-builddir
cd gcc-3.0.2-builddir
../gcc-3.0.2/configure {options}
 (possible include a brief explanation here of why this unusual step
  is needed -ed HP)

make bootstrap
 (possibly include a brief explanantion here of this unsual option and why
  it is needed -ed HP)

make check
su
make install



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]