Ok - I can confirm that even with installed Trilinos I do still get these collisions and I verified that there is going to be no way to compile against NOX without using -DHAVE_CONFIG_H.... even with an installed Trilinos.

So.... I think the best option is to prefix all of our #defines with LIBMESH_.

Ben... since it sounds like you have a handle on the situation... you have the greenlight from me ;-)  If you don't do it, I'll probably do it pretty soon.  Just so it's clear, it's not just HAVE_MPI... it's quite a few different ones... that was just a representative one... so they really do all need to get prefixed.

Derek

On Tue, Sep 16, 2008 at 12:01 PM, Derek Gaston <friedmud@gmail.com> wrote:
On Sep 16, 2008, at 11:51 AM, John Peterson wrote:
On Tue, Sep 16, 2008 at 12:17 PM, Kirk, Benjamin (JSC-EG)
<Benjamin.Kirk-1@nasa.gov> wrote:
Seriously, I will do it.  It is high time to update the headers to say 2008
anyway.

At one point I had started down the path of converting all of our
#defines to the LIBMESH_ prefix, but I couldn't come up with a good
way to do it backward-compatibly and simply.  It seems we could have
one of the two pretty easily.  I imagine not a lot of user code is
messing with #defines...

I bet not as much as you think...

Ben... I agree about -DHAVE_CONFIG_H.  It is a very generic thing... but if you talk to any of the Trilinos guys they all say you have to compile with -DHAVE_CONFIG_H... weird huh?

Before we do a big find replace on every #define... let me check to make sure that this problem doesn't go away once you do "make install" on Trilinos.  _They_ might be prefixing their #defines during the install step.

I'll check it real quick and report back.

Derek