~maddevelopers/mg5amcnlo/3.0.2-alpha0

« back to all changes in this revision

Viewing changes to Template/bin/Passto_gfortran.py

Added Template and HELAS into bzr

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/env python
 
2
import sys, os
 
3
sys.path+=['../'*i+'./Source/MadWeight_File/Python' for i in range(0,2)]
 
4
sys.path+=['../'*i+'Template/Source/MadWeight_File/Python' for i in range(0,2)]
 
5
import mod_file, MW_param
 
6
 
 
7
def mod_dir_to_gfortran(directory):
 
8
    #define global regular expression
 
9
    rule={'S-REGEXP_f77+gfortran+re.I':'','S-REGEXP_g77+gfortran+re.I':''}
 
10
 
 
11
    if type(directory)!=list:
 
12
        directory=[directory]
 
13
 
 
14
    #search file
 
15
    file_to_change=find_makefile_in_dir(directory)
 
16
 
 
17
    #modify all those makefile
 
18
    mod_file.mod_file(file_to_change,rule,opt={'nowarning':'\'all\''})
 
19
    print 'remove old compile file'
 
20
    
 
21
def find_makefile_in_dir(directory):
 
22
    """ retrun a list of all file startinf with makefile in the given directory"""
 
23
 
 
24
    out=[]
 
25
    #list mode
 
26
    if type(directory)==list:
 
27
        for name in directory:
 
28
            out+=find_makefile_in_dir(name)
 
29
        return out
 
30
 
 
31
    #single mode
 
32
    for name in os.listdir(directory):
 
33
        if os.path.isdir(directory+'/'+name):
 
34
            out+=find_makefile_in_dir(directory+'/'+name)
 
35
        elif os.path.isfile(directory+'/'+name) and name.lower().startswith('makefile'):
 
36
            out.append(directory+'/'+name)
 
37
 
 
38
    return out
 
39
 
 
40
 
 
41
def rm_old_compile_file():
 
42
 
 
43
    # remove all the .o files
 
44
    os.path.walk('.', rm_file_extension, '.o')
 
45
    
 
46
    # remove related libraries
 
47
    libraries = ['libblocks.a', 'libgeneric_mw.a', 'libMWPS.a', 'libtools.a', 'libdhelas3.a',
 
48
                 'libdsample.a', 'libgeneric.a', 'libmodel.a', 'libpdf.a', 'libdhelas3.so', 'libTF.a', 
 
49
                 'libdsample.so', 'libgeneric.so', 'libmodel.so', 'libpdf.so']
 
50
    lib_pos='./lib'
 
51
    [os.remove(os.path.join(lib_pos, lib)) for lib in libraries \
 
52
                                 if os.path.exists(os.path.join(lib_pos, lib))]
 
53
 
 
54
 
 
55
def rm_file_extension( ext, dirname, names):
 
56
 
 
57
    [os.remove(os.path.join(dirname, name)) for name in names if name.endswith(ext)]
 
58
 
 
59
 
 
60
 
 
61
    
 
62
if "__main__"==__name__:
 
63
    print 'start main'
 
64
    value=0
 
65
#    while value not in ['1','2']:
 
66
#        value=raw_input('On which directory do you want to apply this script? (1/2)\n' + \
 
67
#                               ' 1: On this copy of the Template directory\n' + \
 
68
#                               ' 2: On the full MG_ME directory\n')
 
69
    value='1'
 
70
    if value == '1':
 
71
        directory=['Source','SubProcesses']
 
72
    else:
 
73
        directory=['..']
 
74
 
 
75
    MW_param.go_to_main_dir()
 
76
    mod_dir_to_gfortran(directory)
 
77
    rm_old_compile_file()