Make-depend still broken in ROOT 2.22.10

From: Matthew D. Langston (langston@SLAC.stanford.edu)
Date: Wed Aug 04 1999 - 07:00:29 MEST


`Make-depend' is still broken in ROOT 2.22.10.  This file has contained
illegal characters for the last few releases of ROOT, making it
impossible to compile ROOT from source.  Also, the "depend" target in
`Make-macros' is broken as well (at least for RedHat Linux 6.0 Intel
systems), since the program it calls to generate dependencies is
non-existent in the binary distribution.

The following perl snippet will fix this:

  $ cd $ROOTSYS/src
  $ perl -i.orig -p -e 's{(?:/|\$ROOTSYS)[^\s]+}{};s{^[^:]+:\s*$}{}' Make-depend

If by some chance you don't have Perl on your system, but you have
"sed", then the Perl command can be replaced with the following two
lines:

  $ cd $ROOTSYS/src
  $ mv Make-depend Make-depend.orig
  $ sed -e 's/\$ROOTSYS//' -e 's/\/[^ 	][^ 	]*//' -e '/^[^:][^:]*:[ 	]$/d' Make-depend.orig > Make-depend

NOTE: In the sed command above, the last two characters within the 1st,
      2nd and 5th square brackets are a SPACE followed by a TAB.  Some
      broken MTUs translate TAB incorrectly, so you may need to add the
      TAB characters back in by hand.

The ROOT Makefiles should probably not have Makefile header dependencies
on external packages.  This will only get in the way of the general ROOT
user.  Am I missing something as to why they continue to be distributed?
Perhaps there are users who want or need this feature for some reason
unknown to me.  Is this the case?

The `Make-depend' file is a valuable courtesy to the general ROOT user,
and having it work consistently on multiple platforms can only be
guaranteed if the Makefile header dependencies are limited to those
files which the ROOT packager has direct control over, namely the ROOT
package itself.

--
Matthew D. Langston
SLD, Stanford Linear Accelerator Center
langston@SLAC.Stanford.EDU



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:37 MET