1from __future__ import generators 2import config.base 3 4class Configure(config.base.Configure): 5 def __init__(self, framework): 6 config.base.Configure.__init__(self, framework) 7 self.headerPrefix = '' 8 self.substPrefix = '' 9 return 10 11 def __str__(self): 12 return '' 13 14 def setupHelp(self, help): 15 import nargs 16 return 17 18 def setupDependencies(self, framework): 19 config.base.Configure.setupDependencies(self, framework) 20 self.compilers = self.framework.require('config.compilers', self) 21 self.setCompilers = self.framework.require('config.setCompilers', self) 22 self.functions = self.framework.require('config.functions', self) 23 self.libraries = framework.require('config.libraries', self) 24 return 25 26 def configureFortranCommandLine(self): 27 '''Check for the mechanism to retrieve command line arguments in Fortran''' 28 29 # These are for when the routines are called from Fortran 30 31 self.libraries.pushLanguage('FC') 32 self.libraries.saveLog() 33 if self.libraries.check('','', call = ' integer i\n character*(80) arg\n i = command_argument_count()\n call get_command_argument(i,arg)'): 34 self.logWrite(self.libraries.restoreLog()) 35 self.libraries.popLanguage() 36 self.addDefine('HAVE_FORTRAN_GET_COMMAND_ARGUMENT',1) 37 return 38 39 self.libraries.pushLanguage('FC') 40 self.libraries.saveLog() 41 if self.libraries.check('','', call = ' integer i\n character*(80) arg\n call getarg(i,arg)'): 42 self.logWrite(self.libraries.restoreLog()) 43 self.libraries.popLanguage() 44 self.addDefine('HAVE_FORTRAN_GETARG',1) 45 return 46 47 # These are for when the routines are called from C 48 # We should unify the naming conventions of these. 49 self.pushLanguage('C') 50 self.libraries.saveLog() 51 self.functions.saveLog() 52 if self.functions.check('ipxfargc_', libraries = self.compilers.flibs): 53 self.logWrite(self.functions.restoreLog()) 54 self.logWrite(self.libraries.restoreLog()) 55 self.popLanguage() 56 self.addDefine('HAVE_PXFGETARG_NEW',1) 57 return 58 59 self.pushLanguage('C') 60 self.libraries.saveLog() 61 self.functions.saveLog() 62 if self.functions.check('f90_unix_MP_iargc', libraries = self.compilers.flibs): 63 self.logWrite(self.functions.restoreLog()) 64 self.logWrite(self.libraries.restoreLog()) 65 self.popLanguage() 66 self.addDefine('HAVE_NAGF90',1) 67 return 68 69 self.pushLanguage('C') 70 self.libraries.saveLog() 71 self.functions.saveLog() 72 if self.functions.check('PXFGETARG', libraries = self.compilers.flibs): 73 self.logWrite(self.functions.restoreLog()) 74 self.logWrite(self.libraries.restoreLog()) 75 self.popLanguage() 76 self.addDefine('HAVE_PXFGETARG',1) 77 return 78 79 self.pushLanguage('C') 80 self.libraries.saveLog() 81 self.functions.saveLog() 82 if self.functions.check('iargc_', libraries = self.compilers.flibs): 83 self.logWrite(self.functions.restoreLog()) 84 self.logWrite(self.libraries.restoreLog()) 85 self.popLanguage() 86 self.addDefine('HAVE_BGL_IARGC',1) 87 return 88 89 self.pushLanguage('C') 90 self.libraries.saveLog() 91 self.functions.saveLog() 92 if self.functions.check('GETARG@16', libraries = self.compilers.flibs): 93 self.logWrite(self.functions.restoreLog()) 94 self.logWrite(self.libraries.restoreLog()) 95 self.popLanguage() 96 self.addDefine('USE_NARGS',1) 97 self.addDefine('HAVE_IARG_COUNT_PROGNAME',1) 98 return 99 100 self.pushLanguage('C') 101 self.libraries.saveLog() 102 self.functions.saveLog() 103 self.functions.check('_gfortran_iargc', libraries = self.compilers.flibs) 104 self.logWrite(self.functions.restoreLog()) 105 self.logWrite(self.libraries.restoreLog()) 106 self.popLanguage() 107 return 108 109 def configure(self): 110 if hasattr(self.setCompilers, 'FC'): 111 self.executeTest(self.configureFortranCommandLine) 112 return 113