1.scotch的Makefile.inc
- 主要使用的是GCC编译
EXE =
LIB = .a
OBJ = .o
PREFIX =/home/bbq/install/scotch/
MAKE = make
AR = ar
ARFLAGS = -ruv
CAT = cat
CCS = gcc
CCP = mpicc
CCD = gcc
INC =/home/bbq/install/mpich/include/
CFLAGS = -O3 -I /home/bbq/install/mpich/include/ -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_PTHREAD -Drestrict=__restrict -DIDXSIZE64
CLIBFLAGS =
LDFLAGS = -lz -lm -lrt -pthread -lirc
CP = cp
LEX = flex -Pscotchyy -olex.yy.c
LN = ln
MKDIR = mkdir
MV = mv
RANLIB = ranlib
YACC = bison -pscotchyy -y -b y
aarch64架构编译
EXE =
LIB = .a
OBJ = .o
PREFIX=/thfs4/home/test6523/lib-install/scotch/
MAKE = make
AR = ar
ARFLAGS = -ruv
CAT = cat
CCS = gcc
CCP = mpicc
CCD = gcc
INC=/usr/local/mpi.new/mpi_glex/mpi4-static/include/
CFLAGS = -O3 -I$(INC) -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_PTHREAD -Drestrict=__restrict -DIDXSIZE64
CLIBFLAGS =
LDFLAGS = -lz -lm -lrt -pthread
CP = cp
LEX = flex -Pscotchyy -olex.yy.c
LN = ln
MKDIR = mkdir
MV = mv
RANLIB = ranlib
YACC = bison -pscotchyy -y -b y
2.MUMPS的Makefile.inc
这里有一点要注意,如果使用的scotch版本是6.0.6,则需要加入fallow-argument-mismatch选项,如果使用的版本是v7.0.4则不需要。在编译时看情况来定
#
# This file is part of MUMPS 5.6.2, released
# on Wed Oct 11 09:36:25 UTC 2023
#
################################################################################
#
# Makefile.inc.generic.SEQ
#
# Generic Makefile.inc for sequential (MPI free, Scalapack free) version
#
#
# This defines some parameters dependent on your platform; you should
# look for the approriate file in the directory ./Make.inc/ and copy it
# into a file called Makefile.inc. For example, from the MUMPS root
# directory, use
# "cp Make.inc/Makefile.inc.generic.SEQ ./Makefile.inc"
# (see the main README file for details)
#
# If you do not find any suitable Makefile in Makefile.inc, use this file:
# "cp Make.inc/Makefile.inc.generic ./Makefile.inc" and modify it according
# to the comments given below. If you manage to build MUMPS on a new platform,
# and think that this could be useful to others, you may want to send us
# the corresponding Makefile.inc file.
#
################################################################################
########################################################################
#Begin orderings
#
# NOTE that PORD is distributed within MUMPS by default. It is recommended to
# install other orderings. For that, you need to obtain the corresponding package
# and modify the variables below accordingly.
# For example, to have Metis available within MUMPS:
# 1/ download Metis and compile it
# 2/ uncomment (suppress # in first column) lines
# starting with LMETISDIR, LMETIS
# 3/ add -Dmetis in line ORDERINGSF
# ORDERINGSF = -Dpord -Dmetis
# 4/ Compile and install MUMPS
# make clean; make (to clean up previous installation)
#
# Metis/ParMetis and SCOTCH/PT-SCOTCH (ver 6.0 and later) orderings are recommended.
#
SCOTCHDIR = /home/bbq/package/scotch_6.0.6
ISCOTCH = -I$(SCOTCHDIR)/include
#
# You have to choose one among the following two lines depending on
# the type of analysis you want to perform. If you want to perform only
# sequential analysis choose the first (remember to add -Dscotch in the ORDERINGSF
# variable below); for both parallel and sequential analysis choose the second
# line (remember to add -Dptscotch in the ORDERINGSF variable below)
LSCOTCH = -L$(SCOTCHDIR)/lib -lesmumps -lscotch -lscotcherr
#LSCOTCH = -L$(SCOTCHDIR)/lib -lptesmumps -lptscotch -lptscotcherr
LPORDDIR = $(topdir)/PORD/lib/
IPORD = -I$(topdir)/PORD/include/
LPORD = -L$(LPORDDIR) -lpord
LMETISDIR = /home/bbq/package/metis-5.0.1/build/Linux-x86_64/libmetis
IMETIS = -I/home/bbq/package/metis-5.0.1/include
# You have to choose one among the following two lines depending on
# the type of analysis you want to perform. If you want to perform only
# sequential analysis choose the first (remember to add -Dmetis in the ORDERINGSF
# variable below); for both parallel and sequential analysis choose the second
# line (remember to add -Dparmetis in the ORDERINGSF variable below)
LMETIS = -L$(LMETISDIR) -lmetis
#LMETIS = -L$(LMETISDIR) -lparmetis -lmetis
# The following variables will be used in the compilation process.
# Please note that -Dptscotch and -Dparmetis imply -Dscotch and -Dmetis respectively.
# If you want to use Metis 4.X or an older version, you should use -Dmetis4 instead of -Dmetis
# or in addition with -Dparmetis (if you are using parmetis 3.X or older).
#ORDERINGSF = -Dscotch -Dmetis -Dpord -Dptscotch -Dparmetis
ORDERINGSF = -Dpord -Dscotch -Dmetis
ORDERINGSC = $(ORDERINGSF)
LORDERINGS = $(LMETIS) $(LPORD) $(LSCOTCH)
IORDERINGSF = $(ISCOTCH)
IORDERINGSC = $(IMETIS) $(IPORD) $(ISCOTCH)
#End orderings
########################################################################
########################################################################
# DEFINE HERE SOME COMMON COMMANDS, THE COMPILER NAMES, ETC...
# PLAT : use it to add a default suffix to the generated libraries
PLAT =
# Library extension, + C and Fortran "-o" option
# may be different under Windows
LIBEXT = .a
OUTC = -o
OUTF = -o
# RM : remove files
RM = /bin/rm -f
# CC : C compiler
CC = cc
# FC : Fortran 90 compiler
FC = gfortran
# FL : Fortran linker
FL = gfortran
# AR : Archive object in a library
# keep a space at the end if options have to be separated from lib name
AR = ar vr
# RANLIB : generate index of an archive file
# (optionnal use "RANLIB = echo" in case of problem)
RANLIB = ranlib
#RANLIB = echo
# DEFINE HERE YOUR LAPACK LIBRARY
LAPACK = -llapack
# The next two lines should not be modified. They concern
# the sequential library provided by MUMPS, to use instead
# of ScaLAPACK and MPI.
INCSEQ = -I$(topdir)/libseq
LIBSEQ = $(LAPACK) -L$(topdir)/libseq -lmpiseq
# DEFINE HERE YOUR BLAS LIBRARY
LIBBLAS = -lblas
# DEFINE HERE YOUR PTHREAD LIBRARY
LIBOTHERS = -lpthread
# FORTRAN/C COMPATIBILITY:
# Use:
# -DAdd_ if your Fortran compiler adds an underscore at the end
# of symbols,
# -DAdd__ if your Fortran compiler adds 2 underscores,
#
# -DUPPER if your Fortran compiler uses uppercase symbols
#
# leave empty if your Fortran compiler does not change the symbols.
#
CDEFS = -DAdd_
#COMPILER OPTIONS
OPTF = -O -fallow-argument-mismatch
OPTC = -O -I.
OPTL = -O -fallow-argument-mismatch
#Sequential:
INCS = $(INCSEQ)
LIBS = $(LIBSEQ)
LIBSEQNEEDED = libseqneeded
omp版本的支持
#
# This file is part of MUMPS 5.6.2, released
# on Wed Oct 11 09:36:25 UTC 2023
#
################################################################################
#
# Makefile.inc.generic.SEQ
#
# Generic Makefile.inc for sequential (MPI free, Scalapack free) version
#
#
# This defines some parameters dependent on your platform; you should
# look for the approriate file in the directory ./Make.inc/ and copy it
# into a file called Makefile.inc. For example, from the MUMPS root
# directory, use
# "cp Make.inc/Makefile.inc.generic.SEQ ./Makefile.inc"
# (see the main README file for details)
#
# If you do not find any suitable Makefile in Makefile.inc, use this file:
# "cp Make.inc/Makefile.inc.generic ./Makefile.inc" and modify it according
# to the comments given below. If you manage to build MUMPS on a new platform,
# and think that this could be useful to others, you may want to send us
# the corresponding Makefile.inc file.
#
################################################################################
########################################################################
#Begin orderings
#
# NOTE that PORD is distributed within MUMPS by default. It is recommended to
# install other orderings. For that, you need to obtain the corresponding package
# and modify the variables below accordingly.
# For example, to have Metis available within MUMPS:
# 1/ download Metis and compile it
# 2/ uncomment (suppress # in first column) lines
# starting with LMETISDIR, LMETIS
# 3/ add -Dmetis in line ORDERINGSF
# ORDERINGSF = -Dpord -Dmetis
# 4/ Compile and install MUMPS
# make clean; make (to clean up previous installation)
#
# Metis/ParMetis and SCOTCH/PT-SCOTCH (ver 6.0 and later) orderings are recommended.
#
SCOTCHDIR =/thfs4/home/test6523/Matrix-Order/scotch_6.0.6
ISCOTCH = -I$(SCOTCHDIR)/include
#
# You have to choose one among the following two lines depending on
# the type of analysis you want to perform. If you want to perform only
# sequential analysis choose the first (remember to add -Dscotch in the ORDERINGSF
# variable below); for both parallel and sequential analysis choose the second
# line (remember to add -Dptscotch in the ORDERINGSF variable below)
LSCOTCH = -L$(SCOTCHDIR)/lib -lesmumps -lscotch -lscotcherr
#LSCOTCH = -L$(SCOTCHDIR)/lib -lptesmumps -lptscotch -lptscotcherr
LPORDDIR = $(topdir)/PORD/lib/
IPORD = -I$(topdir)/PORD/include/
LPORD = -L$(LPORDDIR) -lpord
LMETISDIR = /thfs4/home/test6523/Matrix-Order/metis-5.0.1/build/Linux-aarch64/libmetis
IMETIS = /thfs4/home/test6523/Matrix-Order/metis-5.0.1/include
# You have to choose one among the following two lines depending on
# the type of analysis you want to perform. If you want to perform only
# sequential analysis choose the first (remember to add -Dmetis in the ORDERINGSF
# variable below); for both parallel and sequential analysis choose the second
# line (remember to add -Dparmetis in the ORDERINGSF variable below)
LMETIS = -L$(LMETISDIR) -lmetis
#LMETIS = -L$(LMETISDIR) -lparmetis -lmetis
# The following variables will be used in the compilation process.
# Please note that -Dptscotch and -Dparmetis imply -Dscotch and -Dmetis respectively.
# If you want to use Metis 4.X or an older version, you should use -Dmetis4 instead of -Dmetis
# or in addition with -Dparmetis (if you are using parmetis 3.X or older).
#ORDERINGSF = -Dscotch -Dmetis -Dpord -Dptscotch -Dparmetis
ORDERINGSF = -Dpord -Dscotch -Dmetis
ORDERINGSC = $(ORDERINGSF)
LORDERINGS = $(LMETIS) $(LPORD) $(LSCOTCH)
IORDERINGSF = $(ISCOTCH)
IORDERINGSC = $(IMETIS) $(IPORD) $(ISCOTCH)
#End orderings
########################################################################
########################################################################
# DEFINE HERE SOME COMMON COMMANDS, THE COMPILER NAMES, ETC...
# PLAT : use it to add a default suffix to the generated libraries
PLAT =
# Library extension, + C and Fortran "-o" option
# may be different under Windows
LIBEXT = .a
OUTC = -o
OUTF = -o
# RM : remove files
RM = /bin/rm -f
# CC : C compiler
CC = mpicc -I /thfs4/home/test6523/Matrix-Order/metis-5.0.1/include
# FC : Fortran 90 compiler
FC = mpif90
# FL : Fortran linker
FL = mpif90
# AR : Archive object in a library
# keep a space at the end if options have to be separated from lib name
AR = ar vr
# RANLIB : generate index of an archive file
# (optionnal use "RANLIB = echo" in case of problem)
RANLIB = ranlib
#RANLIB = echo
# DEFINE HERE YOUR LAPACK LIBRARY
LAPACK = /thfs4/home/test6523/lib-install/lapack/liblapack.a
# The next two lines should not be modified. They concern
# the sequential library provided by MUMPS, to use instead
# of ScaLAPACK and MPI.
INCSEQ = -I$(topdir)/libseq
LIBSEQ = $(LAPACK) -L$(topdir)/libseq -lmpiseq
# DEFINE HERE YOUR BLAS LIBRARY
LIBBLAS =/thfs4/home/test6523/lib-install/lapack/librefblas.a
# DEFINE HERE YOUR PTHREAD LIBRARY
LIBOTHERS = -lpthread
# FORTRAN/C COMPATIBILITY:
# Use:
# -DAdd_ if your Fortran compiler adds an underscore at the end
# of symbols,
# -DAdd__ if your Fortran compiler adds 2 underscores,
#
# -DUPPER if your Fortran compiler uses uppercase symbols
#
# leave empty if your Fortran compiler does not change the symbols.
#
CDEFS = -DAdd_
#COMPILER OPTIONS
OPTF = -O -fallow-argument-mismatch -fopenmp
OPTC = -O -I. -fopenmp
OPTL = -O -fallow-argument-mismatch -fopenmp
#Sequential:
INCS = $(INCSEQ)
LIBS = $(LIBSEQ)
LIBSEQNEEDED = libseqneeded