libMesh / libmesh

libMesh github repository
http://libmesh.github.io
GNU Lesser General Public License v2.1
642 stars 285 forks source link

Installation issues #1607

Open jorgedclopes opened 6 years ago

jorgedclopes commented 6 years ago

So, previously I noticed problems with the installcheck.

At this point I was reinstalling libmesh and noticed it doesn't install smoothly. This time I'm using Ubuntu 16.04, gcc v5.4.0.

config.log makeError.txt makeOutput.txt

I believe the file names are self-explanatory. If you have any question, just ask away.

Extra 1: Also, I believe the documentation is not very explicit in some sections. The installing instructions are clear but, besides a compiler, I don't know if it is necessary to install anything else, ex: autoconf tools. And, for me, the steps to make a new project are not clear.

Extra 2: I am working on a particular problem that I think this tool can tackle more or less easily (essencially it's the merger of two problems presented in the examples). Is there anyone I can talk to to advise me and solving some basic problems regarding the initial implementation?

Thank you and keep up the good work.

roystgnr commented 6 years ago

Thanks for the report; sorry for my late reply!

The error looks like it stems from failure to configure MetaPhysicL in our contrib directory; i.e. it's certainly my fault.

Could you post contrib/metaphysicl/0.2.0/config.log?

MetaPhysicL is currently only needed by a couple experimental libMesh methods, which you're almost certainly not using. Try passing "--disable-metaphysicl" to configure to get yourself up and running. I would still appreciate your help actually fixing the bug, but working around it ought to be easy enough.

I believe the documentation is not very explicit in some sections.

You're certainly right about that! We'd love pull requests; documentation is hard because nobody is getting paid to spend time on it, but also because the people who are most qualified to answer questions are necessarily least qualified to figure out which questions need answering.

The installing instructions are clear but, besides a compiler, I don't know if it is necessary to install anything else, ex: autoconf tools.

In theory autoconf tools aren't necessary to build anything (we even commit the output configure script and *.in files to git to make sure that's true for more than just release tarball users).

And, for me, the steps to make a new project are not clear.

For you and everybody else. I know of some public libMesh projects that build it as a submodule, others that assume $LIBMESH_DIR is already installed and ready to import Make.common for configuration flags, and others that assume libmesh-config is in your path, and some of these use hand-crafted Makefiles vs automake...

We have example Makefiles that get installed in examples///Makefile that are a good place to start from, but since everyone has their own preferred way to build code (we use autotools because a slim majority of us think it's the least awful, not because it's not awful) there's little hope of us adding a wide enough variety of examples to be helpful to everyone.

For getting general advice, the libmesh-users mailing list is probably still the way to go. That's acceptable for bug reports like your configuration failure here too, but I prefer those as Github issues.

jorgedclopes commented 6 years ago

Here is the file you asked. config.log

I'm sorry I had such as extensive text and thank you for all your help. I'm glad I can help, even if it's only reporting issues such as this one. If I find something that's clearly a problem, I'll report as an issue and I'll direct myself to the libmesh-users. If you require anything else, just ask away. I'm more than happy to help. Good work

roystgnr commented 6 years ago

even if it's only reporting issues such as this one.

Don't be afraid to contribute suggested documentation changes, if you find anything appropriate. Also, I'll probably pester you again about the MetaPhysicL issue. I think I've figured out the problem and I'll try out a fix myself but I'll ping you when it's ready for a PR so we can make sure it works for you too.

I'll direct myself to the libmesh-users.

Don't be afraid to be a little annoying there, either. The one nice thing about Github issues for questions is that they don't go away until someone closes them. With libmesh-users, if you happen to ask a question on a day when half of the people who might answer it are on vacation and the other half are buried in work, it can just get ignored forever unless you pester us again in a week to escape that fate.

roystgnr commented 6 years ago

Okay, I can finally recreate this, and it's slightly more complicated than I thought. If I have Boost headers and library installed, then MetaPhysicL detects it and is enabled. If I have neither installed, MetaPhysicL detects that and is disabled. But if I have Boost headers and not the library, then vexcl.m4 thinks Boost is installed and then can't handle being proven wrong.

Our boost.m4 is a copy from https://github.com/tsuna/boost.m4 and doesn't let us test for such cases.

I'll try out the PR https://github.com/tsuna/boost.m4/pull/86 which looks like it ought to make the problem easy enough to fix.

roystgnr commented 6 years ago

If you get a chance to try #1615, let me know if it lets you configure without that --disable-metaphysicl workaround?

If not then we can reopen this ticket.

jorgedclopes commented 6 years ago

Sorry for the late reply. I was quite busy with course and homeworks I had to deliver (Hell of a week). So, I believe you should reopen this ticket as the errors during the make process of the installation are not done for me. If I disable the metaphysicl it compiles without errors (although it has tons of warnings).

Feel free to keep this issue closed if you feel this is not relevant for the project as a whole. In the end of the error file "[all-recursive] Error 1" makeError.txt makeOutput.txt

Good work

roystgnr commented 6 years ago

"No rule to make target 'all'" in metaphysicl/0.2.0? I don't think I can reproduce that, but it's obviously serious. Could you share the configure output for the failing build?

jorgedclopes commented 6 years ago

You are right, I'm having problems configuring libmesh... hum. config.log

For short, I'm having these errors in the terminal when I try to configure configure: error: cannot find boost/chrono.hpp configure: error: ./configure failed for contrib/metaphysicl/0.2.0

Nilooab commented 6 years ago

Dear all, I'm working with ubuntu 16.04, and I get same error "configure: error: cannot find boost/chrono.hpp configure: error: ./configure failed for contrib/metaphysicl/0.2.0" while I was configuring! So as you suggested I have "--disable-metaphysicl", to run!

jwpeterson commented 6 years ago

I think this can be closed. The issue seems to be that metaphysicl requires boost/chrono, and fails when it is not present. This is basically the way that configure is supposed to work.

roystgnr commented 6 years ago

No, it's not, not for optional packages. MetaphysicL support is supposed to be disabled automatically if we don't find all it's non-optional dependencies. And some of that misbehavior was fixed by #1615, but it sounds like we still have other cases that trigger it, even if I haven't yet been able to reproduce them this time. Explicitly requesting "--disable-metaphysicl" is a workaround but not a solution.