Page MenuHomec4science

Makefile
No OneTemporary

File Metadata

Created
Fri, May 17, 00:42

Makefile

#
# @file Makefile
#
# @brief
#
# @copyright
# Copyright (©) 2021 EPFL (Ecole Polytechnique Fédérale de Lausanne)
# SPC (Swiss Plasma Center)
#
# SPClibs is free software: you can redistribute it and/or modify it under
# the terms of the GNU Lesser General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option)
# any later version.
#
# SPClibs is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
# @author
# (in alphabetical order)
# @author Trach-Minh Tran <trach-minh.tran@epfl.ch>
#
MPIF90 = mpif90
LD = $(MPIF90)
# F90FLAGS = -I$(HOME)/include/O -I$(PPUTILS2)
# LDFLAGS = -L$(HOME)/lib/O -L${HDF5}/lib
F90FLAGS = -I$(FUTILS)/include -I$(BSPLINES)/include
LDFLAGS = -mkl=cluster -L$(FUTILS)/lib -L$(BSPLINES)/lib -L${HDF5}/lib
MODS = gvector_mod.o stencil_mod.o
LIBS = $(MODS) -lbsplines -lpppack -lpputils2 -lfutils \
-lhdf5_fortran -lhdf5 -lz
ifdef MKL
SPBLAS = -DMKL
endif
ifdef MUMPS
F90FLAGS += -I$(MUMPS)/include
LDFLAGS += -L$(MUMPS)/lib
LIBS += $(MUMPSLIBS)
endif
all: transfer1d test_relax test_mg test_mgp test_csr two_grid \
test_mg2d test_relax2d test_transf2d transfer1d_col \
test_relax2d_cyl test_transf2d_cyl test_mg2d_cyl poisson_fd
.SUFFIXES:
.SUFFIXES: .o .f90
.f90.o:
$(MPIF90) $(F90FLAGS) -c $<
partition: partition.o
$(LD) $(LDFLAGS) -o $@ $< parmg_mod.o $(MODS) -lpputils2 -lfutils \
-lhdf5_fortran -lhdf5 -lz
transfer1d: transfer1d.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
test_relax: test_relax.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
test_mg: test_mg.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
test_mgp: test_mgp.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
test_csr: test_csr.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
two_grid: two_grid.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
test_mg2d: test_mg2d.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
test_relax2d: test_relax2d.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
test_transf2d: test_transf2d.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
transfer1d_col: transfer1d_col.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
test_relax2d_cyl: test_relax2d_cyl.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
test_transf2d_cyl: test_transf2d_cyl.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
test_mg2d_cyl: test_mg2d_cyl.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
poisson_fd: poisson_fd.o
$(LD) $(LDFLAGS) -o $@ $< fdmat_mod.o $(LIBS)
csr_mod.o: csr_mod.f90
$(MPIF90) $(FPP) $(SPBLAS) $(F90FLAGS) -c csr_mod.f90
parmg_mod.o: gvector_mod.o stencil_mod.o
partition.o: parmg_mod.o
transfer1d.o: $(MODS)
test_relax.o: $(MODS)
test_mg.o: $(MODS)
test_mgp.o: $(MODS)
test_csr.o: $(MODS)
two_grid.o: $(MODS)
test_mg2d.o: $(MODS)
test_relax2d.o: $(MODS)
test_transf2d.o: $(MODS)
transfer1d_col.o: $(MODS)
test_relax2d_cyl.o: $(MODS)
test_transf2d_cyl.o: $(MODS)
test_mg2d_cyl.o: $(MODS)
poisson_fd.o: fdmat_mod.o
fdmat_mod.o: stencil_mod.o parmg_mod.o
stencil_mod.o: gvector_mod.o
parmg_mod.o: gvector_mod.o stencil_mod.o
clean:
rm -f *.o *.mod *~ ../wk/*~ a.out lib
distclean: clean
rm -f ../wk/*.h5 ../wk/fort.* *.eps \
transfer1d test_relax test_mg test_mgp test_csr two_grid \
test_mg2d test_relax2d test_transf2d transfer1d_col \
test_relax2d_cyl test_transf2d_cyl test_mg2d_cyl
#include $(HOST).mk

Event Timeline