This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ 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]

[3.3] DESTDIR support


Hello,

this is the DESTDIR patch for the gcc-3_3-branch.  It is
quite similar to the DESTDIR patch for the mainline,
so you may want to take e.g. `destdir5.diff' from
`http://gcc.gnu.org/ml/gcc-patches/2003-01/msg00232.html' and
compare it with the attached `destdir-3.3-0.diff' using

	diff -I'^\(RCS\|retrieving\|diff\|---\|+++\|@@\) ' \
		destdir5.diff destdir-3.3-0.diff

Except for line numbers, the regeneration patches are identical to
the respective 3.4 versions.  The same holds for the documentation
patch which seems to need a dedicated thread ("Re: [doc] DESTDIR
and tooldir") and therefore is not provided here.

The ChangeLog entries are again provided as plain text files
conforming to `http://www.gnu.org/prep/standards_42.html',
packed in the attached `destdir-changelog-3.3-1.tar.gz'.

For the mainline, the top-level `Makefile.{tpl,in}' are kept in
sync with their respective versions in the `src' tree and hence
shall be checked into both repositories.  I do not know whether
similar careabouts exist for the gcc-3_3-branch.  If only src's
mainline mirrors gcc's toplevel, then it has got the patches already.

For a detailed description of the DESTDIR patch, let me refer to
`http://gcc.gnu.org/ml/gcc-patches/2003-01/msg00026.html',
but note that `gcc/mkheaders.in' has been left unchanged,
according to
`http://gcc.gnu.org/ml/gcc-patches/2003-01/msg00111.html'.

Fortunately, only two hunks from the mainline patch did not
immediately apply to the gcc-3_3-branch.  The only affected file
is `gcc/Makefile.in'.  One hunk failed because the gcc-3.3-branch
of that file does not contain an `install-gcc-tooldir' rule which
would need DESTDIRification.  The second hunk failed due to change
of quoting in a context line and could be resolved easily.

Then I rescanned the 3.3 source tree to find remaining places that
may need DESTDIRification, and found, again in `gcc/Makefile.in',
the old `stmp-fixinc' rule.  It includes commands for creating
$(libsubdir) at build time (when cross-compiling with the
default setting of SYSTEM_HEADER_DIR) in order to let the
following compilations find the system header files (which goes
via $(libsubdir)/$(unlibsubdir)/..).  That approach is flawed for
several reasons, but the main point here is that DESTDIRifying the
creation of $(libsubdir) would make no sense there.  The build-time
compilations would need an unrelocated $(libsubdir) anyway.  I have
therefore left the `stmp-fixinc' rule untouched.

This does not make the patch incomplete, however.  The actual
installation performed by "make install" can be relocated with
DESTDIR as it should.  The problem with build-time creation of
a final installdir is just the same problem as before, which the
DESTDIR patch cannot cure.  The 3.4 version of `gcc/Makefile.in'
already supports another approach which properly separates the
installdir creation from the building step and therefore poses no
problem to the DESTDIRification.

(Just for elegance, you may still want to replace the $(libsubdir)
creation fragment with a simple mkinstalldirs command.)

Tested on i686-pc-linux-gnu.

Besides, both mainline and 3.3 need additional fixes of some rules
in `gcc/ada/Make-lang.in', otherwise the Ada binaries and info files
won't get installed into a clean DESTDIR.  Watch out for
`gcc/ada/Make-lang.in: Some install tuning' (no URL yet).

Regards,

Christian Cornelssen

Attachment: destdir-3.3-1.diff
Description: Text document

Attachment: destdir-no-am-3.3-1.diff
Description: Text document

Attachment: destdir-no-ag-3.3-1.diff
Description: Text document

Attachment: destdir-changelog-3.3-1.tar.gz
Description: application/gunzip


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