Controlling ROOTSYS

I’m trying to generate a small installation that I can ship around from computer to computer that uses ROOT - but doesn’t care if there is a ROOT installation on the remote machines. In order to do this I have to collect all the libraries and support files that ROOT needs for this. Deciding on what libraries was pretty easy - the debugger can monitor that for me. And a file system watcher told me what files in the $ROOTSYS\etc area I needed to bring along with me.

The thing I’m fighting with is how ROOTSYS is set automatically. When I call into root, it looks like it gets setup as whatever my libCore.dll is, but one directory up. Even if I change it in the process after that, ROOT seems to have cached it for the etc lookups.

I’d like to put the etc directory at the same level as the dll’s. Is there a way to convince ROOT to do that?

Obviously, I’m running on Windows, I’m using ROOT v30.00.01 right now, though I can change that if I need to. Many thanks!


Hi Gordon,

In your case (an unsupported directory organization), the simplest is probably to update the code in core/winnt/src/TWinNTSystem.cxx in the constructor.