amuse icon indicating copy to clipboard operation
amuse copied to clipboard

decentralise "configure"

Open rieder opened this issue 6 years ago • 6 comments

Is your feature request related to a problem? Please describe. AMUSE only has one configure script currently, in amuse-framework. As a result, all prerequisites must be installed before installing amuse-framework. If any are missing, reinstalling amuse-framework is necessary. This is not very practical and leads to unnecessary dependencies if we are to create packages (e.g. #294 #525 #526 #527).

Describe the solution you'd like Split off the configure script into packages, so that e.g. hdf5 will be configured by packages like Simplex and fftw by Fi, instead of by amuse-framework. Each package will only configure its direct necessities, while "global" requirements like MPI will still be configured by amuse-framework.

rieder avatar Nov 06 '19 14:11 rieder

Also, this would allow for different versions of libraries to be used for different community code packages, if this were necessary.

rieder avatar Nov 06 '19 14:11 rieder

hmm...this needs some thought..

ipelupessy avatar Nov 06 '19 14:11 ipelupessy

it is possible, but there will be many packages sharing prerequisites (eg hdf5 is also a framework prerequisite)..it may a start to include in config.mk a line like:

include package_configs/*.mk

and then work to have the setup generate extra .mk files

ipelupessy avatar Nov 06 '19 16:11 ipelupessy

it is something that also maybe useful for omuse etc

ipelupessy avatar Nov 06 '19 16:11 ipelupessy

libhdf5 is not necessary for framework, is it? Only h5py is... I'd try to avoid including configs at a higher level. If two community codes need the same library, no harm in letting each of them use their own configure. I think only globally needed libs (e.g. mpi) should be configured at the highest (framework) level.

rieder avatar Nov 07 '19 00:11 rieder

note: this was an issue for OMUSE and netcdf. It also came up where AMUSE didn't detect/configure netcdf-fortran (optional) while (a number of) OMUSE codes need this. Another solution would be to have more dynamic detection of libs.

ipelupessy avatar Feb 03 '20 18:02 ipelupessy