source: CIVL/examples/fortran/nek5000/core/makefile.template

main
Last change on this file was ea777aa, checked in by Alex Wilton <awilton@…>, 3 years ago

Moved examples, include, build_default.properties, common.xml, and README out from dev.civl.com into the root of the repo.

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@5704 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100755
File size: 10.8 KB
Line 
1BINNAME=nek5000
2LIBNAME=libnek5000.a
3CASENAME=
4CASEDIR=
5S=
6SCMT=
7OPT_INCDIR=./
8OBJDIR=obj
9
10FC=
11CC=
12FFLAGS+=
13CFLAGS+=
14LDFLAGS+=
15
16PPPO=
17PPS=
18
19USR=
20USR_LFLAGS=
21
22MPI=0
23CMT=0
24DPROCMAP=0
25VISIT=0
26
27VISIT_IFLAGS=
28VISIT_LFLAGS=
29HYPRE_IFLAGS=
30GSLIB_IFLAGS=
31PARRSB_IFLAGS=
32
33################################################################################
34
35PPS_F = $(patsubst %,$(PPPO)-D%,$(PPS))
36PPS_C = $(patsubst %,-D%,$(PPS))
37
38# CORE##########################################################################
39CORE = drive1.o drive2.o \
40plan5.o \
41plan4.o bdry.o coef.o conduct.o connect1.o connect2.o \
42dssum.o edgec.o eigsolv.o gauss.o genxyz.o navier1.o makeq.o \
43navier0.o navier2.o navier3.o navier4.o prepost.o speclib.o \
44map2.o mvmesh.o ic.o gfldr.o ssolv.o planx.o math.o mxm_wrapper.o \
45hmholtz.o subs1.o subs2.o \
46gmres.o hsmg.o convect.o convect2.o induct.o perturb.o \
47navier5.o navier6.o navier7.o navier8.o fast3d.o fasts.o calcz.o \
48byte.o chelpers.o byte_mpi.o postpro.o interp.o \
49cvode_driver.o multimesh.o \
50vprops.o makeq_aux.o \
51papi.o nek_in_situ.o \
52reader_rea.o reader_par.o reader_re2.o \
53finiparser.o iniparser.o dictionary.o \
54hpf.o \
55fcrs.o crs_xxt.o crs_amg.o \
56fem_amg_preco.o crs_hypre.o \
57partitioner.o
58################################################################################
59# MXM
60MXM =
61################################################################################
62
63COMM_MPI := comm_mpi.o
64ifeq ($(MPI),0)
65 COMM_MPI := ${COMM_MPI} mpi_dummy.o
66endif
67
68# CMT append *.o files to CORE
69ifeq ($(CMT),0)
70 CMTCORE :=
71else
72 CMTCORE := drive1_cmt.o drive2_cmt.o driver3_cmt.o \
73 face.o ausm.o state1.o intpdiff.o diffusive_cmt.o eqnsolver_cmt.o surface_fluxes.o \
74 bc.o inflow_bc.o outflow_bc.o wall_bc.o step.o \
75 filters_cmt.o diagnostics.o artvisc.o
76endif
77
78DUMMY:= $(shell cp $S/PARALLEL.default $S/PARALLEL)
79ifeq ($(DPROCMAP),1)
80 CORE := ${CORE} dprocmap.o
81 DUMMY:= $(shell cp $S/PARALLEL.dprocmap $S/PARALLEL)
82endif
83
84ifneq ($(VISIT),0)
85 VISITNEK_INCLUDES:=-I$S/3rd_party
86 VISITO := visit.o
87 USR_LFLAGS := ${USR_LFLAGS} $(VISIT_LFLAGS)
88endif
89
90ifeq ($(MPI),0)
91 DUMMY:= $(shell cp $S/mpi_dummy.h $S/mpif.h)
92else
93 DUMMY:= $(shell rm -rf $S/mpif.h)
94endif
95
96TMP1 = $(CORE) $(MXM) $(USR) $(COMM_MPI) $(VISITO)
97
98ifeq ($(CMT),1)
99TMP1 += $(CMTCORE)
100OPT_INCDIR += -I $(SCMT)
101endif
102
103OPT_INCDIR += -I $S/experimental
104
105NOBJS = $(patsubst %,$(OBJDIR)/%,$(TMP1))
106
107L0 = $(G) -O0
108L2 = $(G) -O2
109L3 = $(G) -O3
110
111FL0 = $(L0) $(FFLAGS) $(PPS_F) -I$(CASEDIR) -I$S -I$(OPT_INCDIR)
112FL2 = $(L2) $(FFLAGS) $(PPS_F) -I$(CASEDIR) -I$S -I$(OPT_INCDIR)
113FL3 = $(L3) $(FFLAGS) $(PPS_F) -I$(CASEDIR) -I$S -I$(OPT_INCDIR)
114
115cFL0 = $(L0) $(CFLAGS) $(PPS_C) -I$S -I$(OPT_INCDIR)
116cFL2 = $(L2) $(CFLAGS) $(PPS_C) -I$S -I$(OPT_INCDIR)
117cFL3 = $(L3) $(CFLAGS) $(PPS_C) -I$S -I$(OPT_INCDIR)
118
119################################################################################
120.PHONY: all clean
121
122all : nek5000
123
124objdir:
125 @mkdir $(OBJDIR) 2>/dev/null; cat /dev/null
126
127usrfile:
128 @env CASENAME=$(CASENAME) PPS="$(PPS)" $S/mkuserfile
129 $(FC) $(FL2) $(VISITNEK_INCLUDES) -c $(CASEDIR)/${CASENAME}.f
130
131nek5000: lib usrfile
132 $(FC) $(FL2) -o ${BINNAME} $S/drive.f $(CASEDIR)/${CASENAME}.o ${LIBNAME} $(USR_LFLAGS) $(LDFLAGS)
133 @if test -f ${BINNAME}; then \
134 echo ""; \
135 echo "$(NEK_WARN)"; \
136 echo "#############################################################"; \
137 echo "# Compilation successful! #"; \
138 echo "#############################################################"; \
139 size ${BINNAME}; \
140 echo ""; \
141 else \
142 echo -e "ERROR: Cannot find ${BINNAME}!"; \
143 echo -e ""; \
144 fi
145 @rm -f ${CASENAME}.o ${LIBNAME} drive.o *.i
146
147lib: objdir $(NOBJS)
148 @printf "building ${LIBNAME} ... "
149 @$(AR) cru ./${LIBNAME} $(NOBJS)
150 @ranlib ${LIBNAME}
151 @if test -f ${LIBNAME}; then \
152 printf "done\n"; \
153 else \
154 printf "failed!\n"; \
155 echo ""; \
156 fi
157 @rm -f *.i
158
159clean::
160 @rm -rf ${LIBNAME} ${CASENAME}.o ${CASENAME}.f obj ${BINNAME}
161
162$(NOBJS) : ./SIZE
163
164# NEK CORE ##################################################################
165$(OBJDIR)/drive1.o :$S/drive1.f; $(FC) -c $(FL2) $< -o $@
166$(OBJDIR)/drive2.o :$S/drive2.f; $(FC) -c $(FL2) $< -o $@
167$(OBJDIR)/prepost.o :$S/prepost.f; $(FC) -c $(FL2) $< -o $@
168$(OBJDIR)/postpro.o :$S/postpro.f; $(FC) -c $(FL2) $< -o $@
169$(OBJDIR)/gfldr.o :$S/gfldr.f $S/GFLDR; $(FC) -c $(FL2) $< -o $@
170$(OBJDIR)/connect1.o :$S/connect1.f; $(FC) -c $(FL2) $< -o $@
171$(OBJDIR)/connect2.o :$S/connect2.f; $(FC) -c $(FL2) $< -o $@
172$(OBJDIR)/edgec.o :$S/edgec.f; $(FC) -c $(FL2) $< -o $@
173$(OBJDIR)/genxyz.o :$S/genxyz.f; $(FC) -c $(FL2) $< -o $@
174$(OBJDIR)/subs1.o :$S/subs1.f; $(FC) -c $(FL2) $< -o $@
175$(OBJDIR)/subs2.o :$S/subs2.f; $(FC) -c $(FL2) $< -o $@
176$(OBJDIR)/map2.o :$S/map2.f; $(FC) -c $(FL2) $< -o $@
177$(OBJDIR)/dprocmap.o :$S/dprocmap.f $S/DPROCMAP; $(FC) -c $(FL2) $< -o $@
178$(OBJDIR)/interp.o :$S/interp.f; $(FC) -c $(FL2) $< -o $@
179$(OBJDIR)/mvmesh.o :$S/mvmesh.f; $(FC) -c $(FL2) $< -o $@
180$(OBJDIR)/induct.o :$S/induct.f; $(FC) -c $(FL2) $< -o $@
181$(OBJDIR)/convect.o :$S/convect.f; $(FC) -c $(FL2) $< -o $@
182$(OBJDIR)/convect2.o :$S/convect2.f; $(FC) -c $(FL0) $< -o $@
183$(OBJDIR)/perturb.o :$S/perturb.f; $(FC) -c $(FL2) $< -o $@
184$(OBJDIR)/hsmg.o :$S/hsmg.f; $(FC) -c $(FL2) $< -o $@
185$(OBJDIR)/gmres.o :$S/gmres.f; $(FC) -c $(FL2) $< -o $@
186$(OBJDIR)/papi.o :$S/papi.f; $(FC) -c $(FL2) $< -o $@
187$(OBJDIR)/bdry.o :$S/bdry.f; $(FC) -c $(FL2) $< -o $@
188$(OBJDIR)/ic.o :$S/ic.f; $(FC) -c $(FL2) $< -o $@
189$(OBJDIR)/conduct.o :$S/conduct.f; $(FC) -c $(FL2) $< -o $@
190$(OBJDIR)/navier0.o :$S/navier0.f; $(FC) -c $(FL2) $< -o $@
191$(OBJDIR)/navier2.o :$S/navier2.f; $(FC) -c $(FL2) $< -o $@
192$(OBJDIR)/navier3.o :$S/navier3.f; $(FC) -c $(FL2) $< -o $@
193$(OBJDIR)/navier4.o :$S/navier4.f; $(FC) -c $(FL2) $< -o $@
194$(OBJDIR)/navier5.o :$S/navier5.f; $(FC) -c $(FL2) $< -o $@
195$(OBJDIR)/navier6.o :$S/navier6.f; $(FC) -c $(FL2) $< -o $@
196$(OBJDIR)/navier7.o :$S/navier7.f; $(FC) -c $(FL2) $< -o $@
197$(OBJDIR)/navier8.o :$S/navier8.f; $(FC) -c $(FL2) $< -o $@
198$(OBJDIR)/speclib.o :$S/speclib.f; $(FC) -c $(FL2) $< -o $@
199$(OBJDIR)/calcz.o :$S/calcz.f; $(FC) -c $(FL2) $< -o $@
200$(OBJDIR)/fast3d.o :$S/fast3d.f; $(FC) -c $(FL2) $< -o $@
201$(OBJDIR)/dssum.o :$S/dssum.f; $(FC) -c $(FL2) $< -o $@
202$(OBJDIR)/eigsolv.o :$S/eigsolv.f; $(FC) -c $(FL2) $< -o $@
203$(OBJDIR)/gauss.o :$S/gauss.f; $(FC) -c $(FL2) $< -o $@
204$(OBJDIR)/planx.o :$S/planx.f; $(FC) -c $(FL2) $< -o $@
205$(OBJDIR)/ssolv.o :$S/ssolv.f; $(FC) -c $(FL2) $< -o $@
206$(OBJDIR)/coef.o :$S/coef.f; $(FC) -c $(FL2) $< -o $@
207$(OBJDIR)/plan4.o :$S/plan4.f; $(FC) -c $(FL2) $< -o $@
208$(OBJDIR)/plan5.o :$S/plan5.f; $(FC) -c $(FL2) $< -o $@
209$(OBJDIR)/vprops.o :$S/vprops.f; $(FC) -c $(FL2) $< -o $@
210$(OBJDIR)/cvode_driver.o :$S/cvode_driver.f $S/CVODE; $(FC) -c $(FL2) $< -o $@
211$(OBJDIR)/makeq.o :$S/makeq.f; $(FC) -c $(FL2) $< -o $@
212$(OBJDIR)/makeq_aux.o :$S/makeq_aux.f; $(FC) -c $(FL2) $< -o $@
213$(OBJDIR)/hmholtz.o :$S/hmholtz.f; $(FC) -c $(FL2) $< -o $@
214$(OBJDIR)/navier1.o :$S/navier1.f; $(FC) -c $(FL2) $< -o $@
215$(OBJDIR)/fasts.o :$S/fasts.f; $(FC) -c $(FL2) $< -o $@
216$(OBJDIR)/comm_mpi.o :$S/comm_mpi.f; $(FC) -c $(FL2) $< -o $@
217$(OBJDIR)/mpi_dummy.o :$S/mpi_dummy.f; $(FC) -c $(FL2) $< -o $@
218$(OBJDIR)/byte_mpi.o :$S/byte_mpi.f; $(FC) -c $(FL2) $< -o $@
219$(OBJDIR)/math.o :$S/math.f; $(FC) -c $(FL3) $< -o $@
220$(OBJDIR)/multimesh.o :$S/multimesh.f; $(FC) -c $(FL2) $< -o $@
221$(OBJDIR)/lb_setqvol.o :$S/lb_setqvol.f; $(FC) -c $(FL2) $< -o $@
222$(OBJDIR)/reader_rea.o :$S/reader_rea.f; $(FC) -c $(FL2) $< -o $@
223$(OBJDIR)/reader_par.o :$S/reader_par.f $S/PARDICT; $(FC) -c $(FL2) $< -o $@
224$(OBJDIR)/reader_re2.o :$S/reader_re2.f; $(FC) -c $(FL2) $< -o $@
225$(OBJDIR)/hpf.o :$S/hpf.f; $(FC) -c $(FL2) $< -o $@
226
227# CMT CORE ##################################################################
228$(OBJDIR)/step.o :$(SCMT)/step.f; $(FC) -c $(FL2) $< -o $@
229$(OBJDIR)/drive1_cmt.o :$(SCMT)/drive1_cmt.f; $(FC) -c $(FL2) $< -o $@
230$(OBJDIR)/drive2_cmt.o :$(SCMT)/drive2_cmt.f; $(FC) -c $(FL2) $< -o $@
231$(OBJDIR)/driver3_cmt.o :$(SCMT)/driver3_cmt.f; $(FC) -c $(FL2) $< -o $@
232$(OBJDIR)/gradient_solver.o :$(SCMT)/gradient_solver.f; $(FC) -c $(FL2) $< -o $@
233$(OBJDIR)/eqnsolver_cmt.o :$(SCMT)/eqnsolver_cmt.f; $(FC) -c $(FL2) $< -o $@
234$(OBJDIR)/ausm.o :$(SCMT)/ausm.f; $(FC) -c $(FL2) $< -o $@
235$(OBJDIR)/artvisc.o :$(SCMT)/artvisc.f; $(FC) -c $(FL2) $< -o $@
236$(OBJDIR)/face.o :$(SCMT)/face.f; $(FC) -c $(FL2) $< -o $@
237$(OBJDIR)/bc.o :$(SCMT)/bc.f; $(FC) -c $(FL2) $< -o $@
238$(OBJDIR)/surface_fluxes.o :$(SCMT)/surface_fluxes.f; $(FC) -c $(FL2) $< -o $@
239$(OBJDIR)/diffusive_cmt.o :$(SCMT)/diffusive_cmt.f; $(FC) -c $(FL2) $< -o $@
240$(OBJDIR)/state1.o :$(SCMT)/state1.f; $(FC) -c $(FL2) $< -o $@
241$(OBJDIR)/intpdiff.o :$(SCMT)/intpdiff.f; $(FC) -c $(FL2) $< -o $@
242$(OBJDIR)/inflow_bc.o :$(SCMT)/inflow_bc.f; $(FC) -c $(FL2) $< -o $@
243$(OBJDIR)/outflow_bc.o :$(SCMT)/outflow_bc.f; $(FC) -c $(FL2) $< -o $@
244$(OBJDIR)/wall_bc.o :$(SCMT)/wall_bc.f; $(FC) -c $(FL2) $< -o $@
245$(OBJDIR)/filters_cmt.o :$(SCMT)/filters_cmt.f; $(FC) -c $(FL2) $< -o $@
246$(OBJDIR)/diagnostics.o :$(SCMT)/diagnostics.f; $(FC) -c $(FL2) $< -o $@
247
248# MXM ############################################################################
249$(OBJDIR)/mxm_wrapper.o :$S/mxm_wrapper.f; $(FC) -c $(FL2) $< -o $@
250$(OBJDIR)/mxm_std.o :$S/mxm_std.f; $(FC) -c $(FL3) $< -o $@
251$(OBJDIR)/mxm_bgq.o :$S/mxm_bgq.f; $(FC) -c $(FL3) $< -o $@
252
253# C Files ##################################################################################
254$(OBJDIR)/byte.o :$S/byte.c; $(CC) -c $(cFL2) $< -o $@
255$(OBJDIR)/chelpers.o :$S/chelpers.c; $(CC) -c $(cFL2) $< -o $@
256$(OBJDIR)/fcrs.o :$S/fcrs.c; $(CC) -c $(cFL2) $(GSLIB_IFLAGS) $(HYPRE_IFLAGS) $< -o $@
257$(OBJDIR)/crs_xxt.o :$S/crs_xxt.c; $(CC) -c $(cFL2) $(GSLIB_IFLAGS) $< -o $@
258$(OBJDIR)/crs_amg.o :$S/crs_amg.c; $(CC) -c $(cFL2) $(GSLIB_IFLAGS) $< -o $@
259$(OBJDIR)/fem_amg_preco.o :$S/experimental/fem_amg_preco.c; $(CC) -c $(cFL2) $(GSLIB_IFLAGS) $(HYPRE_IFLAGS) $< -o $@
260$(OBJDIR)/crs_hypre.o :$S/experimental/crs_hypre.c; $(CC) -c $(cFL2) $(GSLIB_IFLAGS) $(HYPRE_IFLAGS) $< -o $@
261$(OBJDIR)/partitioner.o :$S/partitioner.c; $(CC) -c $(cFL2) $(GSLIB_IFLAGS) $(PARRSB_IFLAGS) $< -o $@
262
263# 3rd party #######################################################################################
264$(OBJDIR)/visit.o :$S/3rd_party/visit.f; $(FC) -c $(VISIT_IFLAGS) $(FL2) $< -o $@
265$(OBJDIR)/nek_in_situ.o :$S/3rd_party/nek_in_situ.f; $(FC) -c $(VISIT_IFLAGS) $(FL2) $< -o $@
266$(OBJDIR)/finiparser.o :$S/3rd_party/finiparser.c; $(CC) -c $(cFL2) $(JL) $< -o $@
267$(OBJDIR)/iniparser.o :$S/3rd_party/iniparser.c; $(CC) -c $(cFL2) $(JL) $< -o $@
268$(OBJDIR)/dictionary.o :$S/3rd_party/dictionary.c; $(CC) -c $(cFL2) $(JL) $< -o $@
Note: See TracBrowser for help on using the repository browser.