This is a recipe for getting ROOT libraries to be compatible with
Obtain the ROOT source from root.cern.ch.
The first requirement is to remove multithreading:
./configure linux --disable-thread
The second is to get rid of explicit calls to dlopen() and family. Edit config/Makefile.linux. Remove all instances of -ldl and -DG__SHAREDLIB.
Then you are free to do:
make make static
One additional complication is that 'make static' produces a single static library libRoot.a, instead of one static library for each dynamic library that would normally be produced. This means that existing makefiles for applications that link with Root will have to be modified to use -lRoot in place of all the individual libraries. Also, get rid of -lpthread, -ldl, and -rdynamic. (The alternative is to edit root/bin/root-config and make it insert -lRoot in place of the others.)
Note that the root.exe produced by the above process is not functional, because it tries to load dynamic libraries at runtime and fails.
Also note that any dynamically loaded plugins will fail to work. With some additional work, these can be statically compiled into the application as well.