NanoComp / meep

free finite-difference time-domain (FDTD) software for electromagnetic simulations
GNU General Public License v2.0
1.16k stars 596 forks source link

Building MEEP from source requires guile even though guile is supposed to be an optional dependency #2737

Closed AlexKyriacou92 closed 7 months ago

AlexKyriacou92 commented 7 months ago

Hello, I am currently trying to build Meep from the source code both on my laptop and on a cluster. I want to be able to utilize the parallel computing and output to hdf5 files, so this means (If I have understood the documentation correctly) I have to build HDF5 from the source code with parallel enabled and therefore have to build Meep from the source.

In the documentation, libctl and python are required dependencies, while HDF5, OpenMP, LAPACK, guile and some others are listed as optional. I don't want or need to use guile as I don't use Scheme, however I when I try to configure the Meep installation it gives me an error message that I don't have guile installed:

configure: error: linking to guile failed

So at the moment I am building guile from the source, but guile has a bunch of other dependencies that I have to build on the cluster and I'm worried that I'll have a cascade of dependencies to install.

Is there are an option to disable the search for guile in the configuration file, as you can for other dependencies? I don't see this option in the documentation or in the configuration file.

For example: ./configure '--without-hdf5 ' (you could have '--without-guile' ?)

If there's another solution or something I'm missing, please let me know.

Cheers, Alex

AlexKyriacou92 commented 7 months ago

The guile dependency is especially problematic as it seems that guile had a dependency on bdw-gc, which apparently is too difficult to install from source (https://github.com/noloader/Build-Scripts/issues/5) and seemingly can only be installed with apt-get install.

stevengj commented 7 months ago

There is already an option to configure --without-scheme that eliminates the guile dependency.

(Similarly, you configure libctl --without-guile and configure MPB --without-libctl.)

AlexKyriacou92 commented 6 months ago

Thank you.