Windows compatibility
davegelwan opened this issue · comments
I was unable to install this package on Windows 10. I worked through some issues compiling/linking the C++ dependency, but was unable to load it in Julia.
I tried using MinGW 64-bit to run the build.sh script (which calls ./configure and make). At first, there was a configure error regarding OpenMP:
configure: error: don't know how to enable OpenMP
and this error for finding an MPI library:
configure: error: could not find mpi library for --enable-mpi
I followed these instructions for combining MSMPI with GCC. I made the following changes to the build.sh script to link against libmsmpi.a
:
Next, there was an error due to a space in the MinGW installation path:
This was resolved by replacing all $(SHELL)
with "$(SHELL)"
in Makefile.in
Next, the Makefile generated from configure has the JLCXX_H include path commented out
Finally, srand48 and drand48 functions do not exist on Windows:
This can be addressed via:
https://social.msdn.microsoft.com/Forums/vstudio/en-US/9356f151-51d2-412d-8889-d53230cc6ec9/porting-srand48-and-drand48-of-unix-like-platform-based-source?forum=vclanguage
After all those changes, I was able to successfully compile, link, and generate fmm.so. Unfortunately, it does not load in Julia:
I had to add the file extension to @wrapmodule(joinpath(module_path, "fmm"))
--> @wrapmodule(joinpath(module_path, "fmm.so.exe"))