"+" Syntax Does not Recognize 32/64 bit?

Hello, I am running a compiled named macro on a remote machine where two different root versions are installed. One is 64-bit and one is 32-bit, and in my shell scripts which run the jobs, I source the “thisroot.sh” appropriate for the architecture of the queue which I use for the batches. The compiled binary lives in my directories, not on the batch machines, so in my shell script which also sources “thisroot.sh”, I also run a mini-macro compile.C:


The script does “root -b -q -l ‘compile.C+’”.

Unfortunately the “+” syntax doesn’t seem to realize that I need to recompile the standard_analysis.C macro when I change ROOT versions. It fails during the compile.C macro:

I had to manually delete the standard_analysis_C.d and .so files to force it to recompile. I am thinking that maybe just “touch” would also do the trick, but I don’t want to have to manually touch/delete files whenever I want to switch queues.

Is it intended for the “+” syntax to only use timestamps/existence of a .so file to decide whether to recompile? It would be nice if the recompilation happened “when necessary” to execute LoadMacro with “+”.


use “++” instead of “+”