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]
Other format: [Raw text]

RE: Installing GCC: Some more elementary questions.


Kabir Patel wrote:

*Beware* that you need an existing C compiler to build the GCC sources.
If you do not already have a C compiler on your system then you will
need a binary distribution of GCC. Follow the 'binaries' link on
http://gcc.gnu.org/.

> a) It states "We use srcdir to refer to the toplevel source
> directory for GCC; we use objdir to refer to the toplevel
> build/object directory."
> 
> Is srcdir the place where I copied the uncompressed files into?

Perhaps: it's the 'gcc-3.02' directory (or similar) that was generated
by the untar operation. (I'm not sure why you'd have to copy them -
unless you're doing a binutils / toolchain merge on a system without
hard links, and I doubt you are.)

> What files initially go into objdir?

Nothing; the configure step generates files here.

> b) It also states "If you obtained the sources via CVS, srcdir must
> refer to the top gcc directory, the one where the MAINTAINERS can
> be found, and not its gcc subdirectory, otherwise the build will
> fail. "

(If you don't understand this, this probably doesn't apply.)

> What does CVS stand for?

Concurrent Versions System. See http://www.cvshome.org/. It's the source
control system used for GCC development.

> What does the MAINTAINERS mean?

Perhaps "the MAINTAINERS" is unclear. MAINTAINERS is a file that
contains a list of people with permissions to make changes to the GCC
CVS source repository. You'll find it in srcdir.

> c) Further it states "First, we highly recommend that GCC be built
> into a separate directory than the sources which does not reside
> within the source tree."
> 
> What does the sources mean? Is this just the set of uncompressed
> files I copied over?

Yes - these are the source files for the compiler (which are compiled
into assembler files, which are assembled into binary object files,
which are linked to form a binary executable).

> What does it mean by source tree?

It means srcdir, its subdirectories, all of their subdirectories, etc.
I.e. you should not make 'objdir' a subdirectory of 'srcdir'.

> d) If I just want a simple C compiler do I need to use the "options"
> and "target" specifications mentioned below?
> 
>    % mkdir objdir
>    % cd objdir
>    % srcdir/configure [options] [target]

You're expected to substitute those with the relevant options and target
name for your own situation.

To see a list of available compile options, you would run
'srcdir/configure --help' in the above example. Unless you're going to
install the compiler as root, you at least want to specify '--prefix' to
point to somewhere in or beneath your own home directory. You may also
want to specify '--enable-threads'. If you just want a plain C compiler,
you can specify '--enable-languages=c' or '--enable-languages=c++' to
build C and C++. If you don't specify a language set, it will probably
attempt to build compilers for C, C++, Objective C, Java and Fortran 77.

If you're building a native compiler (i.e. to be run on and to compile
for the machine you're building it on) then you don't need to specify
target.

Hope that helps,
Rup.


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