Could someone help me out a bit here: * I'm unaware of any mechanism for "ignoring" an entire framework. Was something added for that purpose?
* What "non-MCA" projects are in our repository? Everything appears to be based on MCA plugins. * Looking at Trac, we eliminated all project/config directories when we did the OMPI-RTE abstraction. So what are we looping across at the end of autogen? Thanks Ralph On May 6, 2013, at 4:05 PM, svn-commit-mai...@open-mpi.org wrote: > Author: naughtont (Thomas Naughton) > Date: 2013-05-06 19:05:18 EDT (Mon, 06 May 2013) > New Revision: 28456 > URL: https://svn.open-mpi.org/trac/ompi/changeset/28456 > > Log: > Updates to autogen.pl: > + Add ifdef guard to project's autogenerated "frameworks.h" header file, > e.g., "opal/inlude/opal/frameworks.h" would have "OPAL_FRAMEWORKS_H". > > + Avoid adding "ignored" frameworks to the autogenerated "frameworks.h" > header file. > > + Avoid adding non-MCA projects to the autogenerated 'mca_project_list', > which maintains existing support for "projects" with new MCA framework > enhancements. Moves this down to mca_run_global(). > > + Add small loop at end to add projects with a "config/" subdir > to the list of includes for 'autoreconf'. > > Text files modified: > trunk/autogen.pl | 45 +++++++++++++++++++++++++++++---------- > 1 files changed, 33 insertions(+), 12 deletions(-) > > Modified: trunk/autogen.pl > ============================================================================== > --- trunk/autogen.pl Mon May 6 18:00:45 2013 (r28455) > +++ trunk/autogen.pl 2013-05-06 19:05:18 EDT (Mon, 06 May 2013) (r28456) > @@ -376,16 +376,22 @@ > } > } > > + my $ifdef_string = uc "${project}_FRAMEWORKS_H"; > open(FRAMEWORKS_OUT, ">$project/include/$project/frameworks.h"); > printf FRAMEWORKS_OUT "%s", "/* > * This file is autogenerated by autogen.pl. Do not edit this file by hand. > */ > +#ifndef $ifdef_string > +#define $ifdef_string > + > #include <opal/mca/base/mca_base_framework.h> > > $framework_decl_output > static mca_base_framework_t *${project}_frameworks[] = { > $framework_array_output NULL > -};\n"; > +}; > + > +#endif /* $ifdef_string */\n\n"; > close(FRAMEWORKS_OUT); > } > > @@ -447,6 +453,19 @@ > # Debugging output > debug_dump($mca_found); > > + # Save (just) the list of MCA projects in the m4 file > + my $str; > + foreach my $p (@$projects) { > + my $pname = $p->{name}; > + # Check if this project is an MCA project (contains MCA framework) > + if (exists($mca_found->{$pname})) { > + $str .= "$p->{name}, "; > + } > + } > + $str =~ s/, $//; > + $m4 .= "\ndnl List of MCA projects found by autogen.pl > +m4_define([mca_project_list], [$str])\n"; > + > #----------------------------------------------------------------------- > > $m4 .= "\n$dnl_line > @@ -485,7 +504,14 @@ > push(@tmp, $f) > if ($f ne "common"); > } > - @mykeys = @tmp; > + > + # Then, check ignore status and prume ignored frameworks > + @mykeys = (); > + my $dir = "$topdir/$pdir/mca"; > + foreach my $f (@tmp) { > + push(@mykeys, $f) > + if (!ignored("$dir/$f")); > + } > > foreach my $f (@mykeys) { > $frameworks_comma .= ", $f"; > @@ -1175,16 +1201,7 @@ > push(@{$projects}, { name => "ompi", dir => "ompi", need_base => 1 }) > if (!$no_ompi_arg); > > -# Save the list of projects in the m4 file > -my $str; > -foreach my $p (@$projects) { > - $str .= "$p->{name}, "; > -} > -$str =~ s/, $//; > -$m4 .= "dnl List of projects found by autogen.pl > -m4_define([mca_project_list], [$str]) > - > -dnl Separate m4 define for each project\n"; > +$m4 .= "dnl Separate m4 define for each project\n"; > foreach my $p (@$projects) { > $m4 .= "m4_define([project_$p->{name}], [1])\n"; > } > @@ -1251,6 +1268,10 @@ > verbose "==> Running autoreconf\n"; > chdir(".."); > my $cmd = "autoreconf -ivf --warnings=all,no-obsolete,no-override -I config"; > +foreach my $project (@{$projects}) { > + $cmd .= " -I $project->{dir}/config" > + if (-d "$project->{dir}/config"); > +} > safe_system($cmd); > > #--------------------------------------------------------------------------- > _______________________________________________ > svn mailing list > s...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/svn