[petsc-dev] get moving on gnu make version of PETSc compiler

Satish Balay balay at mcs.anl.gov
Tue Sep 17 14:27:32 CDT 2013


On Tue, 17 Sep 2013, Jed Brown wrote:

> Satish Balay <balay at mcs.anl.gov> writes:
> > Adding in the following [partial] dependencies gets the build working
> > for me. But I'm not sure what the correct way to add this would be..
> 
> Was the problem reproducible?  I never encountered it.

yes - it happens consistantly on petsc.mcs [for my build with -download-openmpi]
I didn't see it in nightly builds  [nor with a build on cg]

> 
> Can we determine in the makefile whether MPIUNI is being used?

we'll need the following change for it..

iff --git a/config/BuildSystem/config/packages/MPI.py b/config/BuildSystem/config/packages/MPI.py
index a0232eb..14e976f 100644
--- a/config/BuildSystem/config/packages/MPI.py
+++ b/config/BuildSystem/config/packages/MPI.py
@@ -289,6 +289,7 @@ class Configure(config.package.Package):
   def alternateConfigureLibrary(self):
     '''Setup MPIUNI, our uniprocessor version of MPI'''
     self.addDefine('HAVE_MPIUNI', 1)
+    self.addMakeMacro('PETSC_USING_MPIUNI', 1)
     #
     #  Even though MPI-Uni is not an external package (it is in PETSc source) we need to stick the
     #  include path for its mpi.h and mpif.h so that external packages that are built with PETSc to


> We could
> generate the proper dependencies in gmakegen.py, but if we're not
> checking the source to pick up module dependencies, I'd rather use the
> hack in gmakefile.

I'm not sure if its possible to determine the module dependencies from sources.
[esp since the targets are for .o - and not .mod]

Satish

> 
> 
> > Satish
> >
> > ------
> >
> > balay at petsc^/sandbox/balay/petsc.clone((4920dd4...)) $ git diff
> > diff --git a/gmakefile b/gmakefile
> > index bd3ef2e..543c229 100644
> > --- a/gmakefile
> > +++ b/gmakefile
> > @@ -134,6 +134,9 @@ $(OBJDIR)/%.o : %.cu | $$(@D)/.DIR
> >         $(PETSC_COMPILE.cu) $< -o $@ # Compile first so that if there is an error, it comes from a normal compile
> >         @$(PETSC_GENDEPS.cu) $< -o $(@:%.o=%.d) # Generate the dependencies for later
> >  
> > +$(OBJDIR)/src/snes/f90-mod/petscsnesmod.o:$(OBJDIR)/src/ksp/f90-mod/petsckspmod.o
> > +$(OBJDIR)/src/ts/f90-mod/petsctsmod.o:$(OBJDIR)/src/snes/f90-mod/petscsnesmod.o
> > +
> >  $(OBJDIR)/%.o : %.F | $$(@D)/.DIR
> >  ifeq ($(FC_MODULE_OUTPUT_FLAG),)
> >         cd $(PETSC_ARCH)/include && $(FC) -c $(FC_FLAGS) $(FFLAGS) $(FCPPFLAGS) $(FC_DEPFLAGS) ../../$< -o ../../$@
> 
> 




More information about the petsc-dev mailing list