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, 1 month ago) by chuckv
File size: 7725 byte(s)
Log Message:
Import Root

File Contents

# User Rev Content
1 chuckv 4 .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)