Firstly… I'm still against this idea.  I think it's adding complication to 
something that currently works well for the majority of users and use cases.

On Mar 5, 2012, at 11:16 AM, Kirk, Benjamin (JSC-EG311) wrote:

> (1) files must manually be added to ./Makefile.am and ./include/Makefile.am

For me, this would be a no go.  Surely there is a a way to do this 
automatically.  This just doesn't make sense.

> (2) METHOD is now a configure-time variable.  Multiple build methods are 
> still supported and are properly installed into different paths, but must be 
> built from different directories.  For example, I handle it like this:
> 
> $ ./bootstrap
> $ mkdir $METHOD
> $ cd $METHOD
> $ ../configure …

This is really bad… I can't even see having to explain this to our users.  They 
just barely get the current METHOD=dbg stuff… but now there are different 
directories?  Not only that but do you have to do a make install?  How does 
LIBMESH_DIR work now??  Does it point to the build directory, to the install 
directory or to the source directory?  Do you have to change it all the time to 
switch between METHOD's?

Maybe there is something I haven't explained yet: Our users have to rebuild 
libMesh quite often.  We make backwards incompatible changes to libMesh and 
MOOSE… and it forces our users to need to rebuild libMesh.  This isn't the type 
of thing where they do it once and then they can "make install" that version 
and use it for a long time.  Adding complication to the libMesh rebuild process 
is bad.  Bad enough that with this talk of using Automake we've started talking 
about meta-tools to build libMesh so we can insulate them from it… which is 
dumb because the current build system is good and simple enough that we don't 
need to do that...


> As part of this process I have also cleaned up almost all of our M4 sources 
> for consistency and brevity.   I recognize that automake is a big 
> stepfunction in our build process, but I think this will make long-term 
> maintenance a lot easier.
> 
> If anyone is feeling adventurous give ^/branches/libmesh.automake a whirl:
> 
> $ svn co 
> https://libmesh.svn.sourceforge.net/svnroot/libmesh/branches/libmesh.automake
> $ cd libmesh.automake
> $ ./bootstrap 
> $ ./configure --with-method=devel --prefix=/tmp/foo
> $ make -j 18
> $ make -j 18 check
> $ make install
> $ make installcheck
> $ make -j 18 distcheck

The ./boostrap is only temporary right?  Users won't have to do that once we 
check in bootstrapped configure / makefiles right?

Is "make install" optional or not?

I'm sorry to sound so negative.  I realize you've put a lot of time into this… 
but as far as I can tell you've made one small situation somewhat easier 
(multiple out of directory builds on different machines sharing the same 
directory) and everything else has become more complicated…

It feels like optimizing for developers and making users lives more 
complicated…. which is really the opposite of what we should be doing.

I'll still check it out and see what's what (it will probably answer a lot of 
my questions).  I'll respond back after I've done that.

Derek
------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
Libmesh-devel mailing list
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to