File layout reorg
As a complete reorganisation idea, based on the FS hierarchy standards:
- what's currently in
$PREFIX/binto go into$PREFIX/libexec/openmolcas - what's currently in
$PREFIX/sbinto go into$PREFIX/bin - what's currently in
$PREFIX/libto stay in$PREFIX/lib - what's currently in
$PREFIX/datato go into$PREFIX/share/openmolcas/data - what's currently in
$PREFIX/basis_libraryto go into$PREFIX/share/openmolcas/basis_library -
$PREFIX/molcas.rteto go into maybe$PREFIX/share/molcas/molcas.rte -
$PREFIX/.molcasversionto go into then$PREFIX/share/molcas/version -
$PREFIX/CONTRIBUTORS.mdto go into$PREFIX/share/openmolcas/CONTRIBUTORS.md -
$PREFIX/LICENSEto go into$PREFIX/share/LICENSE
Or, in tree form, something like:
/some/prefix
├── bin
│ ├── pymolcas
│ ├── help_basis
│ └── help_doc
├── lib
│ ├── libmolcas.a
│ └── libmolcas.so
├── libexec
│ └── molcas
│ ├── alaska.exe
│ ├── averd.exe
│ └── ...
└── share
└── molcas
├── basis_library
│ ├── 3-21G
│ ├── 4-31G
│ │ └── TZVP
│ └── ...
├── data
│ ├── abdata
│ ├── alaska.prgm
│ └── ...
├── CONTRIBUTORS.md
├── molcas.rte
├── LICENSE
└── version
I'm not sure what .molcashome is for, so I don't know where that should go or whether it would still exist?
Then keep the $MOLCAS environment variable which would contain /some/prefix and default to /usr.
Does this make sense? It's mostly just that programs designed only to be run by other programs generally go in subdirs of libexec, and architecture-agnostic data and information generally goes in subdirs of share. Then you can add bin to your PATH (or if installed into /usr it'll already be there) and you'll just get the driver script and the help scripts. (Maybe help_* would have slightly different names to make it more clear they're Molcas scripts.)
I know rearranging all of this could be a fair amount of work, I'm not in any way suggesting this is as easy to make happen in a complex code-base as it is to write down.