Page MenuHomec4science

Makefile
No OneTemporary

File Metadata

Created
Sat, Oct 5, 11:17

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/>.
#
# @authors
# (in alphabetical order)
# @author Emmanuel Lanti <emmanuel.lanti@epfl.ch>
# @author Trach-Minh Tran <trach-minh.tran@epfl.ch>
#
PREFIX=$(HOME)
XGRAFIX=/usr/local/xgrafix_1.2/src-double
# FUTILS=/usr/local/crpp/futils
# BSPLINES=/usr/local/crpp/bsplines
# PPUTILS2=../pputils2
# PPPACK=../pppack
# SLATEC=/usr/local/slatec
# FFTW=/usr/local/fftw-2.1.5-opt
ARPACK=/usr/local/ARPACK
LAPACK95=$(MKL)/../../../mkl/include/intel64/lp64
MPIF90 = mpif90
F90 = ifort
LD = $(MPIF90)
debug = -g -traceback -check bounds -warn alignments -warn unused
optim = -O3 -xHOST
OPT=$(debug)
#OPT=$(optim)
F90FLAGS = $(OPT) -fPIC -I../fft -I$(BSPLINES)/include -I$(FUTILS)/include \
-I$(FFTW)/include -I$(MKL)/../../include/intel64/lp64
LDFLAGS = $(OPT) -fPIC -L$(FUTILS)/lib -L$(BSPLINES)/lib -L${HDF5}/lib -L$(FFTW)/lib64 \
-L$(SLATEC)/lib -L$(ARPACK)
CC = cc
CFLAGS = -O2
LIBS = -mkl=cluster -lbsplines -lpppack -lpppack -lpputils2 -lfutils -lfft -larpack \
-lfftw -lhdf5_fortran -lhdf5 -lz -lpthread
LIBS1 = -mkl=cluster -lbsplines1 -lpppack -lfutils \
-lhdf5_fortran -lhdf5 -lz -lsz -lpthread
ifdef WSMP
LDFLAGS += -L$(WSMP)
LIBS += -lwsmp64
LIBS1 += -lpwsmp64
endif
ifdef MUMPS
F90FLAGS += -I$(MUMPS)/include -I$(LAPACK95)
LDFLAGS += -L$(MUMPS)/lib -L$(PARMETIS)/lib
LIBS += $(MUMPSLIBS)
endif
ifdef PETSC_DIR
include ${PETSC_DIR}/conf/variables
F90FLAGS += -I$(PETSC_DIR)/include -I$(PETSC_DIR)/$(PETSC_ARCH)/include \
-I$(MKL)/../../include
LIBS += ${PETSC_FORTRAN_LIB} ${PETSC_KSP_LIB}
endif
PDE1DOBJS = pde1d.o
PDE2DOBJS = pde2d.o dismat.o disrhs.o ibcmat.o
FIT1DOBJJS = fit1d.o
.SUFFIXES:
.SUFFIXES: .o .c .f90 .f
.f90.o:
$(MPIF90) $(F90FLAGS) -c $<
.f.o:
$(F90) $(F90FLAGS) -c $<
all: examples tmat
EX_FILES = driv1 driv2 driv3 driv4 pde1d pde1dp pde1dp_cmpl pde3d ppde3d ppde3d_pb \
pde2d pde2d_pb fit1d fit1dbc \
fit1dp fit2d fit2d1d fit2d_cmpl fit2dbc fit2dbc_x fit2dbc_y \
moments optim1 optim2 optim3 tmassmat tbasfun tcdsmat tsparse1 tsparse2 \
pde2d_pardiso pde2d_sym_pardiso pde1dp_cmpl_pardiso pde1dp_cmpl_dft \
pde2d_sym_pardiso_dft \
pde1d_eig_csr pde1d_eig_gb pde1d_eig_ge
ifdef WSMP
EX_FILES += pde2d_wsmp pde2d_pwsmp pde2d_sym_wsmp pde1dp_cmpl_wsmp
endif
ifdef MUMPS
EX_FILES += pde2d_mumps pde1dp_cmpl_mumps pde1d_eig_zmumps
endif
ifdef PETSC_DIR
EX_FILES += pde2d_petsc
endif
examples: $(EX_FILES)
tmat: tmatrix_gb tmatrix_pb tmatrix_zpb
adv: adv.o extra.o
$(LD) $(LDFLAGS) -L$(XGRAFIX) -o $@ $< extra.o $(LIBS) \
-lfftw -lXGF -lXGC -lX11
cp -p $@ ../bin/
driv1: driv1.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
driv2: driv2.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
driv3: driv3.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
driv4: driv4.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
pde1d: $(PDE1DOBJS)
$(LD) $(LDFLAGS) -o $@ $(PDE1DOBJS) $(LIBS)
cp -p $@ ../bin/
pde1d_eig_csr: pde1d_eig_csr.o
$(LD) $(LDFLAGS) -o $@ pde1d_eig_csr.o $(LIBS) -lpputils2
cp -p $@ ../bin/
pde1d_eig_zcsr: pde1d_eig_zcsr.o
$(LD) $(LDFLAGS) -o $@ pde1d_eig_zcsr.o $(LIBS)
cp -p $@ ../bin/
pde1d_eig_zmumps: pde1d_eig_zmumps.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS) -lpputils2
cp -p $@ ../bin/
pde1d_eig_zcsr: pde1d_eig_zcsr.o
$(LD) $(LDFLAGS) -o $@ pde1d_eig_zcsr.o $(LIBS)
cp -p $@ ../bin/
pde1d_eig_gb: pde1d_eig_gb.o
$(LD) $(LDFLAGS) -o $@ pde1d_eig_gb.o $(LIBS)
cp -p $@ ../bin/
pde1d_eig_ge: pde1d_eig_ge.o
$(LD) $(LDFLAGS) -o $@ pde1d_eig_ge.o $(LIBS)
cp -p $@ ../bin/
pde1dp: pde1dp.o pde1dp_mod.o
$(LD) $(LDFLAGS) -o $@ pde1dp.o pde1dp_mod.o $(LIBS)
cp -p $@ ../bin/
pde1dp_cmpl: pde1dp_cmpl.o
$(LD) $(LDFLAGS) -o $@ pde1dp_cmpl.o $(LIBS)
cp -p $@ ../bin/
pde1dp_KA: pde1dp_KA.o pde1dp_mod_KA.o
$(LD) $(LDFLAGS) -o $@ pde1dp_KA.o pde1dp_mod_KA.o $(LIBS)
cp -p $@ ../bin/
pde2d: $(PDE2DOBJS)
$(LD) $(LDFLAGS) -o $@ $(PDE2DOBJS) $(LIBS)
cp -p $@ ../bin/
pde3d: pde3d.o pde3d_mod.o
$(LD) $(LDFLAGS) -o $@ pde3d.o pde3d_mod.o $(LIBS)
cp -p $@ ../bin/
ppde3d: ppde3d.o ppde3d_mod.o
$(LD) $(LDFLAGS) -o $@ ppde3d.o ppde3d_mod.o $(LIBS)
cp -p $@ ../bin/
ppde3d_pb: ppde3d_pb.o ppde3d_pb_mod.o
$(LD) $(LDFLAGS) -o $@ ppde3d_pb.o ppde3d_pb_mod.o $(LIBS)
cp -p $@ ../bin/
pde2d_pb: pde2d_pb.o
$(LD) $(LDFLAGS) -o $@ pde2d_pb.o $(LIBS)
cp -p $@ ../bin/
pde2d_nh: pde2d_nh.o
$(LD) $(LDFLAGS) -o $@ pde2d_nh.o $(LIBS)
cp -p $@ ../bin/
tcdsmat: tcdsmat.o tcdsmat_mod.o meshdist.o
$(LD) $(LDFLAGS) -o $@ tcdsmat.o tcdsmat_mod.o meshdist.o $(LIBS)
cp -p $@ ../bin/
tmatrix_pb: tmatrix_pb.o
$(LD) $(LDFLAGS) -o $@ tmatrix_pb.o $(LIBS)
cp -p $@ ../bin/
tmatrix_zpb: tmatrix_zpb.o
$(LD) $(LDFLAGS) -o $@ tmatrix_zpb.o $(LIBS)
cp -p $@ ../bin/
tmatrix_gb: tmatrix_gb.o
$(LD) $(LDFLAGS) -o $@ tmatrix_gb.o $(LIBS)
cp -p $@ ../bin/
fit1d: $(FIT1DOBJJS)
$(LD) $(LDFLAGS) -o $@ $(FIT1DOBJJS) $(LIBS)
cp -p $@ ../bin/
fit1d_cmpl: fit1d_cmpl.o
$(LD) $(LDFLAGS) -o $@ fit1d_cmpl.o $(LIBS)
cp -p $@ ../bin/
gyro: gyro.o
$(LD) $(LDFLAGS) -o $@ gyro.o -lslatec $(LIBS)
cp -p $@ ../bin/
fit1dbc: fit1dbc.o
$(LD) $(LDFLAGS) -o $@ fit1dbc.o $(LIBS)
cp -p $@ ../bin/
fit1dp: fit1dp.o
$(LD) $(LDFLAGS) -o $@ fit1dp.o $(LIBS)
cp -p $@ ../bin/
fit2d: fit2d.o meshdist.o
$(LD) $(LDFLAGS) -o $@ fit2d.o meshdist.o $(LIBS)
cp -p $@ ../bin/
fit2d1d: fit2d1d.o meshdist.o
$(LD) $(LDFLAGS) -o $@ fit2d1d.o meshdist.o $(LIBS)
cp -p $@ ../bin/
fit2d_cmpl: fit2d_cmpl.o meshdist.o
$(LD) $(LDFLAGS) -o $@ fit2d_cmpl.o meshdist.o $(LIBS)
cp -p $@ ../bin/
fit2dbc: fit2dbc.o meshdist.o
$(LD) $(LDFLAGS) -o $@ fit2dbc.o meshdist.o $(LIBS)
cp -p $@ ../bin/
fit2dbc_x: fit2dbc_x.o meshdist.o
$(LD) $(LDFLAGS) -o $@ fit2dbc_x.o meshdist.o $(LIBS)
cp -p $@ ../bin/
fit2dbc_y: fit2dbc_y.o meshdist.o
$(LD) $(LDFLAGS) -o $@ fit2dbc_y.o meshdist.o $(LIBS)
cp -p $@ ../bin/
moments: moments.o
$(LD) $(LDFLAGS) -o $@ moments.o $(LIBS)
cp -p $@ ../bin/
mesh: mesh.o meshdist.o
$(LD) $(LDFLAGS) -o $@ mesh.o meshdist.o $(LIBS)
cp -p $@ ../bin/
optim1: optim1.o
$(LD) $(LDFLAGS) -o $@ optim1.o $(LIBS)
cp -p $@ ../bin/
optim2: optim2.o
$(LD) $(LDFLAGS) -o $@ optim2.o $(LIBS)
cp -p $@ ../bin/
optim3: optim3.o
$(LD) $(LDFLAGS) -o $@ optim3.o $(LIBS)
cp -p $@ ../bin/
tmassmat: tmassmat.o
$(LD) $(LDFLAGS) -o $@ tmassmat.o $(LIBS)
cp -p $@ ../bin/
tbasfun: tbasfun.o
$(LD) $(LDFLAGS) -o $@ tbasfun.o $(LIBS)
cp -p $@ ../bin/
basfun_perf: basfun_perf.o
$(LD) $(LDFLAGS) -o $@ basfun_perf.o $(LIBS)
cp -p $@ ../bin/
gridval_perf: gridval_perf.o
$(LD) $(LDFLAGS) -o $@ gridval_perf.o $(LIBS)
cp -p $@ ../bin/
getgrad_perf: getgrad_perf.o
$(LD) $(LDFLAGS) -o $@ getgrad_perf.o $(LIBS)
cp -p $@ ../bin/
basfun_perf1: basfun_perf1.o
$(LD) $(LDFLAGS) -o $@ basfun_perf1.o $(LIBS)
cp -p $@ ../bin/
tlocintv: tlocintv.o meshdist.o
$(LD) $(LDFLAGS) -o $@ tlocintv.o meshdist.o $(LIBS)
cp -p $@ ../bin/
tgausleg: tgausleg.o meshdist.o
$(LD) $(LDFLAGS) -o $@ tgausleg.o meshdist.o $(LIBS)
cp -p $@ ../bin/
poisson: poisson.o
$(LD) $(LDFLAGS) -o $@ poisson.o $(LIBS)
cp -p $@ ../bin/
poisson_mumps: poisson_mumps.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
poisson_petsc: poisson_petsc.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
tsparse1: tsparse1.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
tsparse2: tsparse2.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
pde2d_pardiso: pde2d_pardiso.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
pde2d_mumps: pde2d_mumps.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
pde2d_petsc: pde2d_petsc.o $(PPUTILS2)/pputils2.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
pde2d_sym_pardiso: pde2d_sym_pardiso.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
pde2d_sym_pardiso_dft: pde2d_sym_pardiso_dft.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
pde2d_sym_wsmp_dft: pde2d_sym_wsmp_dft.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
zssmp_ex1: zssmp_ex1.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
zpardiso_ex1: zpardiso_ex1.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
pde2d_sym_wsmp: pde2d_sym_wsmp.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
pde2d_wsmp: pde2d_wsmp.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
pde2d_pwsmp: pde2d_pwsmp.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS1)
cp -p $@ ../bin/
pde1dp_cmpl_pardiso: pde1dp_cmpl_pardiso.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
pde1dp_cmpl_mumps: pde1dp_cmpl_mumps.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
pde1dp_cmpl_dft: pde1dp_cmpl_dft.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
pde1dp_cmpl_wsmp: pde1dp_cmpl_wsmp.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
tspline: tspline.o
$(LD) $(LDFLAGS) -o $@ tspline.o $(LIBS)
cp -p $@ ../bin/
tpsum_mat: tpsum_mat.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
tp2p_mat: tp2p_mat.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS)
cp -p $@ ../bin/
test_pwsmp: test_pwsmp.o
$(LD) $(LDFLAGS) -o $@ $< $(LIBS1)
cp -p $@ ../bin/
driv1.o:
driv2.o:
driv3.o:
driv4.o:
pde1d.o:
pde1dp.o: pde1dp_mod.o
pde1dp_cmpl.o:
pde1dp_mod.o:
pde1dp_KA.o: pde1dp_mod_KA.o
pde1dp_mod_KA.o:
pde2d.o:
pde3d.o: pde3d_mod.o
pde3d_mod.o:
ppde3d.o: ppde3d_mod.o
ppde3d_mod.o:
ppde3d_pb.o: ppde3d_pb_mod.o
ppde3d_pb_mod.o:
pde2d_pb.o:
pde2d_nh.o:
tcdsmat.o: tcdsmat_mod.o
tcdsmat_mod.o:
fit1d.o:
fit1d_cmpl.o:
gyro.o:
fit1dbc.o:
fit1dp.o:
fit2d.o:
fit2d_cmpl.o:
fit2dbc.o:
dismat.o:
disrhs.o:
ibcmat.o:
adv.o:
tmatrix_pb.o:
tmatrix_zpb.o:
tmatrix_gb.o:
moments.o:
mesh.o:
optim1.o:
optim2.o:
optim3.o:
tmassmat.o:
tbasfun.o:
basfun_perf.o:
basfun_perf1.o:
tlocintv.o:
tgausleg.o:
poisson.o:
poisson_mumps.o:
tsparse1.o:
tsparse2.o:
pde2d_pardiso.o:
pde2d_mumps.o:
pde2d_petsc.o:
pde2d_sym_pardiso.o:
pde2d_sym_pardiso_dft.o:
pde2d_sym_wsmp_dft.o:
pde2d_wsmp.o:
pde2d_pwsmp.o:
pde2d_sym_wsmp.o:
pde1dp_cmpl_pardiso.o:
pde1dp_cmpl_mumps.o:
pde1dp_cmpl_dft.o:
pde1dp_cmpl_wsmp.o:
tpsum_mat.o:
tp2p_mat.o:
poisson_petsc.o:
tags:
etags *.f *.f90 ../src/*.f90 $(PPPACK)/*.f90
clean:
rm -f *.o *.mod *~ a.out
distclean: clean
# $(MAKE) -C ../src distclean
# $(MAKE) -C ../fft distclean
# $(MAKE) -C $(PPUTILS2) distclean
rm -f *.a *.mod pde1d pde1dp pde1dp_cmpl pde1dp_KA driv1 driv2 driv3 driv4 \
tmatrix_pb tmatrix_gb tmatrix_zpb \
pde2d pde2d_pb pde2d_nh pde3d ppde3d ppde3d_pb\
fit1d fit1d_cmpl gyro fit1dbc fit1dp \
fit2d fit2d1d fit2d_cmpl fit2dbc \
fit2dbc_x fit2dbc_y adv moments tcdsmat poisson poisson_mumps\
mesh optim1 optim2 optim3 tmassmat tbasfun \
basfun_perf gridval_perf getgrad_perf tlocintv \
tsparse1 tsparse2 \
pde2d_pardiso pde2d_sym_pardiso pde2d_wsmp pde2d_sym_wsmp \
pde1dp_cmpl_dft pde1dp_cmpl_wsmp pde1d_eig_csr pde1d_eig_pb pde1d_eig_ge \
pde2d_sym_pardiso_dft pde1dp_cmpl_pardiso \
pde2d_mumps pde1dp_cmpl_mumps tpsum_mat tp2p_mat pde2d_sym_wsmp_dft \
poisson_petsc pde2d_petsc \
pde1d_eig_csr pde1d_eig_zcsr pde1d_eig_zmumps pde1d_eig_gb pde1d_eig.ge \
../bin/*

Event Timeline