From mboxrd@z Thu Jan 1 00:00:00 1970 From: Harry Putnam To: Florian Weimer Cc: gcc-help@gcc.gnu.org Subject: Re: Confused about build proceedure srcdir vs objdir Date: Sun, 28 Oct 2001 07:25:00 -0000 Message-id: References: <871yjph1ay.fsf@deneb.enyo.de> <87vgh0go6q.fsf@deneb.enyo.de> X-SW-Source: 2001-10/msg00260.html Florian Weimer writes: > Harry Putnam 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