Make install doesn't work anymore


It seems that for v5.17/02, “make install” doesn’t work anymore?
Before this version, I would
0). "./configure [options]"
1). type “make” in the source directory & build everything
2). set the ROOTSYS for my installation directory
3). type “make install” & everything would be installed in $ROOTSYS

Now when I type “make”, even if I set ROOTSYS before “./configure”,
everything is built and installed in the source directory. If I type “make install” it says “Everything already installed”.

To get back the old behaviour, I have to delete lines 783-786 & 859
of the Makefile (in the “install” target).

Is this normal ?

PS. building on Scientific Linux 3 & 4 systems

When installing with “make install”, you must a priori declare the destination directory with

./configure --prefix=Dir_where_to_install_root make su make install


We are working on installing v5.16.00 on Red Hat 9 Enterprise, and in the past have built from source, by specifying the $ROOTSYS env variable and running ./configure without --prefix What I gather from this thread and from our own experience, is that this no longer works. However, when we go ahead and build after configuring with --prefix, the includes and libs are installed in directories such as $ROOTSYS/include/root/ and $ROOTSYS/lib/root
This is not the structure we are accustomed to, rather we expect most of the headers to be contained directly in the include directory. This would not seem to be a big problem, however, we use CMT as our build tool and we must set up our requirements files to set up our include and lib directories appropriately. If one of our users grabs the binary distribution from ROOT, rather than use our prebuilt version, it looks to me that they will have their includes set up with no intervening root directory. We need uniformity in our directory structure. We tried reorganizing the includes and libs, but then I cannot even run the root executable as it cannot find Riostream.h for example.

Surely there is a way to build using make install that avoids the creation of the include/root directory and rather installs the headers and similarly for the libs, directly under the $ROOTSYS/include directory?



There are no changes in the installation procedure (please read our Install from source" page). You can configure with or without the “–prefix” option.
If you do not use “–prefix” the installation will be in your $ROOTSYS directory and $ROOTSYS/include will contain all the includes, $ROOTSYS/lib all libs and $ROOTSYS/bin all executable modules.


[quote]If you do not use “–prefix” the installation will be in your $ROOTSYS directory and $ROOTSYS/include will contain all the includes, $ROOTSYS/lib all libs and $ROOTSYS/bin all executable modules.

My original point was: it used to work like that, and now it doesn’t anymore.
Instead of installing in whatever directory ROOTSYS points to, it installs in the source directory where you typed ‘make install’

John :confused:


this behaviour has been reinstated and correct protections added in case ROOTSYS is not set. In the past there were some problems with people running this as superuser without setting ROOTSYS. Now it should be ok.

Fix is in the svn trunk.

Cheers, Fons.

ok, after reading the documentation more closely I understand. Our installer in the past, thought he could achieve our typical directory structure by just setting ROOTSYS. We are now using make install and setting all the appropriate paths in our configure.