Exemple #1
0
        self.executeTest(self.configureConversion)
        self.executeTest(self.configureMPI2)
        self.executeTest(self.configureTypes)
        self.executeTest(self.configureMPITypes)
        self.executeTest(self.configureMissingPrototypes)
        self.executeTest(self.SGIMPICheck)
        self.executeTest(self.CxxMPICheck)
        self.executeTest(self.FortranMPICheck)
        self.executeTest(self.configureIO)
        if self.libraries.check(
                self.dlib, "MPI_Alltoallw") and self.libraries.check(
                    self.dlib, "MPI_Type_create_indexed_block"):
            self.addDefine('HAVE_MPI_ALLTOALLW', 1)
        if self.libraries.check(self.dlib, "MPI_Comm_spawn"):
            self.addDefine('HAVE_MPI_COMM_SPAWN', 1)
        if self.libraries.check(self.dlib, "MPI_Win_create"):
            self.addDefine('HAVE_MPI_WIN_CREATE', 1)
        if self.libraries.check(self.dlib, "MPI_Finalized"):
            self.addDefine('HAVE_MPI_FINALIZED', 1)


if __name__ == '__main__':
    import config.framework
    import sys
    framework = config.framework.Framework(sys.argv[1:])
    framework.setupLogging(framework.clArgs)
    framework.children.append(Configure(framework))
    framework.configure()
    framework.dumpSubstitutions()
      self.addDefine('HAVE_MPI_ALLTOALLW',1)
    if self.libraries.check(self.dlib, "MPI_Win_create"):
      self.addDefine('HAVE_MPI_WIN_CREATE',1)
      self.addDefine('HAVE_MPI_REPLACE',1) # MPI_REPLACE is strictly for use with the one-sided function MPI_Accumulate
    funcs = '''MPI_Comm_spawn MPI_Type_get_envelope MPI_Type_get_extent MPI_Type_dup MPI_Init_thread
      MPIX_Iallreduce MPI_Iallreduce MPI_Ibarrier MPI_Finalized MPI_Exscan'''.split()
    for f in funcs:
      if self.libraries.check(self.dlib, f):
        self.addDefine('HAVE_' + f.upper(),1)

    oldFlags = self.compilers.CPPFLAGS # Disgusting save and restore
    self.compilers.CPPFLAGS += ' '+self.headers.toString(self.include)
    if self.checkCompile('#include <mpi.h>', 'int combiner = MPI_COMBINER_DUP;'):
      self.addDefine('HAVE_MPI_COMBINER_DUP',1)
    self.compilers.CPPFLAGS = oldFlags

    if self.libraries.check(self.dlib, "MPIDI_CH3I_sock_set"):
      self.addDefine('HAVE_MPICH_CH3_SOCK', 1)
    if self.libraries.check(self.dlib, "MPIDI_CH3I_sock_fixed_nbc_progress"):
      # Indicates that this bug was fixed: http://trac.mpich.org/projects/mpich/ticket/1785
      self.addDefine('HAVE_MPICH_CH3_SOCK_FIXED_NBC_PROGRESS', 1)

if __name__ == '__main__':
  import config.framework
  import sys
  framework = config.framework.Framework(sys.argv[1:])
  framework.setupLogging(framework.clArgs)
  framework.children.append(Configure(framework))
  framework.configure()
  framework.dumpSubstitutions()