Commits

Jed Brown  committed b9b18d7 Merge

Merge subtree config/BuildSystem

* commit '07020d075efb0f818a63eafc6a8614b12f689cf1':
netcdf5 - build requires hdf5 info.
mkl: update checks [use sequential, add -lm, skip bad-paths] - use mkl_sequential [and not the threaded versions] - skip non-existant guess dir combinations - add in -lm - as some configures fail if relying on -lm at the very end of compile - work with --with-blas-lapack-dir=[mkl,mkl/lib,mkl/lib/intel64]
remove visibility flag that is passed to MPICH since it cannot handle it
change use of --with-c-support in example usage since that function is gone
checkLink: use C++ linker for checkLink if package sets self.cxx
git change: update configure to support 'git' detection and git 'clone' detection

  • Participants
  • Parent commits 4583be8, 07020d0

Comments (0)

Files changed (4)

File config/BuildSystem/config/framework.py

     '''Change titles and setup all children'''
     argDB = script.Script.setupArguments(self, argDB)
 
-    self.help.title = 'Configure Help\n   Comma seperated lists should be given between [] (use \[ \] in tcsh/csh)\n      For example: --with-mpi-lib=\[/usr/local/lib/libmpich.a,/usr/local/lib/libpmpich.a\]\n   Options beginning with --known- are to provide values you already know\n      For example:--known-endian=big\n   Options beginning with --with- indicate that you are requesting something\n      For example: --with-c-support=1\n   <prog> means a program name or a full path to a program\n      For example:--with-cmake=/Users/bsmith/bin/cmake\n   <bool> means a boolean, use either 0 or 1\n   <dir> means a directory\n      For example: --with-external-packages-dir=/Users/bsmith/external\n   For packages use --with-PACKAGE-dir=<dir> OR\n      --with-PACKAGE-include=<dir> --with-PACKAGE-lib=<lib> OR --download-PACKAGE'
+    self.help.title = 'Configure Help\n   Comma seperated lists should be given between [] (use \[ \] in tcsh/csh)\n      For example: --with-mpi-lib=\[/usr/local/lib/libmpich.a,/usr/local/lib/libpmpich.a\]\n   Options beginning with --known- are to provide values you already know\n      For example:--known-endian=big\n   Options beginning with --with- indicate that you are requesting something\n      For example: --with-clanguage=c++\n   <prog> means a program name or a full path to a program\n      For example:--with-cmake=/Users/bsmith/bin/cmake\n   <bool> means a boolean, use either 0 or 1\n   <dir> means a directory\n      For example: --with-external-packages-dir=/Users/bsmith/external\n   For packages use --with-PACKAGE-dir=<dir> OR\n      --with-PACKAGE-include=<dir> --with-PACKAGE-lib=<lib> OR --download-PACKAGE'
     self.actions.title = 'Configure Actions\n   These are the actions performed by configure on the filesystem'
 
     for child in self.childGraph.vertices:

File config/BuildSystem/config/packages/BlasLapack.py

       yield ('User specified AMD ACML lib dir', None, [os.path.join(dir,'lib','libacml_mp.a'), os.path.join(dir,'lib','libacml_mv.a')], 1)
       # Check MATLAB [ILP64] MKL
       yield ('User specified MATLAB [ILP64] MKL Linux lib dir', None, [os.path.join(dir,'bin','glnxa64','mkl.so'), os.path.join(dir,'sys','os','glnxa64','libiomp5.so'), 'pthread'], 1)
-      # Check Linux MKL variations
+      # Some new MKL 11/12 variations
+      for libdir in [os.path.join('lib','32'),os.path.join('lib','ia32'),'32','ia32','']:
+        if not os.path.exists(os.path.join(dir,libdir)):
+          self.framework.logPrint('MLK Path not found.. skipping: '+os.path.join(dir,libdir))
+        else:
+          yield ('User specified MKL11/12 Linux32', None, [os.path.join(dir,libdir,'libmkl_intel.a'),'mkl_sequential','mkl_core','pthread','-lm'],1)
+      for libdir in [os.path.join('lib','64'),os.path.join('lib','ia64'),os.path.join('lib','em64t'),os.path.join('lib','intel64'),'64','ia64','em64t','intel64','']:
+        if not os.path.exists(os.path.join(dir,libdir)):
+          self.framework.logPrint('MLK Path not found.. skipping: '+os.path.join(dir,libdir))
+        else:
+          yield ('User specified MKL11/12 Linux64', None, [os.path.join(dir,libdir,'libmkl_intel_lp64.a'),'mkl_sequential','mkl_core','pthread','-lm'],1)
+      # Older Linux MKL checks
       yield ('User specified MKL Linux lib dir', None, [os.path.join(dir, 'libmkl_lapack.a'), 'mkl', 'guide', 'pthread'], 1)
       for libdir in ['32','64','em64t']:
         yield ('User specified MKL Linux installation root', None, [os.path.join(dir,'lib',libdir,'libmkl_lapack.a'),'mkl', 'guide', 'pthread'], 1)
-      # Some new MKL 11/12 variations
-      for libdir in ['',os.path.join('lib','32'),os.path.join('lib','ia32')]:
-        yield ('User specified MKL11/12 Linux32', None, [os.path.join(dir,libdir,'libmkl_intel.a'),'mkl_intel_thread','mkl_core','iomp5','pthread'],1)
-        yield ('User specified MKL11/12 Linux32', None, [os.path.join(dir,libdir,'libmkl_intel.a'),'mkl_gnu_thread','mkl_core','gomp','pthread'],1) #gnu
-      for libdir in ['',os.path.join('lib','em64t'),os.path.join('lib','intel64')]:
-        yield ('User specified MKL11/12 Linux64', None, [os.path.join(dir,libdir,'libmkl_intel_lp64.a'),'mkl_intel_thread','mkl_core','iomp5','pthread'],1)
-        yield ('User specified MKL11/12 Linux64', None, [os.path.join(dir,libdir,'libmkl_intel_lp64.a'),'mkl_gnu_thread','mkl_core','gomp','pthread'],1) #gnu
-      # Older Linux MKL checks
       yield ('User specified MKL Linux-x86 lib dir', None, [os.path.join(dir, 'libmkl_lapack.a'), 'libmkl_def.a', 'guide', 'pthread'], 1)
       yield ('User specified MKL Linux-x86 lib dir', None, [os.path.join(dir, 'libmkl_lapack.a'), 'libmkl_def.a', 'guide', 'vml','pthread'], 1)
       yield ('User specified MKL Linux-ia64 lib dir', None, [os.path.join(dir, 'libmkl_lapack.a'), 'libmkl_ipf.a', 'guide', 'pthread'], 1)

File config/BuildSystem/config/packages/MPI.py

     args = ['--prefix='+installDir]
     compiler = self.getCompiler()
     args.append('CC="'+self.getCompiler()+'"')
-    args.append('CFLAGS="'+self.getCompilerFlags()+'"')
+    args.append('CFLAGS="'+self.getCompilerFlags().replace('-fvisibility=hidden','')+'"')
     self.popLanguage()
     if hasattr(self.compilers, 'CXX'):
       self.pushLanguage('Cxx')
       args.append('CXX="'+self.getCompiler()+'"')
-      args.append('CXXFLAGS="'+self.getCompilerFlags()+'"')
+      args.append('CXXFLAGS="'+self.getCompilerFlags().replace('-fvisibility=hidden','')+'"')
       self.popLanguage()
     else:
       args.append('--disable-cxx')

File config/BuildSystem/config/packages/netcdf.py

     args = []
     args.append('AR="'+self.setCompilers.AR+'"')
     args.append('ARFLAGS="'+self.setCompilers.AR_FLAGS+'"')
+    args.append('CPPFLAGS="'+self.headers.toString(self.hdf5.include)+'"')
+    args.append('LIBS="'+self.libraries.toString(self.hdf5.lib)+'"')
     args.append('--libdir='+os.path.join(self.installDir,self.libdir))
     args.append('--disable-dap')
     args.append('--disable-hdf4')