Trying to bring up root 2.00/09 using the Makefile

Fraser Duncan (fduncan@owl.phy.queensu.ca)
Wed, 1 Jul 1998 12:45:41 -0400 (EDT)


A few comments on the Makefile distributed with 2.00/09 source.
I am trying to get root running on what redhat linux 5.1. To
make things interesting the version of redhat 5.1 that I have is
(I think) slightly nonstandard. Anyway, I thought that I would
report a couple of things that I found.

1/
First I tried to install root 2.00/09 right out of the box. The
root interpreter would work fine but when I tried to compile the
test codes in $ROOTSYS/test/ it failed miserably. I got the following:

---------------------------------------------------
[fduncan@cygnus test]$ make
g++ -O -Wall -fPIC -I/home/tools/root/include -c Event.cxx
Generating dictionary ...
Note: operator new() masked 1c
Note: operator delete() masked 1c
class EventHeader in Event.h line 19 original base of virtual func
g++ -O -Wall -fPIC -I/home/tools/root/include -c EventCint.cxx
g++ -O -Wall -fPIC -I/home/tools/root/include -c MainEvent.cxx
g++ -Wl,-soname,libEvent.so -shared -g Event.o EventCint.o -o libEvent.so
g++ -g MainEvent.o Event.o EventCint.o -L/home/tools/root/lib -lNew -lBase
-lCint -lClib -lCont -lFunc -lGraf -lGraf3d -lHist -lHtml -lMatrix -lMeta
-lMinuit -lNet -lPostscript -lProof -lTree -lUnix -lZip -lg++ -lm -ldl
-rdynamic -o Event
/usr/bin/ld: warning: libstdc++.so.2.7.2, needed by
/home/tools/root/lib/libNew.so, may conflict with libstdc++.so.2.8
Event.o: In function `Event type_info function':
Event.o(.text+0x1308): undefined reference to `TObject type_info function'
Event.o(.text+0x130e): undefined reference to `TObject type_info node'
EventCint.o: In function `Track type_info function':
EventCint.o(.text+0x5084): undefined reference to `TObject type_info
function'
EventCint.o(.text+0x508a): undefined reference to `TObject type_info node'
collect2: ld returned 1 exit status
make: *** [Event] Error 1
[fduncan@cygnus test]$

---------------------------------------------------

I suspected that this is an incompatability with the redhat 5.0 and 5.1
libraries. I don't know if anybody else has this problem but I am
reporting it just in case it is of interest. As I said, it may be due
to either the fact that I am using redhat 5.1 or that I have a slightly
nonstandard version.

2/ Then I tried using the make file to build root from scratch. There
are a couple of things that I wanted to point out that are not big
problems with the make files but they would tidy things up a bit.

This is what I found:

* I untarred the source tree in a new directory /data1/fduncan/root/
* I made the link in src/
ln -s Makefile.linux Makefile
* I ran make

Problems: 1) there were no bin/ and lib/ directories so I created
them by hand.
Could the standard distribution have these put in?

2) The make crashed when it couldn't find libXpm.a
It took me a while to realize that it is a system
library and not supposed to be distributed with root.
Part of the confusion was that if I look in old
versions of root, libXpm.a is in $ROOTSYS/lib.

Maybe the make file could be changed to not make it
look like libXpm.a is supposed to be in $ROOTSYS/lib
(Also I guess you need libXpm.so to run applications...)

3) There was no $ROOTSYS/include directory with the header
files in it.

Could the make file create and stuff this directory?

4) There was no $ROOTSYS/icons directory. I stole the
directory from the binary distribution of 2.00/09

The last problem with building root from scratch is probably my fault.
When I compiled the programs in the test directory I got a warning:

---------------------------------------------
g++ -O -Wall -fPIC -I/data1/fduncan/root/include -c hworld.cxx
g++ -g hworld.o -L/data1/fduncan/root/lib -lNew -lBase -lCint -lClib
-lCont -lFunc -lGraf -lGraf3d -lHist -lHtml -lMatrix -lMeta -lMinuit -lNet
-lPostscript -lProof -lTree -lUnix -lZip -lGpad -lGui -lGX11 -lX3d
-L/usr/X11R6/lib -lXpm -lX11 -lg++ -lm -ldl -rdynamic -o hworld
/usr/bin/ld: warning: libstdc++.so.2.7.2, needed by /usr/lib/libg++.so,
may conflict with libstdc++.so.2.8
hworld done
----------------------------------------------
I don't know if this is a problem with my linux installation or if
it is a problem with the way the root libraries are made.

Hope these comments are helpfull.

- Fraser Duncan