byuflowlab / FLOWExaFMM.jl

Julia wrapper of ExaFMM with modifications for a vortex solver

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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:
image

Next, there was an error due to a space in the MinGW installation path:
image (162)
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
image (164)

Finally, srand48 and drand48 functions do not exist on Windows:
image
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:
image (166)
I had to add the file extension to @wrapmodule(joinpath(module_path, "fmm")) --> @wrapmodule(joinpath(module_path, "fmm.so.exe"))