Hi Jeff, Jeff Templon wrote: > > I have downloaded and installed ROOT version 2.21/01 which is the most > recent version mentioned on the ROOT pages which is appropriate for > RedHat 5.2 system. All other binary kits require a more recent > version of the egcs suite. I will upgrade to the more recent ROOT > version when I upgrade RedHat versions. I have written simple instructions on how to compile ROOT from *pure source* that doesn't require any binaries from the binary distribution. I would suggest following these instructions to get ROOT to build on the system you want to use, with the C++ compiler you want to use. The instructions on the ROOT web page and in the AA_INSTALL file concerning compiling ROOT from source are not enough, and following them verbatim does not work (at least for the past few versions of ROOT) - it appears that these instructions are not tested often. I have posted my build instructions to roottalk in the past (see http://root.cern.ch/root/roottalk/roottalk99/1605.html, for example) but I have also included them as an attachment for your convenience. These instructions were originally written for "RedHat Linux 6.0 Intel", but they are easily adapted to all platforms. Please let me know if you have any problems with them. Note that my instructions tell you (as does the ROOT Team's instructions) to "download the binary distribution that is closest to your platform", but this is only because there are some source files in the binary distribution that you need *in addition* to the ROOT source tarball. My instructions tell you (and show you how) to delete all of the binary files, so that you really are compiling ROOT directly from source. The ROOT binaries provided by the ROOT Team are extremely valuable to those users who are lucky enough to have an Operating System and C++ Compiler that the ROOT Team supports. These binaries have been tested by the ROOT Team, and are therefore extremely easy to install for these users. However, the ROOT Team will never be able to provide binaries for all of the different variations and combinations of Operating Systems and C++ compilers that exist. For example, the ROOT Team will never be able to provide a single ROOT binary for RedHat x.y that will work for "RedHat x.y users", even if those same users all started out from the same RedHat x.y CD. I would suggest that ROOT should change its distribution model to focus primarily on source distributions. Providing binary distributions for a few reference platforms should receive only secondary importance. Encouraging users to install ROOT from source will only make ROOT much, much better (the reasons for which are numerous, so I'll save them for another thread). When the ROOT source code version management system is finally changed from CMZ to CVS, this will more easily allow for the distribution model that I am proposing. This change to CVS is supposed to happen soon, so hopefully compiling ROOT from source will work better in the not-to-distant future. -- Matthew D. Langston SLD, Stanford Linear Accelerator Center langston@SLAC.Stanford.EDU Building ROOT 2.22.10 from source on RedHat Linux 6.0 The procedure to build ROOT 2.22.10 from source changed slightly from previous versions of ROOT. As there are a few minor "gotchas" which aren't documented in ROOT's AA_INSTALL file, I thought I would list the commands I use to build ROOT on a RedHat Linux 6.0 Intel system in a "cut-and-paste" fashion. Here are the instructions I follow whenever I want to build a new version of ROOT 2.22.10 or later on RedHat Linux 6.0 Intel: 1) Download and install Mesa for optional OpenGL support (see below). 2) Install the latest ROOT. The following example is for ROOT 2.22.10, which is the latest version of ROOT as I write this. I tested these commands by literally executing them in order (after having stripped off the leading dollar sign, of course). Hopefully, they will work for you as well. $ cd ~ $ wget -N ftp://root.cern.ch/root/root_v2.22.Linux.2.2.10.tar.gz $ wget -N ftp://root.cern.ch/root/root_v2.22.source.tar.gz $ wget -N ftp://root.cern.ch/root/ttf/ttf_1.1.tar.gz $ export ROOTSYS=/usr/local/root $ export CERNLIB=/usr/local/lib $ mkdir -p $ROOTSYS $ cd $ROOTSYS/.. $ gunzip -c ~/root_v2.22.Linux.2.2.10.tar.gz | tar -xpvf - $ cd root $ gunzip -c ~/root_v2.22.source.tar.gz | tar -xpvf - $ gunzip -c ttf_1.1.tar.gz | tar -xpvf - $ rm -rf include $ (cd bin && rm g2root h2root makedepend rmkdepend) $ rm -f lib/* $ ln -s /usr opengl $ ln -s src include $ cd src $ perl -i.orig -p -e 's{(?:/|\$ROOTSYS)[^\s]+}{};s{^[^:]+:\s*$}{}' Make-depend $ patch -b < README.RHL6.0 $ ln -s Makefile.linuxegcs Makefile $ make distclean $ make Notes: 1) You may have to adjust the ROOTSYS and CERNLIB environment variables appropriately for your system. It is OK to leave CERNLIB undefined if you don't have it installed, but this means that `h2root' and `g2root' won't be built on your system. 2) The input file for the patch command "patch -b < README.RHL6.0" is this file (i.e. the file that you are reading). You may have called it something else (i.e. if you've saved it to a file from an e-mail), in which case you should substitute the real file name for `README.RHL6.0'. Installing Mesa (for optional OpenGL support) --------------------------------------------- $ cd ~ $ wget -N ftp://ftp.falsehope.com/pub/Mesa/Mesa-3.0-2.src.rpm $ rpm --rebuild Mesa-3.0-2.src.rpm $ rpm -Uvh /usr/src/redhat/RPMS/i386/Mesa* If you don't have Perl ---------------------- 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: $ 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. -- Matthew D. Langston SLD, Stanford Linear Accelerator Center langston@SLAC.Stanford.EDU --- Makefile.linuxegcs.orig Wed Jul 7 23:20:59 1999 +++ Makefile.linuxegcs Fri Jul 9 00:19:01 1999 @@ -13,12 +13,12 @@ OPT = -O NOOPT = LD = g++ -LDFLAGS = $(OPT) +LDFLAGS = $(OPT) -Wl,-rpath,$(ROOTSYS)/lib SOFLAGS = -shared -Wl,-soname, SOEXT = so SYSLIBS = -lm -ldl -rdynamic SYSXLIBS = -L/usr/X11R6/lib -lX11 -lm -ldl -rdynamic -XLIBS = $(ROOTSYS)/lib/libXpm.a -L/usr/X11R6/lib -lX11 +XLIBS = -L/usr/X11R6/lib -lXpm -lX11 CILIBS = -lm -ltermcap -lbsd -ldl -rdynamic CRYPTLIBS = -lcrypt F77 = g77
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:37 MET