source: Makefile@ 7137e5d

Last change on this file since 7137e5d was 7137e5d, checked in by Jan Meinke <j.meinke@…>, 14 years ago

Added timer and enyshe using double loop.

  • Property mode set to 100644
File size: 5.7 KB
Line 
1# Makefile: smmp
2
3#.SILENT:
4
5%_p.o : %_p.f
6 $(MPIF90) $(F_FLAGS) $<
7
8%_p.o : %_p.F
9 $(MPIF90) $(F_FLAGS) $<
10
11.SUFFIXES: .o .f
12.f.o:
13 $(F90) $(F_FLAGS) $<
14
15.SUFFIXES: .o .f90
16.f90.o:
17 $(F90) $(F_FLAGS) $<
18
19.SUFFIXES: .o .F90
20.F90.o:
21 $(F90) $(F_FLAGS) $<
22# ==================================== Variables for compiling and linking
23L_FLAGS=-g
24# Linker flags
25# Default flags, e.g., for gfortran, g77
26L_FLAGS=-O2 -g
27
28# Flags for Intel's ifort
29#L_FLAGS=-O3 -axT -g
30#L_FLAGS=-fast -parallel
31# FLAGS for Cray
32# L_FLAGS=-fastsse -Mipa
33
34# Flags for xlf
35# L_FLAGS=-O3 -qhot -q64 -qipa -qextname=flush
36
37# Optimized flag for gfortran on an i686 platform
38# L_FLAGS=-fPIC -O3 -funroll-loops -mmmx -msse2 -msse -march=i686 -malign-double -fomit-frame-pointer
39
40# Compiler flags
41# Default flags, e.g., for gfortran, g77
42F_FLAGS=-c -O2 -g
43# Flags for Intel's ifort
44#F_FLAGS=-c -O3 -axT -g
45#F_FLAGS=-c -fast -parallel
46# Flags for debugging build
47# F_FLAGS=-c -O0 -g
48# FLAGS for Cray
49# F_FLAGS=-c -fastsse -Mipa
50# Flags for xlf
51#F_FLAGS=-c -O3 -qhot -q64 -qipa -qextname=flush
52
53# Optimized flag for gfortran on an i686 platform
54# F_FLAGS=-c -fPIC -O3 -funroll-loops -mmmx -msse2 -msse -march=i686 -malign-double -fomit-frame-pointer
55
56# Select your compiler
57#F90=ifort
58#F90=pgf90
59#F90=xlf
60F90=gfortran
61MPIF90=mpif90
62
63
64# ______________________________________________ Name of program
65PROG=smmp
66# ______________________________________________ Objects
67OBJ=redseq.o bldmol.o getmol.o redvar.o setvar.o \
68difang.o setmvs.o mklist.o redstr.o dihedr.o enyflx.o addend.o opeflx.o opeshe.o minim.o minqsn.o\
69contacts.o hbond.o helix.o anneal.o metropolis.o rgyr.o zimmer.o \
70canon.o mulcan_par_mod.o outvar.o outpdb.o \
71pdbread.o rmsdfun.o enyreg.o opereg.o mincjg.o cnteny.o \
72init_energy.o init_molecule.o gradient.o energy.o \
73regul.o nursvr.o twister.o eninteract.o bgs.o eyabgn.o enylun.o utilities.o\
74partem_s.o esolan.o opesol.o init_lund.o enyshe_simple.o timer.o
75#_________Serial implementation of ECEPP/3 and solvent
76SOBJ=enyshe.o enysol.o
77#_________Parallel implementation of ECEPP/3 and solvent
78POBJ=enyshe_p.o enysol_p.o partem_p.o
79
80FILES=metropolis.f energy.f enyflx.f enyreg.f enyshe.f enysol.f redseq.f bldmol.f \
81getmol.f redvar.f setvar.f difang.f setmvs.f mklist.f redstr.f dihedr.f addend.f \
82opeflx.f opeshe.f minim.f minqsn.f contacts.f hbond.f helix.f anneal.f rgyr.f \
83zimmer.f canon.f outvar.f outpdb.f \
84pdbread.f rmsdfun.f opereg.f mincjg.f cnteny.f init_energy.f init_molecule.f \
85gradient.f regul.f nursvr.f twister.f eninteract.f bgs.f eyabgn.f enylun.f \
86mulcan_par_mod.f90 esolan.f opesol.f
87# partem_s.f
88
89
90pyInterface=init_molecule init_energy
91#mulcan_par mulcan_sim \
92#init_lund sgrnd energy helix zimmer rgyr rmsdfun \
93#anneal canon outpdb minim regul contacts interhbond hbond setvar\
94#enysol
95# metropolis
96# ============================================== Linking
97all: $(PROG)
98
99$(PROG): $(OBJ) $(SOBJ) main.o
100 $(F90) -o $(PROG) $(L_FLAGS) main.o $(OBJ) $(SOBJ)
101
102# Build parallel version of SMMP.
103parallel: $(OBJ) $(POBJ) main_p.o
104 $(MPIF90) -o $(PROG) $(L_FLAGS) main_p.o $(OBJ) $(POBJ)
105
106# Cross compile for BlueGene/L
107bgl: BGL_L_FLAGS = -L$(BGLSYS)/lib -lmpich.rts -lfmpich.rts -lmsglayer.rts -lrts.rts -ldevices.rts -qextname=flush
108bgl: F_FLAGS = -c -O5 -qhot -g -I$(BGLSYS)/include -L$(BGLSYS)/lib -qarch=440 -qtune=440 -qextname=flush
109bgl: BGL_F90 = blrts_xlf
110bgl: F90 = $(BGL_F90)
111bgl: MPIF90 = $(BGL_F90)
112bgl: CC = blrts_xlc
113bgl: LIBSF_MPI=-lmpich.rts -lfmpich.rts -lmsglayer.rts -lrts.rts -ldevices.rts
114
115bgl: $(OBJ) $(POBJ) main_bgl_p.o
116 $(BGL_F90) -o $(PROG).rts $(BGL_L_FLAGS) main_bgl_p.o $(OBJ) $(POBJ) $(LIBSF_MPI)
117
118# Cross compile for BlueGene/P
119bgp: BGP_SYS = /bgsys/drivers/ppcfloor/comm
120bgp: DIRCOMP = /opt/ibmcmp/xlf/bg/11.1/bin
121bgp: BGP_L_FLAGS = -O3 -qhot -g -I$(BGP_SYS)/include -qarch=440 -qtune=440 -qextname=flush
122bgp: F_FLAGS = -c -O3 -qhot -g -I$(BGP_SYS)/include -qarch=440 -qtune=440 -qextname=flush
123bgp: BGP_F90 = bgxlf
124bgp: F90 = $(BGP_F90)
125bgp: MPIF90 = $(BGP_F90)
126bgp: LIBS=-Wl,-allow-multiple-definition $(MASS) $(ESSL) -L$(BGP_SYS)/lib -lmpich.cnk -ldcmfcoll.cnk -ldcmf.cnk -L/bgsys/drivers/ppcfloor/runtime/SPI -lSPI.cna -lrt -lpthread
127
128bgp: $(OBJ) $(POBJ) main_p.o
129 $(BGP_F90) -o $(PROG).rts $(BGP_L_FLAGS) main_p.o $(OBJ) $(POBJ) $(LIBS)
130
131# Build the python bindings
132pybind: $(FILES)
133 #./rmexclpoint.py $(FILES)
134# f2py -c -m smmp min_smmp.pyf $(FILES) --fcompiler=gnu95
135 #./restoreexclpoint.py $(FILES)
136
137newpybind: $(FILES)
138 ./rmexclpoint.py $(FILES)
139# mv smmp.pyf smmp.pyf.bak
140 f2py -h min_smmp.pyf -m smmp only: ${pyInterface} : $(FILES)
141 ./restoreexclpoint.py $(FILES)
142
143doc:
144 $(MAKE) -w -C doc/
145 doxygen pySMMP.doxygen
146
147examples: $(PROG)
148 $(MAKE) -w -C EXAMPLES/
149
150# ______________________________________________ Dependancies
151main.o: multicanonical.mod
152
153multicanonical.mod: mulcan_par_mod.f90
154 $(F90) $(F_FLAGS) mulcan_par_mod.f90
155
156# enyshe_p.o:
157# $(MPIF90) $(F_FLAGS) enyshe_p.f
158# enysol_p.o:
159# $(MPIF90) $(F_FLAGS) enysol_p.f
160# partem_p.o:
161# $(MPIF90) $(F_FLAGS) partem_p.f
162# main_p.o:
163# $(MPIF90) $(F_FLAGS) main_p.f
164
165main.o redseq.o eyring.o bldmol.o getmol.o redvar.o setvar.o \
166difang.o setmvs.o mklist.o redstr.o dihedr.o enyflx.o\
167enyshe.o addend.o opeflx.o opeshe.o minim.o minqsn.o enysol.o esolan.o\
168contacts.o hbond.o helix.o anneal.o metropolis.o rgyr.o zimmer.o\
169pdbvars.o rmsdfun.o enyreg.o opereg.o cnteny.o opesol.o\
170init_energy.o init_molecule.o gradient.o energy.o nursvr.o\
171regul.o eninteract.o bgs.o eyabgn.o enylun.o \
172canon.o mulcan_par.o mulcan_sim.o outvar.o outpdb.o partem_s.o: INCL.H
173
174pdbread.o enyreg.o opereg.o init_molecule.o regul.o: INCP.H
175
176.PHONY: clean, restore, doc
177clean:
178 $(MAKE) -w -C EXAMPLES/ clean
179 rm -f smmp core* *.o *~ *.mod
180restore:
181 ./restoreexclpoint.py $(FILES)
182
183# end
Note: See TracBrowser for help on using the repository browser.