1# -*- mode: makefile -*- 2# 3# The following variables specify PETSc related info, and can be picked up directly 4# by external packages or PETSc applications that do not use PETSc targets. 5# 6# PETSC_LIB_DIR - (defined from $PETSC_DIR) determines where the PETSc libraries are built. 7# PETSC_CC_INCLUDES - locations of include files 8# PETSC_[C,F]CPPFLAGS - preprocessor flags for *.c, *.F preprocessing 9# PETSC_[C,F]SH_LIB_PATH - linker_add_sh_lib_path:sh_lib_path pairs for all the shared library locations 10# 11PETSC_LIB_DIR = ${PETSC_DIR}/${PETSC_ARCH}/lib 12PETSCCONF_H = ${PETSC_DIR}/${PETSC_ARCH}/include/petscconf.h 13 14PETSC_CCPPFLAGS = ${PETSC_CC_INCLUDES} ${PETSCFLAGS} ${PCPP_FLAGS} ${PPPFLAGS} 15PETSC_CXXCPPFLAGS = ${PETSC_CC_INCLUDES} ${PETSCFLAGS} ${CXXPP_FLAGS} ${CXXPPFLAGS} 16PETSC_FCPPFLAGS = ${PETSC_FC_INCLUDES} ${PETSCFLAGS} ${FPP_FLAGS} ${FPPFLAGS} 17PETSC_C_SH_LIB_PATH = ${CC_LINKER_SLFLAG}${PETSC_LIB_DIR} 18PETSC_F_SH_LIB_PATH = ${FC_LINKER_SLFLAG}${PETSC_LIB_DIR} 19# 20# The following variables are used by PETSc build targets. External Packages can 21# redefine them appropriately. 22# 23# INSTALL_LIB_DIR - the location where the libraries are built. 24# [C,F]CPPFLAGS - preprocessor flags for *.c, *.F preprocessing 25# [C,F]_SH_LIB_PATH - linker_add_sh_lib_path:sh_lib_path pairs for all the shared library locations 26# 27INSTALL_LIB_DIR = ${PETSC_LIB_DIR} 28CCPPFLAGS = ${PETSC_CCPPFLAGS} 29CXXCPPFLAGS = ${PETSC_CXXCPPFLAGS} 30FCPPFLAGS = ${PETSC_FCPPFLAGS} 31C_SH_LIB_PATH = ${PETSC_C_SH_LIB_PATH} 32F_SH_LIB_PATH = ${PETSC_F_SH_LIB_PATH} 33# 34# The following variables define PETSc compile procedures 35# 36PETSC_COMPILE_SINGLE = ${PCC} -o $*.o -c ${PCC_FLAGS} ${PFLAGS} ${CCPPFLAGS} 37PETSC_CXXCOMPILE_SINGLE = ${CXX} -o $*.o -c ${CXX_FLAGS} ${CXXFLAGS} ${CXXCPPFLAGS} 38PETSC_FCOMPILE_SINGLE = ${FC} -o $*.o -c ${FC_FLAGS} ${FFLAGS} ${FCPPFLAGS} 39PETSC_CUCOMPILE_SINGLE = ${CUDAC} -o $*.o ${CUDAC_FLAGS} ${CUFLAGS} -c --compiler-options="${PCC_FLAGS} ${CFLAGS} ${CCPPFLAGS}" 40# 41# The following additional variables are used by PETSc targets and should not be redefined 42# 43# LIBNAME - library name 44# SOURCE - source files 45# SOURCEALL - sources and includes 46# SOURCED - sources/includes [but not fortran - for doc parsing?] 47# 48LIBNAME = ${INSTALL_LIB_DIR}/${LIBBASE}.${AR_LIB_SUFFIX} 49SOURCE = ${SOURCECU} ${SOURCEC} ${SOURCECXX} ${SOURCEF} 50SOURCEALL = ${SOURCECU} ${SOURCEC} ${SOURCECXX} ${SOURCEF} ${SOURCEH} 51SOURCED = ${SOURCECU} ${SOURCEC} ${SOURCECXX} ${SOURCEH} 52 53CLINKER = ${PCC_LINKER} ${PCC_LINKER_FLAGS} ${PFLAGS} 54FLINKER = ${FC_LINKER} ${FC_LINKER_FLAGS} ${FFLAGS} 55CXXLINKER = ${CXX_LINKER} ${CXX_LINKER_FLAGS} ${CXXFLAGS} 56# 57# Defines all libraries needed for using linear and nonlinear solvers, 58# and all lower level PETSc components (such as vectors and matrices). 59# The order of listing these libraries is important! 60# 61 62PETSC_SYS_LIB_BASIC = -lpetscsys 63PETSC_VEC_LIB_BASIC = -lpetscvec ${PETSC_SYS_LIB_BASIC} 64PETSC_MAT_LIB_BASIC = -lpetscmat ${PETSC_VEC_LIB_BASIC} 65PETSC_DM_LIB_BASIC = -lpetscdm ${PETSC_MAT_LIB_BASIC} 66PETSC_KSP_LIB_BASIC = -lpetscksp ${PETSC_DM_LIB_BASIC} 67PETSC_SNES_LIB_BASIC = -lpetscsnes ${PETSC_KSP_LIB_BASIC} 68PETSC_TS_LIB_BASIC = -lpetscts ${PETSC_SNES_LIB_BASIC} 69PETSC_TAO_LIB_BASIC = -lpetsctao ${PETSC_SNES_LIB_BASIC} 70PETSC_LIB_BASIC = -lpetsctao ${PETSC_TS_LIB_BASIC} 71PETSC_CONTRIB_BASIC = -lpetsccontrib 72 73PETSC_SYS_LIB = ${C_SH_LIB_PATH} -L${PETSC_LIB_DIR} ${PETSC_SYS_LIB_BASIC} ${PETSC_EXTERNAL_LIB_BASIC} 74PETSC_VEC_LIB = ${C_SH_LIB_PATH} -L${PETSC_LIB_DIR} ${PETSC_VEC_LIB_BASIC} ${PETSC_EXTERNAL_LIB_BASIC} 75PETSC_MAT_LIB = ${C_SH_LIB_PATH} -L${PETSC_LIB_DIR} ${PETSC_MAT_LIB_BASIC} ${PETSC_EXTERNAL_LIB_BASIC} 76PETSC_DM_LIB = ${C_SH_LIB_PATH} -L${PETSC_LIB_DIR} ${PETSC_DM_LIB_BASIC} ${PETSC_EXTERNAL_LIB_BASIC} 77PETSC_KSP_LIB = ${C_SH_LIB_PATH} -L${PETSC_LIB_DIR} ${PETSC_KSP_LIB_BASIC} ${PETSC_EXTERNAL_LIB_BASIC} 78PETSC_SNES_LIB = ${C_SH_LIB_PATH} -L${PETSC_LIB_DIR} ${PETSC_SNES_LIB_BASIC} ${PETSC_EXTERNAL_LIB_BASIC} 79PETSC_TS_LIB = ${C_SH_LIB_PATH} -L${PETSC_LIB_DIR} ${PETSC_TS_LIB_BASIC} ${PETSC_EXTERNAL_LIB_BASIC} 80PETSC_TAO_LIB = ${C_SH_LIB_PATH} -L${PETSC_LIB_DIR} ${PETSC_TAO_LIB_BASIC} ${PETSC_EXTERNAL_LIB_BASIC} 81PETSC_LIB = ${C_SH_LIB_PATH} -L${PETSC_LIB_DIR} ${PETSC_LIB_BASIC} ${PETSC_EXTERNAL_LIB_BASIC} 82PETSC_CONTRIB = ${C_SH_LIB_PATH} -L${PETSC_LIB_DIR} ${PETSC_CONTRIB_BASIC} 83 84# 85# Escape codes to change the text color on xterms and terminals 86# 87PETSC_TEXT_HILIGHT = "\033[1;31m" 88PETSC_TEXT_NORMAL = "\033[0;39m\033[0;49m" 89 90PETSC_MAKE_STOP_ON_ERROR = - 91# 92# ---------------------------------------------------------------------------------------- 93# 94# Some variables used to build shared libraries 95SHLIBS = libpetscsys libpetscmat libpetscvec libpetscdm libpetscksp libpetscsnes libpetscts libpetsctao 96# 97# The following include files set customized site, optimization, and version 98# options. 99# 100include ${PETSC_DIR}/${PETSC_ARCH}/lib/petsc/conf/petscvariables 101