~madteam/mg5amcnlo/series2.0

« back to all changes in this revision

Viewing changes to Template/loop_material/StandAlone/SubProcesses/makefile

  • Committer: olivier Mattelaer
  • Date: 2016-05-12 11:00:18 UTC
  • mfrom: (262.1.150 2.3.4)
  • Revision ID: olivier.mattelaer@uclouvain.be-20160512110018-sevb79f0wm4g8mpp
pass to 2.4.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
8
8
else
9
9
    ROOT = ..
10
10
endif
 
11
LIBDIR = $(ROOT)/lib/
 
12
 
 
13
PROG   = check
 
14
all : $(PROG)
 
15
 
 
16
# For the compilation of the MadLoop file polynomial.f it makes a big difference to use -O3 and
 
17
# to turn off the bounds check. These can however be modified here if really necessary.
 
18
POLYNOMIAL_OPTIMIZATION = -O3
 
19
POLYNOMIAL_BOUNDS_CHECK =
11
20
 
12
21
include $(ROOT)/Source/make_opts
13
22
include $(ROOT)/SubProcesses/MadLoop_makefile_definitions
14
23
SHELL = /bin/bash
15
24
 
16
 
LIBDIR = $(ROOT)/lib/
17
 
PROG   = check
18
 
all : $(PROG)
19
25
OLP    = OLP
20
26
STABCHECKDRIVER = StabilityCheckDriver
21
27
CHECK_SA_BORN_SPLITORDERS = check_sa_born_splitOrders
22
 
LINKLIBS =  -L$(LIBDIR) -ldhelas -lmodel $(LINK_LOOP_LIBS)
 
28
LINKLIBS =  $(LDFLAGS) -L$(LIBDIR) -ldhelas -lmodel $(LINK_LOOP_LIBS)
23
29
LIBS =  $(LIBDIR)libdhelas.$(libext) $(LIBDIR)libmodel.$(libext) $(LOOP_LIBS)
24
30
 
25
31
PROCESS= MadLoopParamReader.o MadLoopCommons.o \
 
32
 $(patsubst $(DOTF),$(DOTO),$(wildcard polynomial.f)) \
26
33
 $(patsubst $(DOTF),$(DOTO),$(wildcard loop_matrix.f)) \
27
34
 $(patsubst $(DOTF),$(DOTO),$(wildcard improve_ps.f)) \
28
35
 $(patsubst $(DOTF),$(DOTO),$(wildcard born_matrix.f)) \
29
36
 $(patsubst $(DOTF),$(DOTO),$(wildcard CT_interface.f)) \
30
37
 $(patsubst $(DOTF),$(DOTO),$(wildcard loop_num.f)) \
31
 
 $(patsubst $(DOTF),$(DOTO),$(wildcard polynomial.f)) \
32
38
 $(patsubst $(DOTF),$(DOTO),$(wildcard helas_calls*.f)) \
33
39
 $(patsubst $(DOTF),$(DOTO),$(wildcard jamp?_calls_*.f)) \
34
40
 $(patsubst $(DOTF),$(DOTO),$(wildcard mp_born_amps_and_wfs.f)) \
42
48
 $(patsubst $(DOTF),$(DOTO),$(wildcard compute_color_flows.f))
43
49
 
44
50
OLP_PROCESS= MadLoopParamReader.o MadLoopCommons.o \
 
51
 $(patsubst $(DOTF),$(DOTO),$(wildcard $(LOOP_PREFIX)*/polynomial.f)) \
45
52
 $(patsubst $(DOTF),$(DOTO),$(wildcard $(LOOP_PREFIX)*/loop_matrix.f)) \
46
53
 $(patsubst $(DOTF),$(DOTO),$(wildcard $(LOOP_PREFIX)*/improve_ps.f)) \
47
54
 $(patsubst $(DOTF),$(DOTO),$(wildcard $(LOOP_PREFIX)*/born_matrix.f)) \
48
55
 $(patsubst $(DOTF),$(DOTO),$(wildcard $(LOOP_PREFIX)*/CT_interface.f)) \
49
56
 $(patsubst $(DOTF),$(DOTO),$(wildcard $(LOOP_PREFIX)*/loop_num.f)) \
50
 
 $(patsubst $(DOTF),$(DOTO),$(wildcard $(LOOP_PREFIX)*/polynomial.f)) \
51
57
 $(patsubst $(DOTF),$(DOTO),$(wildcard $(LOOP_PREFIX)*/helas_calls*.f)) \
52
58
 $(patsubst $(DOTF),$(DOTO),$(wildcard $(LOOP_PREFIX)*/jamp?_calls_*.f)) \
53
59
 $(patsubst $(DOTF),$(DOTO),$(wildcard $(LOOP_PREFIX)*/mp_born_amps_and_wfs.f)) \
70
76
$(CHECK_SA_BORN_SPLITORDERS):  check_sa_born_splitOrders.o $(patsubst $(DOTF),$(DOTO),$(wildcard *born_matrix.f)) makefile $(LIBDIR)libdhelas.$(libext) $(LIBDIR)libmodel.$(libext)
71
77
        $(FC) $(FFLAGS) -o $(CHECK_SA_BORN_SPLITORDERS) check_sa_born_splitOrders.o $(patsubst $(DOTF),$(DOTO),$(wildcard *born_matrix.f)) -L$(LIBDIR) -ldhelas -lmodel
72
78
 
 
79
# This is the core of madloop computationally wise, so make sure to turn optimizations on and bound checks off.
 
80
# We use %olynomial.o and not directly polynomial.o because we want it to match when both doing make check here
 
81
# or make OLP one directory above
 
82
%olynomial.o : %olynomial.f
 
83
        $(FC) $(patsubst -O%,, $(subst -fbounds-check,,$(FFLAGS))) $(POLYNOMIAL_OPTIMIZATION) $(POLYNOMIAL_BOUNDS_CHECK) -c $< -o $@ $(LOOP_INCLUDE)
 
84
 
73
85
$(DOTO) : $(DOTF)
74
86
        $(FC) $(FFLAGS) -c $< -o $@ $(LOOP_INCLUDE)
75
87
 
80
92
        ar rcs libMadLoop.$(libext) $(OLP_PROCESS)
81
93
        mv libMadLoop.$(libext) $(MADLOOP_LIB)
82
94
 
83
 
clean:
84
 
        @rm -f *.o *.so
85
 
 
86
95
../$(OLP):
87
 
        cd ..; make $(OLP); cd -
88
 
        rm -f libMadLoop.dylib
89
 
        ln -s ../libMadLoop.dylib
90
 
 
91
 
libMadLoop.dylib: ../$(OLP)
 
96
        rm -f libMadLoop.$(dylibext)
 
97
        ln -s ../libMadLoop.$(dylibext)
 
98
        cd $(ROOT)/SubProcesses; make $(OLP)
 
99
 
 
100
../$(OLP)_static:
 
101
        cd $(ROOT)/SubProcesses; make $(OLP)_static
 
102
 
 
103
libMadLoop.$(dylibext): ../$(OLP)
92
104
 
93
105
ifeq ($(origin MENUM),undefined)
94
106
  MENUM=2
95
107
endif
96
 
matrix$(MENUM)py.so: ../$(OLP)
 
108
matrix$(MENUM)py.so: ../$(OLP)_static f2py_wrapper.f 
97
109
        touch __init__.py
98
 
        $(F2PY) -L. -lMadLoop -m matrix$(MENUM)py -c check_sa.f --fcompiler=$(FC)
 
 
b'\\ No newline at end of file'
 
110
        $(F2PY) $(MADLOOP_LIB) -m matrix$(MENUM)py -c f2py_wrapper.f --fcompiler=$(FC)   -L../../lib/ -ldhelas -lmodel $(LINK_LOOP_LIBS) $(STDLIB)
 
111
 
 
112
clean:
 
113
        @rm -f *.o *.so *.$(libext) *.$(dylibext)