FreeFem / FreeFem-sources

FreeFEM source code
https://freefem.org/
Other
780 stars 191 forks source link

Does compilation on windows still need Microsoft MPI which is no more available #133

Closed Mathias-Fuchs closed 4 years ago

Mathias-Fuchs commented 4 years ago

The manual asks to download Microsoft MPI v7.0 but the download link is dead. Version 10.0 allegedly clashes with Fortran. Is there a way to disable MPI for compilation, or is there any other solution of the issue?

prj- commented 4 years ago

Everything is working OK on Microsoft with MPI + Fortran. That's what we are doing on our Jenkins machines, cf. for example this log, and how we deploy the .exe as well. Do you have a specific issue at hand? By the way, Microsoft MPI is still available, here is an updated link.

Mathias-Fuchs commented 4 years ago

Thanks for answer! Ok, I learned from your answer that I should stick to the cmake-based script https://github.com/FreeFem/FreeFem-sources/blob/master/etc/jenkins/jobCMakeWindows.sh instead of the autotools based instructions in the manual to build. However, it does not download the correct dependencies. When I run those commands from a master clone, it doesn't download anything. Is there a way to let cmake download the dependencies? Also, is there documentation on which 3rd party dependencies are optional and how to disable them? My goal is to compile into a minimal dll that exposes the basic classes to define and solve a FF problem. So, I just set out to obtain a C++ dll that can be compiled against using the header fflib/problem.hpp. Would be great to know how I can do that without all those dependencies! Thx

prj- commented 4 years ago

Don't use CMake, it hasn't been maintained for a year or so, and I'm not sure if it was every fully functioning on Windows.

Mathias-Fuchs commented 4 years ago

ok so which is the build script that the log file that you linked is generated from? if I just execute the command "./configure --enable-generic --enable-optim --enable-download --enable-maintainer-mode CXXFLAGS=-mtune=generic CFLAGS=-mtune=generic FFLAGS=-mtune=generic--enable-download --disable-hips" on msys I get several warnings ("configure: WARNING: unrecognized options: --disable-hips") and checking how to get verbose linking output from gfortran... configure: WARNING: compilation failed and the following error even though gfortran is installed fine:

checking for Fortran 77 libraries of gfortran...
configure: WARNING:   get dir of -lgfortran  FLIBS :   -lgfortran
checking  Size of fortran 77 integer ... 4
checking for dummy main to link with Fortran 77 libraries... none
checking for Fortran 77 name-mangling scheme... configure: error: in `/c/Users/Z77Pro/source/repos/FreeFem-sources':
configure: error: cannot compile a simple Fortran program
See `config.log' for more details
prj- commented 4 years ago

Could you attach your config.log? Are you using MinGW? If you just want the FreeFEM binary, do ./configure --enable-optim.

Mathias-Fuchs commented 4 years ago

Yes, using MinGW. I don't want just the binary, I want to compile a minimal dll that exposes the classes defined in the header fflib/problem.hpp. Here's the config.log https://pastebin.com/MChDRzq4

prj- commented 4 years ago

You have this FFLAGS=-mtune=generic--enable-download in your configuration line...

Mathias-Fuchs commented 4 years ago

I see ... that's a typo on page 13 of the manual https://doc.freefem.org/pdf/FreeFEM-documentation.pdf sorry not to have spotted but I assumed that line was to be copied and pasted. by the way, I also guess in that command it says "./configure" twice ...

prj- commented 4 years ago

We'll be happy to review a PR there! Let me know if you run into other issues.

Mathias-Fuchs commented 4 years ago

ok, PR done! Thanks for help!