Error compiling root from source

I’m trying to set up root on an Ubuntu 6.06 system. When giving the command ‘make’ I get the following error:

bin/rmkdepend: error: cannot open "" make: *** [graf/src/TTF.o] Error 1

I’m guessing it might be a dependency problem and the solution might lie in the output from ‘./configure’, but I don’t know what I’m looking for. Output from ‘./configure’ is:

[code]kent@kent-laptop:~/root$ ./configure
Configuring for linux
Checking for libX11 … /usr/lib
Checking for X11/Xlib.h … /usr/include
Checking for libXpm … /usr/lib
Checking whether to build included libfreetype6 … yes
Checking whether to build included libpcre … yes
Checking whether to build included zlib … yes
Checking for GL/gl.h … /usr/include
Checking for libGL, or libMesaGL … /usr/lib
Checking for libGLU, or libMesaGLU … /usr/lib
Checking for mysql_config … /usr/bin/mysql_config
Checking for libmysqlclient version >= 3.23.* … ok
Checking for occi.h … no
Checking for libclntsh, or oci … no
Checking for libocci, or oraocci10 … no
Checking for libpq-fe.h … /usr/include/postgresql
Checking for libpq … /usr/lib
Checking for sql.h … /usr/include/maxdb
Checking for libsqlod … /usr/lib
Checking for sqlext.h … no
Checking for libiodbc, libodbc, or odbc32 … no
Checking for rfio_api.h … no
Checking for librfio, libshift, shiftmd, or shift … no
Checking for rfio_api.h … no
Checking for stager_api.h … no
Checking for libshift, shiftmd, or shift … no
Checking for gfal_api.h … no
Checking for libgfal … no
Checking for G4Navigator.hh … no
Checking for libG4navigation … no
Checking for CLHEP/Vector/Rotation.h … no
Checking for ApMon.h … no
Checking for libapmoncpp … no
Checking for monalisawsclient.h … no
Checking for libmonalisawsclient … no
Checking for fftw3.h … no
Checking for libfftw3, or libfftw3-3 … no
Checking for libpacklib_noshift, libpacklib, packmd, or packlib … /usr/lib
Checking for libkernlib_noshift, libkernlib, kernmd, or kernlib … /usr/lib
Checking for rfio in /usr/lib/libpacklib.so … no
Checking for libPythia6 … no
Checking for dcap.h … no
Checking for libdcap … no
Checking for chirp_client.h … no
Checking for libchirp_client … no
Checking for gapiUI.h … no
Checking for libgapiUI … no
Checking for jpeglib.h … /usr/include
Checking for png.h … /usr/include
Checking for tiffio.h … /usr/include
Checking for gif_lib.h … /usr/include
Checking for libjpeg … /usr/lib
Checking for libtiff … /usr/lib
Checking for libungif … /usr/lib
Checking for libz … /usr/lib
Checking for libpng … /usr/lib
Checking whether to build included libAfterImage … yes
Checking for ldap.h … /usr/include
Checking for libldap … /usr/lib
Checking for liblber … /usr/lib
Checking for python/Python.h, python2.5/Python.h, python2.4/Python.h, python2.3/Python.h, python2.2/Python.h, or Python.h … no
Checking for libpython, libpython2.5, libpython2.4, libpython2.3, libpython2.2, python25, python24, python23, or Python … no
Checking for xml2-config … /usr/bin/xml2-config
Checking for libxml2 version >= 2.4.x … ok
Checking whether to build xrootd … yes
Checking for for globusdir … no
Checking for GLOBUS_LOCATION … no
Checking for libssl … /usr/lib
Checking for libcrypto … /usr/lib
Checking for openssl/bio.h … /usr/include
Checking for openssl/blowfish.h … /usr/include
Checking for openssl/err.h … /usr/include
Checking for openssl/pem.h … /usr/include
Checking for openssl/rand.h … /usr/include
Checking for openssl/rsa.h … /usr/include
Checking for t_server.h … no
Checking for libsrp … no
Checking for libgmp … /usr/lib
Checking for libmisc … no
Checking for pwauth.h … no
Checking for krb5.h … /usr/include
Checking for libk5crypto … /usr/lib
Checking whether we’re using MIT Kerberos … yes
Checking for libkrb5 … /usr/lib
Checking for libcrypto … /usr/lib
Checking for kinit … no
Checking for libcom_err … /usr/lib
Checking for shadow passwords … yes
Checking for gsl/gsl_version.h … /usr/include
Checking for GSL version >= 1.8 … no
Checking whether to build libMathMore … no
Checking whether to build libMathCore … yes
Checking whether to build CINT7 … no
Checking whether to build libCintex … yes
Checking whether to build libReflex … yes
Checking whether to build libRooFit … no
Checking whether to build libMinuit2 … no
Checking whether to build libUnuran … no
Checking whether to build libGdml … no
Checking whether to build libTable … no
Checking for Clarens support … no
Checking for PEAC support … no
Generating cint dictionaries.
Checking whether setresuid declared in /usr/include/unistd.h … yes
Writing config/Makefile.config … done
Writing include/RConfigure.h … done
Writing bin/root-config … done
Writing etc/system.rootrc … done
Writing etc/system.rootauthrc … done
Writing etc/system.rootdaemonrc … done
Writing etc/root.mimes … done
Writing etc/daemons/rootd.rc.d … done
Writing etc/daemons/rootd.xinetd … done
Writing etc/daemons/proofd.rc.d … done
Writing etc/daemons/proofd.xinetd … done
Writing etc/daemons/xrootd.rc.d … done
Writing etc/daemons/olbd.rc.d … done
Writing bin/memprobe … done
Writing build/misc/root-help.el … done
Writing macros/html.C … done
Writing bin/thisroot.sh … done
Writing bin/thisroot.csh … done
Writing config.status … done

Enabled support for asimage, astiff, builtin_afterimage, builtin_freetype, builtin_pcre, builtin_zlib, cern, cintex, exceptions, krb5, ldap, mathcore, mysql, opengl, pch, pgsql, reflex, sapdb, shadowpw, shared, ssl, thread, xml, xrootd.

To build ROOT type:

make
make install
[/code]

I made the mistake of typing ‘sudo make install’ before resolving the mentioned error. The following errors showed up:

[code]make[1]: Leaving directory `/home/kent/root’
Installing binaries in /bin
cp: cannot stat «bin/xrdgsiproxy»: No such file or directory

Installing misc docs in
mkdir: Missing operand

cp: missing destination file operand after «LICENSE»

cp: target «README/README.SELECTOR» is not a directory[/code]

Output from ‘root’ after this is:

rootx xpm error: XpmOpenFailed root: can't start ROOT -- check that /usr/bin/bin/root.exe exists!
Directory does not exist.

According to the Synaptic Package Manager I have the following packages installed:

g77-3.4 (g77-3.4.6)
libx11-dev (2:1.0.0*)
libxext-dev (2:1.0.0*
libxpm-dev (1:3.5.4.2)

As far as I can see, they are the latest versions available through the Ubuntu repositories.

I also started a thread about this in the Ubuntu forums: ubuntuforums.org/showthread.php? … ost2105051
That link should perhaps contain even more info about what I’ve done, and perhaps some more output.

I would be grateful for any help.

Hi,
the important part is of course the invocation of the command that produces the error message: bin/rmkdepend -R -fgraf/src/TTF.d -Y -w 1000 -- -pipe -Wall -W -Woverloaded-virtual -fPIC -Iinclude -DR__HAVE_CONFIG -pthread -Ifreetype/src/freetype-2.1.9/include -D__cplusplus -- graf/src/TTF.cxx bin/rmkdepend: error: cannot open "" There are two problems: a) the error message is wrong, and b) rmkdepend cannot open your graf/src/TTF.d for writing, probably because of a permission problem in your installation. Try to run “touch graf/src/TTF.d” and it should fail, too. Check with ls -l graf/src/TTF.d and ls -ld graf/src that you are allowed to write to that file and directory.

And I’ll fix the error message.

Cheers, Axel.

Thank you. That took care of the error message from ‘make’. But the messages I mentioned when using ‘make install’ still persists. If I only use the command ‘./configure’ I get the following errors from ‘make install’:

[code]make[1]: Leaving directory `/home/kent/root’
Installing binaries in /bin
cp: cannot stat «bin/xrdgsiproxy»: No such file or directory

Installing misc docs in
mkdir: Missing operand

cp: missing destination file operand after «LICENSE»

cp: target «README/README.SELECTOR» is not a directory[/code]

If I type ‘./configure --prefix=/usr’ or ‘./configure --prefix=/usr/local’ I only get the following “error” from ‘make install’:

make[1]: Leaving directory `/home/kent/root' Installing binaries in /usr/local/bin cp: cannot stat «bin/xrdgsiproxy»: No such file or directory
“Installing binaries in /usr/local/bin” of course become “Installing binaries in /usr/bin” if I use the prefix “/usr” in stead of “/usr/local” (I think).

If I use ‘./configure --prefix=/usr/local’ or ‘./configure --prefix=/usr’ and try to run root I get

kent@kent-laptop:~/root$ root bash: /bin/root: No such file or directory
In this case I find the executable file root in /usr/local/bin or /usr/bin, respectively. Trying to run them with ‘./root’ gives me

kent@kent-laptop:~/root$ root root: ROOTSYS not set. Set it before trying to run root.

If I use only ‘./configure’ I get

kent@kent-laptop:~/root$ root root: ROOTSYS not set. Set it before trying to run root.

Hi,

you cannot re-run configure and expect that all of ROOT picks it up after a simple make. You’ll have to do configure --whatever; make distclean; make. So, could you pick one option (e.g. --prefix=/usr/local) and make distclean; make; make install, and let us know whether you still see the same error message?

Cheers, Axel.

I used './configure --prefix=/usr*.
I didn’t see any errors. When I type ‘root’ I get

[quote]kent@kent-laptop:~/root$ root
root: ROOTSYS not set. Set it before trying to run root.
[/quote]

I’m using bash. Can I just do

export ROOTSYS=/usr export PATH=$PATH:$ROOTSYS/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ROOTSYS/lib
?

I know my questions are basic, so I really appreciate that you’re taking the time to help. Thank you!

Hi Kent,

for personal usage of ROOT I advice to install it in ~. Just do:

cd root
./configure
make
make install

Before running do:

. bin/thisroot.sh

Cheers, Fons.

I installed it in ~, and now it seems to be working properly. Thank you very much.