Hi James et al, First off: I'm not going to quote your full mails, as the rather long make sequences are irrelevant - please cut it down to basics (the last couple of lines or so). On Fri, 21 Jun 2002 13:43:11 -0500 jnorris <jnorris@ku.edu> wrote concerning "problems compiling brat-2.0.12.tar.gz": > People, > > I'm having trouble compiling brat-2.0.12, and if there's anyone out > there (even Ian), He was mean wasn't he? I for one, would say that the Mac's does have one advantage - they use a proper chip, not that lousy (but cheap) i386 chip that most of us have to deal with. Have you compiled ROOT on MacOSX? If so, you're good, and you may be able to compile BRAT out of the box, assuming that your libtool installation knows about the MacOSX stuff. Otherwise, first try to build ROOT (search roottalk for MacOSX, some one wrote a guide), and the experience you gain there will help you to build BRAT :-) > who can help, I'd really appreciate it. > > The error I'm running into is: <snip> a lot of superflous stuff that I don't want to quote</snip> > c++ -g -O2 -o .libs/brdbcalib > -L/home/jnorris/brahms/cern/root_v3.00.06/lib -rdynamic > CreateCalib.o > DbUtils.o -lCore -lCint -lHist -lGraf -lGraf3d -lGpad -lTree -lRint > -lPostscript -lMatrix -lPhysics -lm -ldl > ../../data/abc/.libs/libBratDataAbc.so > ../../managers/.libs/libBratManager.so > ../../util/.libs/libBratUtil.so > ../../db/.libs/libBratDb.so -Wl,--rpath > -Wl,/home/jnorris/brahms/cern/2000/lib > ../../data/abc/.libs/libBratDataAbc.so: undefined reference to > `TBuffer::TBuffer(TBuffer::EMode, int, void *, unsigned char)' > ../../data/abc/.libs/libBratDataAbc.so: undefined reference to > `TObject::Execute(TMethod *, TObjArray *, int *)' > ../../data/abc/.libs/libBratDataAbc.so: undefined reference to > `TObject::Execute(char const *, char const *, int *)' > collect2: ld returned 1 exit status <snip> a lot of superflous stuff that I don't want to quote</snip> Looks like you were using an old ROOT. > I get this after: > > prompt> aclocal -I config > prompt> automake -a > prompt> autoconf > prompt> ./configure --prefix=/home/jnorris > --with-rootsys=/home/brahms/root/lib > --libdir=/home/jnorris/brahms/cern/2000/lib --etcdir=/etc/root --enable-rpath The options `--etcdir' and `--enable-rpath' are not defined for the BRAT `configure' script (see more below). > Now I copied these ./configure flags(?) out of the README - I am > reading these now, Christian! There's no such thing in the README file of BRAT - only `The Guide' has that information. > - and the only 'etc' in the README has to do with "read-only > single-machine data in DIR [PREFIX/etc]". You're reading the stuff that pertains to ROOT, not BRAT. Take a look again (and this time read the full text :-), and you'll see \paragraph{A small tip} \begin{quote} You can install ROOT in the same directories by doing \begin{verbatim} prompt% ./configure --prefix=/usr/local \ --libdir=/usr/local/lib \ --etcdir=/usr/local/etc/root \ --enable-rpath \end{verbatim} in the ROOT source tree. In that way, you have everything in one place, and you only need to have \texttt{/usr/local/bin} in your path, and everything should work nicely. No need to set environment variables. \end{quote} No where when the configuration of BRAT is dealt with is the option `--etcdir' mentioned. > But I have no /home/jnorris/etc, so I didn't really expect: > > prompt> ./configure --prefix=/home/jnorris > --with-rootsys=/home/brahms/root/lib > > --libdir=/home/jnorris/brahms/cern/2000/lib --enable-rpath > > --sysconffidr=/home/jnorris/etc > > to help any. The `sysconfdir' isn't used in BRAT. It's just that it's a standard option for `configure' scripts. > And in fact, it resulted in a new error message: <snip> a lot of superflous stuff that I don't want to quote</snip> > ../../data/abc/.libs/libBratDataAbc.so: undefined reference to > `TBuffer::TBuffer(TBuffer::EMode, int, void *, unsigned char)' > ../../data/abc/.libs/libBratDataAbc.so: undefined reference to > `TObject::Execute(TMethod *, TObjArray *, int *)' > ../../data/abc/.libs/libBratDataAbc.so: undefined reference to > `TObject::Execute(char const *, char const *, int *)' > collect2: ld returned 1 exit status which is the same error as above :-) That is, it has nothing to do with your `configure' options, and everything to do with you having a really _really_ REALLY old ROOT installed. > Anyway, it's all beyond me and desperation is setting in, so: > > HELP!!! I'm trying :-) On Sat, 22 Jun 2002 10:26:52 -0500 jnorris <jnorris@ku.edu> wrote concerning "RE: problems compiling brat-2.4.1": > Flemming et al, > > > ---------- > > From: Flemming Videbaek > > Reply To: brahms-dev-l@bnl.gov > > Sent: Friday, June 21, 2002 1:56 PM > > To: brahms-dev-l@bnl.gov > > Subject: Re: problems compiling brat-2.0.12.tar.gz > > > > James, > > > > I do not think you will get much help with version 2.0.12 we are up to > > 2.3.17 for pro and 2.4.1 for new. > > Too I think the default root is 3.03/04 in /opt/brahms/new and pro. > > OK, I'm fairly modern now, though as always, a _little_ bit behind > the times - I have ROOT 3.03/06 and BRAT 2.4.1. Which is pretty new. > I'm installing as su, so what I've done is: Whoha, you really want to do that? If your using Red Hat Linux of Debian GNU/Linux, I strongly suggest you build ROOT as RPMs or DEBs. Please refer to the documentation in README/INSTALL in the ROOT source tree. You can get ROOT 3.02/07 RPMs and DEBs from my web site at CERN [1]. Notice that it's also possible to make an RPM of BRAT - it's documented in ... yes you guessed it ... `The Guide'. > prompt> aclocal -I config ; \ > automake -a ; \ > autoconf > ./configure --prefix=/usr/local \ > --libdir=/usr/local/lib \ > --etcdir=/usr/local/etc/root \ > --enable-rpath > and I'm told that --etcdir=/usr/local/etc/root is an invalid option > and that I should do a ./configure --help. Unfortunately, the only > reference 'etc' is: See above for an explanantion of this. > So I tried: > > prompt> ./configure --prefix=/usr/local \ > --libdir=/usr/local/lib \ > --sysconfdir=/usr/local \ > --enable-rpath > > and > > prompt> ./configure --prefix=/usr/local \ > --libdir=/usr/local/lib \ > --sysconfdir \ > --enable-rpath > > and finally simply: > > prompt> ./configure --prefix=/usr/local \ > --libdir=/usr/local/lib \ > --enable-rpath As I said above, the `--enable-rpath' option isn't defined for the BRAT `configure' script, but the convention is that `configure' scripts must ignore `--enable-<whatever>' options it doesn't know, as sub-package `configure' scripts may need them - hence the above succeeds. > None of these three lead to errors, so I shoot for the moon with: > > prompt> make > > And get shot down myself with the following error each time: <snip> a lot of superflous stuff that I don't want to quote</snip> > /usr/bin/ld: cannot find -lMySQL Kris explained this. > I have gone to root.cern.ch, and they mention: > > #export MYSQL= # must contain include/ lib/ > > under the section about "Installing optional add-on libraries". But > since root compiled without complaint, I don't know what to do. The use of options for ROOT's `configure' script is documented in This the README/INSTALL file (I should know, I wrote a large portion of it) - yep, that's another RTM for you :-). If you have superuser access to your machine, why don't you just install a MySQL package and have it over with? RPMs and DEBs exists. On Sat, 22 Jun 2002 11:07:56 -0500 jnorris <jnorris@ku.edu> wrote concerning "RE: problems compiling brat-2.4.1": > People, > > While waiting for someone to come to my rescue, I tried to do what I could > to make the installation of everything as standard as possible, and > installed root as su by doing the following: > > /home/jnorris/brahms/root> ./configure linuxppcegcs > --prefix=/usr/local > --enable-soversion > /home/jnorris/brahms/root> gmake > /home/jnorris/brahms/root> gmake install Are you using YellowDog? Don't - use Debian GNU/Linux instead (version 3.0 code name `woody' will soon hit an archive near you). > and this seems to have worked and root 3.03/06 runs beautifully. > > (Now I sould probably say, http://root.cern.ch/root/Install.html says: > > It's strongly recommended to enable version numbers in sonames (if > possible) using this method (see --enable-soversion > below). Also, using the --enable-rpath option to "configure" > you can set the load path to the ROOT libraries on the > applications. However, this is not recommended if you have > soome other way (like /etc/ld.so.conf) of making the dynamic > loader aware of where you installed the ROOT libraries. > > Of course, the bums don't hyperlink to the --enable-soversion That page is more or less automatically created from README/INSTALL, so you can't expect it to be extensively hyperlinked. > - it strikes me as quite strange the that the guys who claim > to have invented the internet I don't think anyone at CERN claims to have invented the internet, while some do claim (and rightly so) to have invented the World Wide Web. > don't seem to know how to use it very well! Well, why don't you download the above page, edit it so that it's fully hyperlinked, and send it to root-dev@root.cern.ch and they will probably post that and thank you for the effort. ROOT works like that you know. > and I'm not sure I understand what it is trying to tell me to do: > > soversion > Include the major version number of ROOT in the soname of > the shared libraries. This means that you'll have an > additional check on whether your applications are linked to > the proper runtime libraries. It's strongly encouraged to > use this option. This options is only supported on some > platforms. Default is false. If you don't understand sonames, read the GCC-Howto manual on that, or just accept that sonames is A Good Thing(tm). > I hope I did the right thing! I have already modified my > /etc/ld.so.conf to read: > > usr/X11R6/lib > /usr/kerberos/lib > /usr/lib/qt-2.2.1/lib > /usr/lib/qt-1.45/lib > /opt/kde2/lib > /opt/kde/lib > /home/jnorris/brahms/root/lib If you have the guts to do this, why are you writting to this list? Is `/home/jnorris/brahms/root/lib' really the right path? Shouldn't it be `/usr/local/lib/root'? Remember to run `ldconfig' (as root) after modifying `/etc/ld.so.conf'. Please note that there's a good reason why there exists a superuser on Unix systems - if you get something wrong it can be devastating, and the system will not tell you until disaster strikes. Hence, unless you really know what you're doing, stay well clear of modifying things under bin boot dev etc initrd lib proc root sbin usr var that is everything but `/home'. Anyway, if you use /etc/ld.so.conf, don't pass the --enable-rpath option to ROOT's configure script, and _do_ pass the --enable-soversion option. Also, you should install your ROOT libraries in `/usr/local/lib/root' (see `The Guide' and README/INSTALL). > So I tried to install brat again: > > home/jnorris/brahms/brat> aclocal -I config ; automake -a ; autoconf > home/jnorris/brahms/brat> ./configure linuxppcegcs --prefix=/usr/local > --enable-rpath Instead of ';' use '&&' so that if one command fials, the rest will not be executed. Also notice the `autogen' script in BRAT. Doing ./autogen --prefix=/usr/local (remember, `--enable-rpath' isn't defined for the BRAT configure script) is equivilant to the above to lines, except that it will stop execution if one of the programs fails. > home/jnorris/brahms/brat> gmake ; gmake install On Linux, you can make do with make install as it will both build and install BRAT directly (Notice that `make install' doesn't work for ROOT unless you did a vanilla `make' first). > but got the same error message: > > cannot find -MySQL > > Should I just go out back and shoot myself? Try following Kris' advice first, and then if it fails, I suggest a Magnum .44 "the most powerful handgun in the world". To summarise: * Build ROOT with MySQL support enabled. * Don't pass odd options to the `configure' scripts * Read the manuals, and read it all, not just the parts that stand out. Hope that helps and explains things a bit. Yours, ____ | Christian Holm Christensen |_| | ------------------------------------------------------------- | | Address: Sankt Hansgade 23, 1. th. Phone: (+45) 35 35 96 91 _| DK-2200 Copenhagen N Cell: (+45) 24 61 85 91 _| Denmark Office: (+45) 353 25 305 ____| Email: cholm@nbi.dk Web: www.nbi.dk/~cholm | | [1] http://cholm.home.cern.ch/cholm/root/#rpm
This archive was generated by hypermail 2b30 : Tue Jun 25 2002 - 09:05:25 EDT