source: Makefile@ e40e335

Last change on this file since e40e335 was e40e335, checked in by baerbaer <baerbaer@…>, 16 years ago

Initial import to BerliOS corresponding to 3.0.4

git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/smmp/trunk@1 26dc1dd8-5c4e-0410-9ffe-d298b4865968

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