summaryrefslogtreecommitdiff
path: root/script/make_depend_py3.py
diff options
context:
space:
mode:
authorCharles BIENVENUE <charles.bienvenue@polymtl.ca>2025-11-05 22:47:07 +0000
committerCharles BIENVENUE <charles.bienvenue@polymtl.ca>2025-11-05 22:47:07 +0000
commitf6804c8ce4114837ff6845ff11364cbfb057c918 (patch)
tree7e9ad87417236520023804b629e15e572bcb7c9d /script/make_depend_py3.py
parent8e8dd16f67ed325e2bf7fca0a9d878a18e6911ae (diff)
parent2109f3ade9d6a202c413ed9ad3e3475caa944ae3 (diff)
Merge branch 'parallel_make' into 'main'
Parallel Build, OpenMP Support with Fortran 90, and Improved Module Dependencies See merge request dragon/5.1!19
Diffstat (limited to 'script/make_depend_py3.py')
-rwxr-xr-xscript/make_depend_py3.py58
1 files changed, 0 insertions, 58 deletions
diff --git a/script/make_depend_py3.py b/script/make_depend_py3.py
deleted file mode 100755
index a47d7fb..0000000
--- a/script/make_depend_py3.py
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/bin/env python3
-""" generation of module dependances for a xxx.f90 or xxx.F90 file """
-
-import string,sys
-from subprocess import Popen, PIPE
-
-def noComment(mot):
- """ remove comment characters in a word """
- ind= mot.find('!')
- if ind != -1:
- mot= mot[:ind]
- return mot
-
-class md9:
- """ a file, its module and its dependances """
- def __init__(self,fic):
- self.name= fic
- self.used= []
- #find all module dependances
- listeLignes= open(self.name,'r',encoding='utf8',errors='ignore').readlines()
- self.module= "dummy"
- for ligne in listeLignes:
- ligne= ligne.lower()
- if ligne.count('use'):
- ligne= ligne.replace(',',' ')
- listeMots= ligne.split()
- if listeMots[0] == 'use':
- mod= noComment(listeMots[1])
- if mod not in self.used and mod != 'intrinsic':
- self.used.append(mod)
- elif ligne.count('module'):
- listeMots= ligne.split()
- if listeMots[0] == 'module' and \
- noComment(listeMots[1]) != 'procedure':
- self.module= listeMots[1]
- def utilise(self,other):
- return (other.module in self.used)
-
-#list the file names
-listeClasse= list()
-for x in sys.argv[1:]:
- if x.endswith('.f90') or x.endswith('.F90'): listeClasse.append(md9(x))
-#sort the file list
-listeRes= []
-while listeClasse:
- lgav= len(listeClasse)
- for fic in listeClasse:
- if len(list(filter(lambda x,y=fic:y.utilise(x),listeClasse))) == 0:
- listeRes.append(fic)
- listeClasse.remove(fic)
- lgap= len(listeClasse)
- if lgav == lgap and lgap != 0:
- raise RuntimeError("make_depend: cross-references found")
-#result output
-resstr=''
-for fic in listeRes:
- resstr=resstr+fic.name+' '
-print(resstr)