ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/nano_mpi/src/Makefile
Revision: 4
Committed: Mon Jun 10 17:18:36 2002 UTC (22 years ago) by chuckv
File size: 7725 byte(s)
Log Message:
Import Root

File Contents

# Content
1 .SUFFIXES: $(SUFFIXES) .F .pas .f90
2 SHELL = /bin/sh
3 CPP = /usr/lib/cpp
4 FPP = /usr/local/intel/compiler60/ia32/bin/fpp -P -free
5 GCC = gcc
6 NAG = -L/usr/local/lib -lblas -llapack -lnag
7 LAPACK = -L/usr/local/lib -lblas -llapack
8 PURIFY = /usr/local/purify-4.1-irix6/purify
9 # First do the AIX dependent-things:
10 AIX_FFLAGS = -O3 -qarch=ppc -qfloat=fltint:hssngl:rsqrt -qhot -qipa -qmaxmem=-1 -qtune=604 -u
11 AIX_CFLAGS = -O3 -qarch=ppc -qfloat=fltint:hssngl:rsqrt -qipa -qmaxmem=-1 -qtune=604
12 AIX_LINKFLAGS = -O3 -qarch=ppc -qfloat=fltint:hssngl:rsqrt -qhot -qipa -qmaxmem=-1 -qtune=604 -u
13 # AIX_FFLAGS = -g -u -C -qextchk
14 # AIX_LINKFLAGS = -g -u -C -qextchk
15 AIX_NAG = -L/usr/local/lib -lblas -llapack -lnag
16 AIX_LAPACK = -L/usr/local/lib -lblas -llapack
17 AIX_FC = f90
18 AIX_CC = xlc
19 AIX_PC = xlp
20 # Then the SunOS dependent things:
21 # SunOS_FFLAGS = -u -fast -O3 -arch=P6
22 SunOS_CFLAGS = -O2 -m486 -I/usr/ucbinclude
23 # SunOS_LINKFLAGS = -u -fast
24 SunOS_FFLAGS = -u -C
25 SunOS_LINKFLAGS = -u -g -C
26 SunOS_NAG = -L/usr/local/lib -lf77blas -llapack -lnag -latlas_x86
27 SunOS_LAPACK = -L/home/maul/gezelter/chuckv/SunOS/lib -llapack90 -L/usr/local/lib -llapack -lf77blas -latlas_x86
28 SunOS_MPI = -L/home/maul/gezelter/chuckv/SunOS/lib/ -lmpichf90 -lmpich
29 SunOS_LIBS = -L/usr/ucblib -lucb -L/usr/lib -lsocket -laio -lnsl -R/usr/ucblib -R/usr/lib
30 SunOS_FC = /usr/local/bin/epcf90
31 SunOS_CC = gcc
32 SunOS_PC = xlp
33 # FPPFLAGS = -DMPI
34 # Then the Linux dependent things:
35 # Linux_FFLAGS = -u -O2
36 Linux_CFLAGS = -O2 -march=pentiumpro
37 Linux_LINKFLAGS = -g -u -C -Vaxlib
38 # Linux_FFLAGS = -Vaxlib -mp -pc64 -r8 -axW -ipo -O3 -tpp7
39 # Linux_LINKFLAGS = -Vaxlib -mp -pc64 -r8 -axW -ipo -O3 -tpp7
40 # Linux_FFLAGS = -Vaxlib -mp -pc64 -r8 -O2 -u -axW -ipo -tpp7
41 # Linux_LINKFLAGS = -Vaxlib -mp -pc64 -r8 -O2 -tpp6 -axW -ipo -tpp7
42 Linux_FFLAGS = -Vaxlib -mp -u
43 # Linux_LINKFLAGS = -Vaxlib -mp -u -axW -ipo -tpp7
44 Linux_MPI = -L/usr/local/lib/ -lmpichf90 -lfmpich -lmpich
45 # Linux_NAG = -L/usr/local/lib -lf77blas -llapack -lnag -latlas
46 Linux_LAPACK = -L../../lapack95 -llapack95 /usr/local/intel/mkl/lib/32/libmkl_lapack.a /usr/local/intel/mkl/lib/32/libmkl_p3.a -lpthread
47 Linux_LIBS = -L../lib -lsprng -lgmp
48 Linux_FC = ifc
49 # Linux_FC = /usr/local/bin/f90
50 Linux_CC = gcc
51 Linux_PC = xlp
52 # Then the IRIX dependent things:
53 # IRIX_FFLAGS = -pfa -mp -O2 -mips4 -OPT:fold_arith_limit=1012
54 IRIX_FFLAGS = -O2 -mips4 -OPT:fold_arith_limit=4000
55 IRIX_CFLAGS = -O2 -mips4
56 IRIX_LINKFLAGS = -O2 -mips4 -lfastm
57 # IRIX_FFLAGS = -g -u -C
58 # IRIX_LINKFLAGS = -g -u -C -lcomplib.sgimath
59 IRIX_NAG = -lcomplib.sgimath -L/usr/local/lib -lnag
60 IRIX_LAPACK = -lcomplib.sgimath
61 IRIX_FC = /bin/f90
62 IRIX_CC = cc
63 IRIX_PC = pc
64
65 # A very cool hack to "do the right thing": (does not work on IRIX).
66 FFLAGS = ${$(OS)_FFLAGS}
67 CFLAGS = ${$(OS)_CFLAGS}
68 LINKFLAGS = ${$(OS)_LINKFLAGS}
69 DFFLAGS = ${$(OS)_DFFLAGS}
70 DCFLAGS = ${$(OS)_DCFLAGS}
71 DLINKFLAGS = ${$(OS)_DLINKFLAGS}
72 NAG = ${$(OS)_NAG}
73 LAPACK = ${$(OS)_LAPACK}
74 SPRNG = ${$(OS)_SPRNG}
75 MPI = ${${OS}_MPI}
76 LIBS = ${${OS}_LIBS}
77 FC = ${$(OS)_FC}
78 CC = ${$(OS)_CC}
79 PC = ${$(OS)_PC}
80 RM = /bin/rm -f
81 CP = /bin/cp
82
83 NANO_SRC = \
84 ${OS}_ifc_machdep.F90 \
85 constants_module.F90 \
86 vectors.F90 \
87 io_units.F90 \
88 f2kcli.F90 \
89 file_units.F90 \
90 parameter_module.F90 \
91 simulation_module.F90 \
92 model_module.F90 \
93 mpi_module.F90 \
94 random.F90 \
95 status_module.F90 \
96 xyz_io_module.F90 \
97 second_deriv.F90 \
98 force_utilities.F90 \
99 force_eam_module.F90 \
100 force_glue_module.F90 \
101 force_goddard_module.F90 \
102 force_lj_module.F90 \
103 force_field.F90 \
104 velocity_module.F90 \
105 init_system.F90 \
106 langevin_cluster_nlist.F90 \
107 dynamics_utilities.F90 \
108 dynamics_nose_hoover.F90 \
109 dynamics_velocity_verlet.F90 \
110 dynamics_langevin_verlet.F90 \
111 dynamics_module.F90 \
112 getfile.c \
113 main.F90
114
115
116 NANO_FOBJ= $(NANO_SRC:%.F90=../${OS}/%.o)
117 NANO_OBJ= $(NANO_FOBJ:%.c=../${OS}/%.o)
118
119 NANO_MPI_FOBJ = $(NANO_SRC:%.F90=../${OS}/%_mpi.o)
120 NANO_MPI_OBJ = $(NANO_MPI_FOBJ:%.c=../${OS}/%_mpi.o)
121
122 NANO_DEBUG_FOBJ = $(NANO_SRC:%.F90=../${OS}/%_d.o)
123 NANO_DEBUG_OBJ = $(NANO_DEBUG_FOBJ:%.c=../${OS}/%_d.o)
124
125 PROPS_SRC = \
126 parameter_mod.F90 \
127 simulation_mod.F90 \
128 model_module.F90 \
129 io_module.F90 \
130 second_deriv.F90 \
131 simulation_routines.F90 \
132 init_system.F90 \
133 eam_module.F90 \
134 glue_module.F90 \
135 goddard_module.F90 \
136 lj_module.F90 \
137 force_field.F90 \
138 read_config.F90 \
139 props.F90 \
140 random.F90 \
141 rcorr_module.F90 \
142 gofr_module.F90 \
143 thetacorr_module.F90 \
144 dens_module.F90 \
145 dom_module.F90 \
146 nm_module.F90 \
147 restat_module.F90 \
148 getfile.c \
149 neighbor_finder.F90 \
150 bubble_sort.F90 \
151 ${OS}_machdep.F90
152
153 PROPS_FOBJ= $(PROPS_SRC:%.F90=../${OS}/%.o)
154 PROPS_OBJ= $(PROPS_FOBJ:%.c=../${OS}/%.o)
155
156 MINIM_SRC = \
157 parameter_mod.F90 \
158 simulation_mod.F90 \
159 atype.F90 \
160 io_module.F90 \
161 second_deriv.F90 \
162 init_system.F90 \
163 minim.F90 \
164 set_pos.F90 \
165 model.F90 \
166 eam_module.F90 \
167 glue_forces.F90 \
168 goddard_forces.F90 \
169 lj_forces.F90 \
170 force_field.F90 \
171 pbc.F90 \
172 nlist.F90 \
173 read_config.F90 \
174 random.F90 \
175 rcorr_module.F90 \
176 gofr_module.F90 \
177 thetacorr_module.F90 \
178 dens_module.F90 \
179 dom_module.F90 \
180 nm_module.F90 \
181 getfile.c \
182 error.F90 \
183 utility_mod.F90 \
184 ${OS}_machdep.F90
185
186 MINIM_FOBJ= $(MINIM_SRC:%.F90=../${OS}/%.o)
187 MINIM_OBJ= $(MINIM_FOBJ:%.c=../${OS}/%.o)
188
189 OBJ = $(NANO_OBJ) $(PROPS_OBJ) $(MINIM_OBJ)
190 MPIOBJ = $(MPINANO_OBJ)
191 #
192 #PROGS = ../${OS}/nano ../${OS}/props ../${OS}/nano_mpi
193 PROGS = ../${OS}/nano ../${OS}/nano_mpi
194 DEBUG_PROGS = ../${OS}/nano
195 #
196
197 # preprocess .F90 files to f90
198 ../${OS}/%.o: %.F90
199 @echo "preprocessing $*"
200 $(FPP) $*.F90 $*.f90
201 @echo "compiling $*"
202 cd ../${OS}; $(FC) $(FFLAGS) -c ../src/$*.f90
203 # $(RM) $*.f90
204
205 ../${OS}/%_mpi.o: %.F90
206 @echo "preprocessing $*_mpi"
207 $(FPP) -DMPI $*.F90 $*_mpi.f90
208 @echo "compiling $*"
209 cd ../${OS}; $(FC) $(FFLAGS) -c ../src/$*_mpi.f90
210 # $(RM) $*_mpi.f90
211
212 ../${OS}/%_mpi.o: %.c
213 @echo "preprocessing $*_mpi"
214 $(CP) $*.c $*_mpi.c
215 @echo "compiling $*"
216 cd ../${OS}; $(CC) $(CFLAGS) -c ../src/$*_mpi.c
217 $(RM) $*_mpi.c
218
219
220 # Some rulesets for compiling:
221 ../${OS}/%.o: %.f90
222 @echo "compiling $*"
223 cd ../${OS}; $(FC) $(FFLAGS) -c ../src/$<
224 #
225 # standard C .c files
226 #
227 ../${OS}/%.o: %.c
228 @echo "compiling $*"
229 cd ../${OS}; $(CC) $(CFLAGS) -c ../src/$<
230 #
231 # now define targets and dependencies:
232 #
233 all:: $(PROGS)
234
235 ../${OS}/nano: $(NANO_OBJ)
236 $(FC) -o ../${OS}/nano $(NANO_OBJ) $(LINKFLAGS) $(LAPACK) $(LIBS)
237
238 ../${OS}/nano_mpi: $(NANO_MPI_OBJ)
239 $(RM) ../${OS}/work.pc
240 $(FC) -o ../${OS}/nano_mpi $(NANO_MPI_OBJ) $(LINKFLAGS) $(LAPACK) $(LIBS) $(MPI)
241
242 ../${OS}/props: $(PROPS_OBJ)
243 $(FC) -o ../${OS}/props $(PROPS_OBJ) $(LINKFLAGS) $(LAPACK) $(LIBS)
244
245 ../${OS}/minim: $(MINIM_OBJ)
246 $(FC) -o ../${OS}/minim $(MINIM_OBJ) $(LINKFLAGS) $(NAG) $(LAPACK) $(LIBS)
247 #
248 clean::
249 $(RM) *.dat *.ps fort.* *.out *.trace *.o ../${OS}/*.o ../${OS}/*.d ../${OS}/work.pc
250
251 spotless: clean
252 $(RM) src/*~ $(PROGS) $(OBJ)