Sie sind auf Seite 1von 26

cmake_minimum_required (VERSION 2.6.2) project (PETSc C) include (${PETSc_BINARY_DIR}/conf/PETScConfig.

cmake) if (PETSC_HAVE_FORTRAN) enable_language (Fortran) endif () if (PETSC_CLANGUAGE_Cxx) enable_language (CXX) endif () include_directories ("${PETSc_SOURCE_DIR}/include" "${PETSc_BINARY_DIR}/include" ) add_definitions (-D__INSDIR__= ) # CMake always uses the absolute path set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PETSc_BINARY_DIR}/lib" CACHE PATH "Output directory for PETSc archives") set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PETSc_BINARY_DIR}/lib" CACHE PATH "Output directory for PETSc libraries") set (CMAKE_Fortran_MODULE_DIRECTORY "${PETSc_BINARY_DIR}/include" CACHE PATH "Ou tput directory for fortran *.mod files") mark_as_advanced (CMAKE_ARCHIVE_OUTPUT_DIRECTORY CMAKE_LIBRARY_OUTPUT_DIRECTORY CMAKE_Fortran_MODULE_DIRECTORY) set (CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") set (CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) ################### The following describes the build #################### include_directories (${PETSC_PACKAGE_INCLUDES}) if (PETSC_CLANGUAGE_Cxx AND PETSC_HAVE_SIEVE) list (APPEND PETSCSYS_SRCS src/sys/comm/sectioncopy.c ) endif () list (APPEND PETSCSYS_SRCS src/sys/verbose/verboseinfo.c src/sys/viewer/interface/view.c src/sys/viewer/interface/flush.c src/sys/viewer/interface/viewregall.c src/sys/viewer/interface/viewreg.c src/sys/viewer/interface/viewa.c src/sys/viewer/interface/dlregispetsc.c src/sys/viewer/interface/viewers.c src/sys/viewer/interface/dupl.c src/sys/viewer/impls/binary/binv.c src/sys/viewer/impls/draw/drawv.c src/sys/viewer/impls/string/stringv.c src/sys/viewer/impls/vu/petscvu.c src/sys/viewer/impls/ascii/filev.c src/sys/viewer/impls/ascii/vcreatea.c src/sys/utils/arch.c src/sys/utils/fhost.c src/sys/utils/fuser.c src/sys/utils/memc.c src/sys/utils/mpiu.c src/sys/utils/psleep.c src/sys/utils/sortd.c src/sys/utils/sorti.c src/sys/utils/str.c

src/sys/utils/sortip.c src/sys/utils/pbarrier.c src/sys/utils/pdisplay.c src/sys/utils/ctable.c src/sys/utils/psplit.c src/sys/utils/select.c src/sys/utils/mpimesg.c src/sys/utils/sseenabled.c src/sys/utils/mpitr.c src/sys/utils/mpilong.c src/sys/utils/mathinf.c src/sys/random/interface/random.c src/sys/random/interface/randreg.c src/sys/random/interface/dlregisrand.c src/sys/random/interface/randomc.c src/sys/dll/dlimpl.c src/sys/dll/dl.c src/sys/dll/reg.c src/sys/plog/plog.c src/sys/plog/plogmpe.c src/sys/fileio/ffpath.c src/sys/fileio/ftest.c src/sys/fileio/ghome.c src/sys/fileio/mpiuopen.c src/sys/fileio/rpath.c src/sys/fileio/fpath.c src/sys/fileio/fwd.c src/sys/fileio/grpath.c src/sys/fileio/mprint.c src/sys/fileio/sysio.c src/sys/fileio/fretrieve.c src/sys/fileio/smatlab.c src/sys/memory/mal.c src/sys/memory/mem.c src/sys/memory/mtr.c src/sys/draw/interface/draw.c src/sys/draw/interface/dline.c src/sys/draw/interface/dlinew.c src/sys/draw/interface/dlinegw.c src/sys/draw/interface/dtext.c src/sys/draw/interface/dtextv.c src/sys/draw/interface/dtexts.c src/sys/draw/interface/dtextgs.c src/sys/draw/interface/dpoint.c src/sys/draw/interface/dpoints.c src/sys/draw/interface/dviewp.c src/sys/draw/interface/dcoor.c src/sys/draw/interface/dpause.c src/sys/draw/interface/dgpause.c src/sys/draw/interface/dgcoor.c src/sys/draw/interface/dbuff.c src/sys/draw/interface/dsetpause.c src/sys/draw/interface/dflush.c src/sys/draw/interface/dsflush.c src/sys/draw/interface/dclear.c src/sys/draw/interface/dsclear.c src/sys/draw/interface/drect.c src/sys/draw/interface/dtri.c src/sys/draw/interface/dmouse.c src/sys/draw/interface/drawreg.c

src/sys/draw/interface/drawregall.c src/sys/draw/interface/dellipse.c src/sys/draw/utils/axis.c src/sys/draw/utils/lg.c src/sys/draw/utils/dscatter.c src/sys/draw/utils/hists.c src/sys/draw/utils/zoom.c src/sys/draw/utils/hue.c src/sys/draw/utils/lgc.c src/sys/draw/utils/axisc.c src/sys/python/pythonsys.c src/sys/error/adebug.c src/sys/error/err.c src/sys/error/errtrace.c src/sys/error/errabort.c src/sys/error/errstop.c src/sys/error/fp.c src/sys/error/signal.c src/sys/error/pstack.c src/sys/totalview/tv_data_display.c src/sys/fwk/interface/fwk.c src/sys/bag/bag.c src/sys/objects/gcomm.c src/sys/objects/gtype.c src/sys/objects/olist.c src/sys/objects/pname.c src/sys/objects/tagm.c src/sys/objects/destroy.c src/sys/objects/gcookie.c src/sys/objects/inherit.c src/sys/objects/options.c src/sys/objects/pgname.c src/sys/objects/prefix.c src/sys/objects/init.c src/sys/objects/pinit.c src/sys/objects/ptype.c src/sys/objects/state.c src/sys/objects/aoptions.c src/sys/objects/mpinit.c src/sys/objects/subcomm.c src/sys/time/cputime.c src/sys/time/fdate.c src/sys/time/ptime.c ) if (PETSC_HAVE_JAVA AND PETSC_HAVE_AMS) list (APPEND PETSCSYS_SRCS ) endif () if (PETSC_HAVE_FORTRAN AND PETSC_HAVE_MATLAB_ENGINE AND PETSC_USE_REAL_DOUBLE AN D NOT PETSC_USE_COMPLEX) list (APPEND PETSCSYS_SRCS src/sys/viewer/impls/matlab/ftn-custom/zvmatlabf.c src/sys/matlabengine/ftn-auto/matlabf.c src/sys/matlabengine/ftn-custom/zmatlabf.c ) endif () if (PETSC_USE_READ_REAL_TIME) list (APPEND PETSCSYS_SRCS src/sys/time/rs6000_time/rs6000_time.c

) endif () if (PETSC_HAVE_DRAND48) list (APPEND PETSCSYS_SRCS src/sys/random/impls/rand48/rand48.c ) endif () if (PETSC_HAVE_SPRNG) list (APPEND PETSCSYS_SRCS src/sys/random/impls/sprng/sprng.c ) endif () if (PETSC_HAVE_FORTRAN AND PETSC_HAVE_HDF5) list (APPEND PETSCSYS_SRCS src/sys/viewer/impls/hdf5/ftn-custom/zhdf5f.c ) endif () if (PETSC_HAVE_MATHEMATICA AND NOT PETSC_USE_COMPLEX) list (APPEND PETSCSYS_SRCS src/sys/viewer/impls/mathematica/mathematica.c ) endif () if (PETSC_HAVE_ADIC AND PETSC_USE_REAL_DOUBLE AND NOT PETSC_USE_COMPLEX) list (APPEND PETSCSYS_SRCS src/sys/adic/Gradient/ad_grad_daxpy.c src/sys/adic/Gradient/ad_grad.c src/sys/adic/Gradient/ad_utils.c src/sys/adic/utils/petscglobal.c src/sys/adic/adic/run-map.c src/sys/adic/adic/run-alloc.c src/sys/adic/adintrinsics/adintr_acos.c src/sys/adic/adintrinsics/adintr_exp.c src/sys/adic/adintrinsics/adintr_max.c src/sys/adic/adintrinsics/adintr_acosh.c src/sys/adic/adintrinsics/adintr_fabs.c src/sys/adic/adintrinsics/adintr_min.c src/sys/adic/adintrinsics/adintr_asin.c src/sys/adic/adintrinsics/adintr_floor.c src/sys/adic/adintrinsics/adintr_modf.c src/sys/adic/adintrinsics/adintr_asinh.c src/sys/adic/adintrinsics/adintr_fmax.c src/sys/adic/adintrinsics/adintr_pow.c src/sys/adic/adintrinsics/adintr_atan.c src/sys/adic/adintrinsics/adintr_fmin.c src/sys/adic/adintrinsics/adintr_sin.c src/sys/adic/adintrinsics/adintr_atan2.c src/sys/adic/adintrinsics/adintr_fmod.c src/sys/adic/adintrinsics/adintr_sinh.c src/sys/adic/adintrinsics/adintr_atanh.c src/sys/adic/adintrinsics/adintr_frexp.c src/sys/adic/adintrinsics/adintr_sqrt.c src/sys/adic/adintrinsics/adintr_ceil.c src/sys/adic/adintrinsics/adintr_ldexp.c src/sys/adic/adintrinsics/adintr_tan.c src/sys/adic/adintrinsics/adintr_cos.c src/sys/adic/adintrinsics/adintr_log.c src/sys/adic/adintrinsics/adintr_tanh.c src/sys/adic/adintrinsics/adintr_cosh.c src/sys/adic/adintrinsics/adintr_log10.c src/sys/adic/adintrinsics/adintrinsics.c

src/sys/adic/adintrinsics/report-once.c ) endif () if (PETSC_USE_WINDOWS_GRAPHICS) list (APPEND PETSCSYS_SRCS src/sys/draw/impls/win32/win32draw.c ) endif () if (PETSC_USE_SOCKET_VIEWER AND PETSC_HAVE_MATLAB AND PETSC_USE_REAL_DOUBLE AND NOT PETSC_USE_COMPLEX) list (APPEND PETSCSYS_SRCS ) endif () if (PETSC_USE_LOG) list (APPEND PETSCSYS_SRCS src/sys/plog/utils/classLog.c src/sys/plog/utils/stageLog.c src/sys/plog/utils/eventLog.c src/sys/plog/utils/stack.c ) endif () if (PETSC_HAVE_X11) list (APPEND PETSCSYS_SRCS src/sys/draw/impls/x/xinit.c src/sys/draw/impls/x/frame.c src/sys/draw/impls/x/wmap.c src/sys/draw/impls/x/xcolor.c src/sys/draw/impls/x/xops.c src/sys/draw/impls/x/text.c src/sys/draw/impls/x/tone.c src/sys/draw/impls/x/drawopenx.c ) endif () if (PETSC_USE_FORTRAN_KERNELS) list (APPEND PETSCSYS_SRCS src/sys/utils/ftn-kernels/fcopy.F ) endif () if (PETSC_USE_SOCKET_VIEWER) list (APPEND PETSCSYS_SRCS src/sys/viewer/impls/socket/send.c ) endif () if (PETSC_HAVE_HDF5) list (APPEND PETSCSYS_SRCS src/sys/viewer/impls/hdf5/hdf5v.c ) endif () if (PETSC_HAVE_FORTRAN AND PETSC_USE_SOCKET_VIEWER) list (APPEND PETSCSYS_SRCS src/sys/viewer/impls/socket/ftn-custom/zsendf.c ) endif () if (PETSC_USING_F90) list (APPEND PETSCSYS_SRCS src/sys/viewer/impls/binary/f90-custom/zbinvf90.c src/sys/bag/f90-custom/zbagf90.c src/sys/f90-mod/petscsysmod.F src/sys/f90-src/f90_cwrap.c

src/sys/f90-src/fsrc/f90_fwrap.F ) endif () if (PETSC_HAVE_YAML) list (APPEND PETSCSYS_SRCS src/sys/yaml/yamlimpls.c ) endif () if (PETSC_HAVE_MPIUNI) list (APPEND PETSCSYS_SRCS src/sys/mpiuni/mpi.c ) endif () if (PETSC_HAVE_RAND) list (APPEND PETSCSYS_SRCS src/sys/random/impls/rand/rand.c ) endif () if (PETSC_HAVE_FORTRAN) list (APPEND PETSCSYS_SRCS src/sys/verbose/ftn-auto/verboseinfof.c src/sys/verbose/ftn-custom/zverboseinfof.c src/sys/viewer/interface/ftn-auto/flushf.c src/sys/viewer/interface/ftn-auto/viewf.c src/sys/viewer/interface/ftn-auto/duplf.c src/sys/viewer/interface/ftn-auto/viewregf.c src/sys/viewer/interface/ftn-custom/zviewaf.c src/sys/viewer/impls/binary/ftn-auto/binvf.c src/sys/viewer/impls/binary/ftn-custom/zbinvf.c src/sys/viewer/impls/draw/ftn-auto/drawvf.c src/sys/viewer/impls/draw/ftn-custom/zdrawvf.c src/sys/viewer/impls/string/ftn-custom/zstringvf.c src/sys/viewer/impls/ascii/ftn-auto/filevf.c src/sys/viewer/impls/ascii/ftn-custom/zfilevf.c src/sys/viewer/impls/ascii/ftn-custom/zvcreatef.c src/sys/utils/ftn-auto/sortipf.c src/sys/utils/ftn-auto/psplitf.c src/sys/utils/ftn-auto/memcf.c src/sys/utils/ftn-auto/sortif.c src/sys/utils/ftn-auto/psleepf.c src/sys/utils/ftn-auto/sortdf.c src/sys/utils/ftn-auto/mpiuf.c src/sys/utils/ftn-custom/zarchf.c src/sys/utils/ftn-custom/zstrf.c src/sys/utils/ftn-custom/zpbarrierf.c src/sys/random/interface/ftn-auto/randomcf.c src/sys/random/interface/ftn-auto/randomf.c src/sys/ftn-custom/zplog.c src/sys/ftn-custom/zstart.c src/sys/ftn-custom/zstartf.c src/sys/ftn-custom/zsys.c src/sys/ftn-custom/zutils.c src/sys/dll/ftn-auto/regf.c src/sys/plog/ftn-auto/plogf.c src/sys/plog/ftn-custom/zplogf.c src/sys/fileio/ftn-auto/sysiof.c src/sys/fileio/ftn-auto/mprintf.c src/sys/fileio/ftn-auto/mpiuopenf.c src/sys/fileio/ftn-custom/zghomef.c src/sys/fileio/ftn-custom/zmpiuopenf.c

src/sys/fileio/ftn-custom/zmprintf.c src/sys/fileio/ftn-custom/zsysiof.c src/sys/memory/ftn-auto/memf.c src/sys/memory/ftn-custom/zmtrf.c src/sys/draw/interface/ftn-auto/dclearf.c src/sys/draw/interface/ftn-auto/dflushf.c src/sys/draw/interface/ftn-auto/dlinewf.c src/sys/draw/interface/ftn-auto/dtrif.c src/sys/draw/interface/ftn-auto/dsclearf.c src/sys/draw/interface/ftn-auto/dmousef.c src/sys/draw/interface/ftn-auto/dgpausef.c src/sys/draw/interface/ftn-auto/dellipsef.c src/sys/draw/interface/ftn-auto/dbufff.c src/sys/draw/interface/ftn-auto/dgcoorf.c src/sys/draw/interface/ftn-auto/drawf.c src/sys/draw/interface/ftn-auto/dlinegwf.c src/sys/draw/interface/ftn-auto/dlinef.c src/sys/draw/interface/ftn-auto/drectf.c src/sys/draw/interface/ftn-auto/dsetpausef.c src/sys/draw/interface/ftn-auto/dpausef.c src/sys/draw/interface/ftn-auto/dtextgsf.c src/sys/draw/interface/ftn-auto/dpointf.c src/sys/draw/interface/ftn-auto/dsflushf.c src/sys/draw/interface/ftn-auto/dviewpf.c src/sys/draw/interface/ftn-auto/dtextsf.c src/sys/draw/interface/ftn-auto/dcoorf.c src/sys/draw/interface/ftn-auto/dpointsf.c src/sys/draw/interface/ftn-custom/zdrawf.c src/sys/draw/interface/ftn-custom/zdrawregf.c src/sys/draw/interface/ftn-custom/zdtextf.c src/sys/draw/interface/ftn-custom/zdtextvf.c src/sys/draw/interface/ftn-custom/zdtrif.c src/sys/draw/utils/ftn-auto/lgf.c src/sys/draw/utils/ftn-auto/lgcf.c src/sys/draw/utils/ftn-auto/dscatterf.c src/sys/draw/utils/ftn-auto/histsf.c src/sys/draw/utils/ftn-auto/axisf.c src/sys/draw/utils/ftn-auto/axiscf.c src/sys/draw/utils/ftn-custom/zaxisf.c src/sys/draw/utils/ftn-custom/zzoomf.c src/sys/python/ftn-custom/zpythonf.c src/sys/error/ftn-auto/fpf.c src/sys/error/ftn-auto/errf.c src/sys/error/ftn-auto/signalf.c src/sys/error/ftn-auto/adebugf.c src/sys/error/ftn-custom/zerrf.c src/sys/bag/ftn-auto/bagf.c src/sys/objects/ftn-auto/pinitf.c src/sys/objects/ftn-auto/ptypef.c src/sys/objects/ftn-auto/tagmf.c src/sys/objects/ftn-auto/gcommf.c src/sys/objects/ftn-auto/optionsf.c src/sys/objects/ftn-auto/inheritf.c src/sys/objects/ftn-auto/destroyf.c src/sys/objects/ftn-custom/zgcommf.c src/sys/objects/ftn-custom/zoptionsf.c src/sys/objects/ftn-custom/zpgnamef.c src/sys/objects/ftn-custom/zpnamef.c src/sys/objects/ftn-custom/zprefixf.c src/sys/objects/ftn-custom/zdestroyf.c

src/sys/fsrc/somefort.F src/sys/time/ftn-auto/cputimef.c src/sys/time/ftn-auto/ptimef.c ) endif () if (PETSC_USE_NT_TIME) list (APPEND PETSCSYS_SRCS src/sys/time/nt_time/nt_time.c ) endif () if (PETSC_USING_F90 AND PETSC_HAVE_MPIUNI) list (APPEND PETSCSYS_SRCS src/sys/mpiuni/f90-mod/mpiunimod.F ) endif () if (PETSC_HAVE_AMS) list (APPEND PETSCSYS_SRCS src/sys/viewer/impls/ams/ams.c src/sys/viewer/impls/ams/amsopen.c src/sys/ams/pams.c ) endif () if (PETSC_HAVE_FORTRAN AND PETSC_HAVE_X11) list (APPEND PETSCSYS_SRCS src/sys/draw/impls/x/ftn-custom/zdrawopenxf.c ) endif () if (PETSC_HAVE_MATLAB_ENGINE AND PETSC_USE_REAL_DOUBLE AND NOT PETSC_USE_COMPLEX ) list (APPEND PETSCSYS_SRCS src/sys/viewer/impls/matlab/vmatlab.c src/sys/matlabengine/matlab.c ) endif () if (NOT PETSC_USE_SINGLE_LIBRARY) add_library (petscsys ${PETSCSYS_SRCS}) target_link_libraries (petscsys ${PETSC_PACKAGE_LIBS}) if (PETSC_WIN32FE) set_target_properties (petscsys PROPERTIES RULE_LAUNCH_COMPILE "${PETSC_WIN3 2FE}") set_target_properties (petscsys PROPERTIES RULE_LAUNCH_LINK "${PETSC_WIN32FE }") endif () endif () if (PETSC_USE_FORTRAN_KERNELS) list (APPEND PETSCVEC_SRCS src/vec/vec/impls/seq/ftn-kernels/fwaxpy.F src/vec/vec/impls/seq/ftn-kernels/faypx.F src/vec/vec/impls/seq/ftn-kernels/fnorm.F src/vec/vec/impls/seq/ftn-kernels/fxtimesy.F src/vec/vec/impls/seq/ftn-kernels/fmdot.F src/vec/vec/impls/seq/ftn-kernels/fmaxpy.F ) endif () if (PETSC_HAVE_FORTRAN) list (APPEND PETSCVEC_SRCS src/vec/ftn-custom/zis.c src/vec/pf/interface/ftn-auto/pff.c src/vec/vec/interface/ftn-auto/rvectorf.c

src/vec/vec/interface/ftn-auto/vectorf.c src/vec/vec/interface/ftn-auto/veccreatef.c src/vec/vec/interface/ftn-custom/zvecregf.c src/vec/vec/interface/ftn-custom/zvectorf.c src/vec/vec/impls/shared/ftn-auto/shvecf.c src/vec/vec/impls/nest/ftn-auto/vecnestf.c src/vec/vec/impls/seq/ftn-auto/vseqcrf.c src/vec/vec/impls/seq/ftn-custom/zbvec2f.c src/vec/vec/impls/mpi/ftn-auto/vmpicrf.c src/vec/vec/impls/mpi/ftn-auto/pbvecf.c src/vec/vec/impls/mpi/ftn-auto/commonmpvecf.c src/vec/vec/impls/mpi/ftn-custom/zpbvecf.c src/vec/vec/utils/ftn-auto/vecmpitoseqf.c src/vec/vec/utils/ftn-auto/vpscatf.c src/vec/vec/utils/ftn-auto/vscatf.c src/vec/vec/utils/ftn-auto/vinvf.c src/vec/vec/utils/ftn-auto/combf.c src/vec/vec/utils/ftn-auto/cmeshf.c src/vec/vec/utils/ftn-custom/zvscatf.c src/vec/is/interface/ftn-auto/indexf.c src/vec/is/interface/ftn-auto/isregf.c src/vec/is/interface/ftn-custom/zindexf.c src/vec/is/impls/stride/ftn-auto/stridef.c src/vec/is/impls/block/ftn-auto/blockf.c src/vec/is/impls/block/ftn-custom/zblockf.c src/vec/is/impls/general/ftn-auto/generalf.c src/vec/is/utils/ftn-auto/iscompf.c src/vec/is/utils/ftn-auto/isltogf.c src/vec/is/utils/ftn-auto/iscoloringf.c src/vec/is/utils/ftn-auto/isdifff.c src/vec/is/utils/ftn-custom/ziscoloringf.c src/vec/is/utils/ftn-custom/zisltogf.c ) endif () if (PETSC_HAVE_HYPRE AND PETSC_USE_REAL_DOUBLE AND NOT PETSC_USE_COMPLEX) list (APPEND PETSCVEC_SRCS src/vec/vec/impls/hypre/vhyp.c ) endif () list (APPEND PETSCVEC_SRCS src/vec/pf/interface/pf.c src/vec/pf/interface/pfall.c src/vec/pf/impls/constant/const.c src/vec/pf/impls/string/cstring.c src/vec/vec/interface/vector.c src/vec/vec/interface/veccreate.c src/vec/vec/interface/vecreg.c src/vec/vec/interface/vecregall.c src/vec/vec/interface/dlregisvec.c src/vec/vec/interface/rvector.c src/vec/vec/impls/shared/shvec.c src/vec/vec/impls/nest/vecnest.c src/vec/vec/impls/seq/bvec2.c src/vec/vec/impls/seq/bvec1.c src/vec/vec/impls/seq/dvec2.c src/vec/vec/impls/seq/vseqcr.c src/vec/vec/impls/seq/bvec3.c src/vec/vec/impls/seq/vsection.c src/vec/vec/impls/mpi/pbvec.c src/vec/vec/impls/mpi/pdvec.c

src/vec/vec/impls/mpi/pvec2.c src/vec/vec/impls/mpi/pmap.c src/vec/vec/impls/mpi/vmpicr.c src/vec/vec/impls/mpi/commonmpvec.c src/vec/vec/utils/vinv.c src/vec/vec/utils/vscat.c src/vec/vec/utils/vpscat.c src/vec/vec/utils/cmesh.c src/vec/vec/utils/vecio.c src/vec/vec/utils/comb.c src/vec/vec/utils/vecstash.c src/vec/vec/utils/vecmpitoseq.c src/vec/is/interface/index.c src/vec/is/interface/isregall.c src/vec/is/interface/isreg.c src/vec/is/impls/stride/stride.c src/vec/is/impls/block/block.c src/vec/is/impls/general/general.c src/vec/is/utils/iscomp.c src/vec/is/utils/iscoloring.c src/vec/is/utils/isltog.c src/vec/is/utils/isdiff.c src/vec/is/utils/isblock.c ) if (PETSC_HAVE_CUSP) list (APPEND PETSCVEC_SRCS ) endif () if (PETSC_USING_F90) list (APPEND PETSCVEC_SRCS src/vec/vec/interface/f90-custom/zvectorf90.c src/vec/is/interface/f90-custom/zindexf90.c src/vec/is/impls/f90-custom/zblockf90.c src/vec/is/utils/f90-custom/ziscoloringf90.c src/vec/f90-mod/petscvecmod.F ) endif () if (PETSC_HAVE_PTHREADCLASSES) list (APPEND PETSCVEC_SRCS src/vec/vec/impls/seq/seqpthread/vecpthread.c ) endif () if (PETSC_HAVE_MATLAB_ENGINE AND PETSC_USE_REAL_DOUBLE AND NOT PETSC_USE_COMPLEX ) list (APPEND PETSCVEC_SRCS src/vec/pf/impls/matlab/cmatlab.c src/vec/vec/utils/matlab/gcreatev.c ) endif () if (NOT PETSC_USE_SINGLE_LIBRARY) add_library (petscvec ${PETSCVEC_SRCS}) target_link_libraries (petscvec petscsys ${PETSC_PACKAGE_LIBS}) if (PETSC_WIN32FE) set_target_properties (petscvec PROPERTIES RULE_LAUNCH_COMPILE "${PETSC_WIN3 2FE}") set_target_properties (petscvec PROPERTIES RULE_LAUNCH_LINK "${PETSC_WIN32FE }") endif ()

endif () if (PETSC_HAVE_FORTRAN AND PETSC_HAVE_PARTY) list (APPEND PETSCMAT_SRCS src/mat/partition/impls/party/ftn-auto/partyf.c src/mat/partition/impls/party/ftn-custom/zpartyf.c ) endif () list (APPEND PETSCMAT_SRCS src/mat/color/degr.c src/mat/color/setr.c src/mat/color/dsm.c src/mat/color/ido.c src/mat/color/numsrt.c src/mat/color/seq.c src/mat/color/slo.c src/mat/color/color.c src/mat/color/scolor.c src/mat/utils/convert.c src/mat/utils/matstash.c src/mat/utils/axpy.c src/mat/utils/zerodiag.c src/mat/utils/getcolv.c src/mat/utils/gcreate.c src/mat/utils/freespace.c src/mat/utils/compressedrow.c src/mat/utils/multequal.c src/mat/utils/ptap.c src/mat/utils/matstashspace.c src/mat/partition/partition.c src/mat/partition/spartition.c src/mat/impls/submat/submat.c src/mat/impls/is/matis.c src/mat/impls/fft/fft.c src/mat/impls/baij/seq/baij.c src/mat/impls/baij/seq/baij2.c src/mat/impls/baij/seq/baijfact.c src/mat/impls/baij/seq/baijfact2.c src/mat/impls/baij/seq/dgefa.c src/mat/impls/baij/seq/dgedi.c src/mat/impls/baij/seq/dgefa3.c src/mat/impls/baij/seq/dgefa4.c src/mat/impls/baij/seq/dgefa5.c src/mat/impls/baij/seq/dgefa2.c src/mat/impls/baij/seq/dgefa6.c src/mat/impls/baij/seq/dgefa7.c src/mat/impls/baij/seq/aijbaij.c src/mat/impls/baij/seq/baijfact3.c src/mat/impls/baij/seq/baijfact4.c src/mat/impls/baij/seq/baijfact5.c src/mat/impls/baij/seq/baijfact7.c src/mat/impls/baij/seq/baijfact9.c src/mat/impls/baij/seq/baijfact11.c src/mat/impls/baij/seq/baijfact13.c src/mat/impls/baij/seq/bstream/bstream.c src/mat/impls/baij/seq/bstream/bstrmfact.c src/mat/impls/baij/mpi/mpibaij.c src/mat/impls/baij/mpi/mmbaij.c src/mat/impls/baij/mpi/baijov.c src/mat/impls/baij/mpi/bstream/mpibstream.c src/mat/impls/localref/mlocalref.c

src/mat/impls/mffd/mffd.c src/mat/impls/mffd/mffddef.c src/mat/impls/mffd/mfregis.c src/mat/impls/mffd/wp.c src/mat/impls/python/pythonmat.c src/mat/impls/adj/mpi/mpiadj.c src/mat/impls/maij/maij.c src/mat/impls/lrc/lrc.c src/mat/impls/shell/shell.c src/mat/impls/shell/shellcnv.c src/mat/impls/normal/normm.c src/mat/impls/composite/mcomposite.c src/mat/impls/nest/matnest.c src/mat/impls/transpose/transm.c src/mat/impls/dense/seq/dense.c src/mat/impls/dense/mpi/mpidense.c src/mat/impls/dense/mpi/mmdense.c src/mat/impls/blockmat/seq/blockmat.c src/mat/impls/sbaij/seq/sbaij.c src/mat/impls/sbaij/seq/sbaij2.c src/mat/impls/sbaij/seq/sbaijfact.c src/mat/impls/sbaij/seq/sbaijfact2.c src/mat/impls/sbaij/seq/sro.c src/mat/impls/sbaij/seq/sbaijfact3.c src/mat/impls/sbaij/seq/sbaijfact4.c src/mat/impls/sbaij/seq/sbaijfact5.c src/mat/impls/sbaij/seq/sbaijfact6.c src/mat/impls/sbaij/seq/sbaijfact7.c src/mat/impls/sbaij/seq/sbaijfact8.c src/mat/impls/sbaij/seq/sbaijfact9.c src/mat/impls/sbaij/seq/sbaijfact10.c src/mat/impls/sbaij/seq/sbaijfact11.c src/mat/impls/sbaij/seq/sbaijfact12.c src/mat/impls/sbaij/seq/aijsbaij.c src/mat/impls/sbaij/seq/sbstream/sbstream.c src/mat/impls/sbaij/seq/sbstream/sbstrmfact.c src/mat/impls/sbaij/mpi/mpisbaij.c src/mat/impls/sbaij/mpi/mmsbaij.c src/mat/impls/sbaij/mpi/sbaijov.c src/mat/impls/sbaij/mpi/mpiaijsbaij.c src/mat/impls/sbaij/mpi/sbstream/mpisbstream.c src/mat/impls/aij/seq/aij.c src/mat/impls/aij/seq/aijfact.c src/mat/impls/aij/seq/ij.c src/mat/impls/aij/seq/fdaij.c src/mat/impls/aij/seq/matmatmult.c src/mat/impls/aij/seq/symtranspose.c src/mat/impls/aij/seq/matptap.c src/mat/impls/aij/seq/matpapt.c src/mat/impls/aij/seq/inode.c src/mat/impls/aij/seq/inode2.c src/mat/impls/aij/seq/bas/basfactor.c src/mat/impls/aij/seq/bas/spbas.c src/mat/impls/aij/seq/csrperm/csrperm.c src/mat/impls/aij/seq/crl/crl.c src/mat/impls/aij/mpi/mpiaij.c src/mat/impls/aij/mpi/mmaij.c src/mat/impls/aij/mpi/mpiaijpc.c src/mat/impls/aij/mpi/mpiov.c src/mat/impls/aij/mpi/fdmpiaij.c

src/mat/impls/aij/mpi/mpiptap.c src/mat/impls/aij/mpi/mpimatmatmult.c src/mat/impls/aij/mpi/mpb_aij.c src/mat/impls/aij/mpi/csrperm/mpicsrperm.c src/mat/impls/aij/mpi/crl/mcrl.c src/mat/impls/scatter/mscatter.c src/mat/interface/matrix.c src/mat/interface/mhas.c src/mat/interface/matreg.c src/mat/interface/matregis.c src/mat/interface/matnull.c src/mat/interface/dlregismat.c src/mat/order/sp1wd.c src/mat/order/spnd.c src/mat/order/spqmd.c src/mat/order/sprcm.c src/mat/order/sorder.c src/mat/order/sregis.c src/mat/order/degree.c src/mat/order/fnroot.c src/mat/order/genqmd.c src/mat/order/qmdqt.c src/mat/order/rcm.c src/mat/order/fn1wd.c src/mat/order/gen1wd.c src/mat/order/genrcm.c src/mat/order/qmdrch.c src/mat/order/rootls.c src/mat/order/fndsep.c src/mat/order/gennd.c src/mat/order/qmdmrg.c src/mat/order/qmdupd.c src/mat/matfd/fdmatrix.c ) if (PETSC_HAVE_FORTRAN AND PETSC_HAVE_FFTW AND PETSC_USE_REAL_DOUBLE) list (APPEND PETSCMAT_SRCS src/mat/impls/fft/fftw/ftn-auto/fftwf.c src/mat/impls/fft/fftw/ftn-custom/zfftwf.c ) endif () if (PETSC_HAVE_ESSL AND PETSC_USE_REAL_DOUBLE AND NOT PETSC_USE_COMPLEX) list (APPEND PETSCMAT_SRCS src/mat/impls/aij/seq/essl/essl.c ) endif () if (PETSC_HAVE_PARMETIS) list (APPEND PETSCMAT_SRCS src/mat/partition/impls/pmetis/pmetis.c ) endif () if (PETSC_HAVE_FFTW AND PETSC_USE_REAL_DOUBLE) list (APPEND PETSCMAT_SRCS src/mat/impls/fft/fftw/fftw.c ) endif () if (PETSC_HAVE_PASTIX AND PETSC_USE_REAL_DOUBLE) list (APPEND PETSCMAT_SRCS src/mat/impls/aij/mpi/pastix/pastix.c ) endif ()

if (PETSC_HAVE_ADIC AND PETSC_USE_REAL_DOUBLE AND NOT PETSC_USE_COMPLEX) list (APPEND PETSCMAT_SRCS src/mat/impls/adic/matadic.c src/mat/impls/adic/nladic.c ) endif () if (PETSC_HAVE_FORTRAN AND PETSC_HAVE_CHACO) list (APPEND PETSCMAT_SRCS src/mat/partition/impls/chaco/ftn-auto/chacof.c ) endif () if (PETSC_HAVE_CHACO) list (APPEND PETSCMAT_SRCS src/mat/partition/impls/chaco/chaco.c ) endif () if (PETSC_HAVE_LUSOL AND PETSC_USE_REAL_DOUBLE AND NOT PETSC_USE_COMPLEX) list (APPEND PETSCMAT_SRCS src/mat/impls/aij/seq/lusol/lusol.c ) endif () if (PETSC_HAVE_MATLAB_ENGINE AND PETSC_USE_REAL_DOUBLE AND NOT PETSC_USE_COMPLEX ) list (APPEND PETSCMAT_SRCS src/mat/impls/aij/seq/matlab/aijmatlab.c ) endif () if (PETSC_HAVE_SUPERLU_DIST AND PETSC_USE_REAL_DOUBLE) list (APPEND PETSCMAT_SRCS src/mat/impls/aij/mpi/superlu_dist/superlu_dist.c ) endif () if (PETSC_HAVE_FORTRAN AND PETSC_HAVE_PARMETIS) list (APPEND PETSCMAT_SRCS src/mat/partition/impls/pmetis/ftn-auto/pmetisf.c ) endif () if (PETSC_USE_FORTRAN_KERNELS) list (APPEND PETSCMAT_SRCS src/mat/ftn-kernels/sgemv.F src/mat/impls/baij/seq/ftn-kernels/fsolvebaij.F src/mat/impls/aij/seq/ftn-kernels/fmult.F src/mat/impls/aij/seq/ftn-kernels/fmultadd.F src/mat/impls/aij/seq/ftn-kernels/fsolve.F src/mat/impls/aij/seq/ftn-kernels/frelax.F src/mat/impls/aij/seq/crl/ftn-kernels/fmultcrl.F ) endif () if (PETSC_HAVE_UMFPACK) list (APPEND PETSCMAT_SRCS src/mat/order/amd/amd.c ) endif () if (PETSC_HAVE_FORTRAN AND PETSC_HAVE_ADIC AND PETSC_USE_REAL_DOUBLE AND NOT PET SC_USE_COMPLEX) list (APPEND PETSCMAT_SRCS src/mat/impls/adic/ftn-auto/matadicf.c ) endif () if (PETSC_HAVE_PTSCOTCH)

list (APPEND PETSCMAT_SRCS src/mat/partition/impls/scotch/scotch.c ) endif () if (PETSC_HAVE_FORTRAN AND PETSC_HAVE_PTSCOTCH) list (APPEND PETSCMAT_SRCS src/mat/partition/impls/scotch/ftn-auto/scotchf.c ) endif () if (PETSC_HAVE_MUMPS AND PETSC_USE_REAL_DOUBLE) list (APPEND PETSCMAT_SRCS src/mat/impls/aij/mpi/mumps/mumps.c ) endif () if (PETSC_HAVE_CHOLMOD AND PETSC_USE_REAL_DOUBLE) list (APPEND PETSCMAT_SRCS src/mat/impls/sbaij/seq/cholmod/sbaijcholmod.c src/mat/impls/aij/seq/cholmod/aijcholmod.c ) endif () if (PETSC_HAVE_PARTY) list (APPEND PETSCMAT_SRCS src/mat/partition/impls/party/party.c ) endif () if (PETSC_USING_F90) list (APPEND PETSCMAT_SRCS src/mat/f90-mod/petscmatmod.F src/mat/interface/f90-custom/zmatrixf90.c ) endif () if (PETSC_HAVE_CUDA AND PETSC_USE_REAL_SINGLE AND PETSC_USE_COMPLEX) list (APPEND PETSCMAT_SRCS ) endif () if (PETSC_HAVE_FORTRAN) list (APPEND PETSCMAT_SRCS src/mat/ftn-custom/zmat.c src/mat/color/ftn-custom/zcolorf.c src/mat/utils/ftn-auto/zerodiagf.c src/mat/utils/ftn-auto/multequalf.c src/mat/utils/ftn-auto/axpyf.c src/mat/utils/ftn-auto/gcreatef.c src/mat/utils/ftn-auto/getcolvf.c src/mat/partition/ftn-auto/partitionf.c src/mat/partition/ftn-custom/zpartitionf.c src/mat/impls/submat/ftn-auto/submatf.c src/mat/impls/is/ftn-auto/matisf.c src/mat/impls/fft/ftn-auto/fftf.c src/mat/impls/baij/seq/ftn-auto/baijf.c src/mat/impls/baij/seq/ftn-custom/zbaijf.c src/mat/impls/baij/mpi/ftn-auto/mpibaijf.c src/mat/impls/baij/mpi/ftn-custom/zmpibaijf.c src/mat/impls/localref/ftn-auto/mlocalreff.c src/mat/impls/mffd/ftn-auto/mffddeff.c src/mat/impls/mffd/ftn-auto/wpf.c src/mat/impls/mffd/ftn-auto/mffdf.c src/mat/impls/mffd/ftn-custom/zmffdf.c src/mat/impls/python/ftn-custom/zpythonmf.c

src/mat/impls/adj/mpi/ftn-custom/zmpiadjf.c src/mat/impls/lrc/ftn-auto/lrcf.c src/mat/impls/shell/ftn-auto/shellf.c src/mat/impls/shell/ftn-custom/zshellf.c src/mat/impls/normal/ftn-auto/normmf.c src/mat/impls/composite/ftn-auto/mcompositef.c src/mat/impls/nest/ftn-auto/matnestf.c src/mat/impls/transpose/ftn-auto/transmf.c src/mat/impls/dense/seq/ftn-custom/zdensef.c src/mat/impls/dense/mpi/ftn-auto/mpidensef.c src/mat/impls/dense/mpi/ftn-custom/zmpidensef.c src/mat/impls/sbaij/seq/ftn-auto/sbaijf.c src/mat/impls/sbaij/seq/ftn-custom/zsbaijf.c src/mat/impls/sbaij/mpi/ftn-auto/mpisbaijf.c src/mat/impls/sbaij/mpi/ftn-custom/zmpisbaijf.c src/mat/impls/aij/seq/ftn-custom/zaijf.c src/mat/impls/aij/seq/ftn-auto/aijf.c src/mat/impls/aij/mpi/ftn-custom/zmpiaijf.c src/mat/impls/aij/mpi/ftn-auto/mpiaijf.c src/mat/impls/scatter/ftn-auto/mscatterf.c src/mat/interface/ftn-auto/matnullf.c src/mat/interface/ftn-auto/matrixf.c src/mat/interface/ftn-auto/mhasf.c src/mat/interface/ftn-custom/zmatregf.c src/mat/interface/ftn-custom/zmatrixf.c src/mat/order/ftn-auto/sorderf.c src/mat/order/ftn-custom/zsorderf.c src/mat/matfd/ftn-auto/fdmatrixf.c src/mat/matfd/ftn-custom/zfdmatrixf.c ) endif () if (PETSC_HAVE_FORTRAN AND PETSC_HAVE_MUMPS AND PETSC_USE_REAL_DOUBLE) list (APPEND PETSCMAT_SRCS src/mat/impls/aij/mpi/mumps/ftn-auto/mumpsf.c ) endif () if (PETSC_HAVE_SUPERLU AND PETSC_USE_REAL_DOUBLE) list (APPEND PETSCMAT_SRCS src/mat/impls/aij/seq/superlu/superlu.c ) endif () if (PETSC_HAVE_FORTRAN AND PETSC_HAVE_SUPERLU AND PETSC_USE_REAL_DOUBLE) list (APPEND PETSCMAT_SRCS src/mat/impls/aij/seq/superlu/ftn-auto/superluf.c ) endif () if (PETSC_HAVE_SPOOLES AND PETSC_USE_REAL_DOUBLE) list (APPEND PETSCMAT_SRCS src/mat/impls/sbaij/seq/spooles/sbaijspooles.c src/mat/impls/sbaij/mpi/spooles/mpisbaijspooles.c src/mat/impls/aij/seq/spooles/aijspooles.c src/mat/impls/aij/seq/spooles/spoolesOptions.c src/mat/impls/aij/seq/spooles/spooles.c src/mat/impls/aij/mpi/spooles/mpiaijspooles.c src/mat/impls/aij/mpi/spooles/mpispooles.c ) endif () if (PETSC_HAVE_CUSP) list (APPEND PETSCMAT_SRCS

) endif () if (PETSC_HAVE_UMFPACK AND PETSC_USE_REAL_DOUBLE) list (APPEND PETSCMAT_SRCS src/mat/impls/aij/seq/umfpack/umfpack.c ) endif () if (NOT PETSC_USE_SINGLE_LIBRARY) add_library (petscmat ${PETSCMAT_SRCS}) target_link_libraries (petscmat petscvec petscsys ${PETSC_PACKAGE_LIBS}) if (PETSC_WIN32FE) set_target_properties (petscmat PROPERTIES RULE_LAUNCH_COMPILE "${PETSC_WIN3 2FE}") set_target_properties (petscmat PROPERTIES RULE_LAUNCH_LINK "${PETSC_WIN32FE }") endif () endif () if (PETSC_HAVE_FFTW AND PETSC_USE_REAL_DOUBLE) list (APPEND PETSCDM_SRCS src/dm/impls/da/usfft/matusfft.c ) endif () if (PETSC_HAVE_HYPRE) list (APPEND PETSCDM_SRCS src/dm/impls/da/hypre/mhyp.c ) endif () if (PETSC_HAVE_FORTRAN) list (APPEND PETSCDM_SRCS src/dm/interface/ftn-auto/dmf.c src/dm/interface/ftn-custom/zdmf.c src/dm/impls/adda/ftn-auto/addaf.c src/dm/impls/composite/ftn-custom/zfddaf.c src/dm/impls/da/ftn-custom/zda.c src/dm/impls/da/ftn-custom/zda1f.c src/dm/impls/da/ftn-custom/zda2f.c src/dm/impls/da/ftn-custom/zda3f.c src/dm/impls/da/ftn-custom/zdacornf.c src/dm/impls/da/ftn-custom/zdagetscatterf.c src/dm/impls/da/ftn-custom/zdaindexf.c src/dm/impls/da/ftn-custom/zdaviewf.c src/dm/impls/da/ftn-auto/dalocalf.c src/dm/impls/da/ftn-auto/da2f.c src/dm/impls/da/ftn-auto/dadistf.c src/dm/impls/da/ftn-auto/daf.c src/dm/impls/da/ftn-auto/fddaf.c src/dm/impls/da/ftn-auto/daindexf.c src/dm/impls/da/ftn-auto/daltolf.c src/dm/impls/da/ftn-auto/dacornf.c src/dm/impls/da/ftn-auto/dagtonaf.c src/dm/impls/da/ftn-auto/dagetarrayf.c src/dm/impls/da/ftn-auto/daghostf.c src/dm/impls/da/ftn-auto/gr1f.c src/dm/impls/da/ftn-auto/dagtolf.c src/dm/impls/da/ftn-auto/dacreatef.c src/dm/impls/da/ftn-auto/dainterpf.c src/dm/impls/iga/ftn-auto/igaf.c src/dm/impls/iga/ftn-auto/igacreatef.c src/dm/ao/interface/ftn-auto/aof.c

src/dm/ao/interface/ftn-custom/zaof.c src/dm/ao/impls/mapping/ftn-auto/aomappingf.c src/dm/ao/impls/mapping/ftn-custom/zaomappingf.c src/dm/ao/impls/basic/ftn-custom/zaobasicf.c ) endif () if (PETSC_CLANGUAGE_Cxx AND PETSC_HAVE_SIEVE) list (APPEND PETSCDM_SRCS src/dm/impls/cartesian/cartesian.c src/dm/impls/mesh/ALE.cxx src/dm/impls/mesh/meshcreate.c src/dm/impls/mesh/mesh.c src/dm/impls/mesh/section.c src/dm/impls/mesh/meshbardhan.c src/dm/impls/mesh/meshdolfin.c src/dm/impls/mesh/meshexodus.c src/dm/impls/mesh/meshlagrit.c src/dm/impls/mesh/meshpcice.c src/dm/impls/mesh/meshzoltan.c ) endif () list (APPEND PETSCDM_SRCS src/dm/interface/dm.c src/dm/interface/dmregall.c src/dm/impls/adda/adda.c src/dm/impls/composite/pack.c src/dm/impls/composite/packm.c src/dm/impls/da/da2.c src/dm/impls/da/da1.c src/dm/impls/da/da3.c src/dm/impls/da/daghost.c src/dm/impls/da/dacorn.c src/dm/impls/da/dagtol.c src/dm/impls/da/daltol.c src/dm/impls/da/daindex.c src/dm/impls/da/dascatter.c src/dm/impls/da/dacreate.c src/dm/impls/da/dadestroy.c src/dm/impls/da/dalocal.c src/dm/impls/da/dadist.c src/dm/impls/da/daview.c src/dm/impls/da/dasub.c src/dm/impls/da/gr1.c src/dm/impls/da/gr2.c src/dm/impls/da/dagtona.c src/dm/impls/da/dainterp.c src/dm/impls/da/dapf.c src/dm/impls/da/dagetarray.c src/dm/impls/da/dagetelem.c src/dm/impls/da/da.c src/dm/impls/da/dareg.c src/dm/impls/da/fdda.c src/dm/impls/da/utils/binaryMatlab.c src/dm/impls/sliced/sliced.c src/dm/impls/iga/iga.c src/dm/impls/iga/igacreate.c src/dm/sa/interface/sa.c src/dm/sa/impls/graph/sagraph.c src/dm/ao/interface/ao.c src/dm/ao/interface/dlregisdm.c

src/dm/ao/interface/aoreg.c src/dm/ao/interface/aoregall.c src/dm/ao/impls/memscalable/aomemscalable.c src/dm/ao/impls/mapping/aomapping.c src/dm/ao/impls/basic/aobasic.c ) if (PETSC_USING_F90 AND PETSC_CLANGUAGE_Cxx AND PETSC_HAVE_SIEVE) list (APPEND PETSCDM_SRCS src/dm/impls/mesh/f90-custom/zmeshf90.c src/dm/impls/mesh/f90-custom/zsectionf90.c ) endif () if (PETSC_HAVE_FORTRAN AND PETSC_CLANGUAGE_Cxx AND PETSC_HAVE_SIEVE) list (APPEND PETSCDM_SRCS src/dm/impls/cartesian/ftn-auto/cartesianf.c src/dm/impls/mesh/ftn-auto/sectionf.c src/dm/impls/mesh/ftn-auto/meshexodusf.c src/dm/impls/mesh/ftn-auto/meshf.c src/dm/impls/mesh/ftn-auto/meshcreatef.c src/dm/impls/mesh/ftn-custom/zmesh.c src/dm/impls/mesh/ftn-custom/zsection.c ) endif () if (PETSC_USING_F90) list (APPEND PETSCDM_SRCS src/dm/impls/composite/f90-custom/zfddaf90.c src/dm/impls/da/f90-custom/zdaindexf90.c src/dm/impls/da/f90-custom/zda1f90.c src/dm/f90-mod/petscdmmod.F ) endif () if (NOT PETSC_USE_SINGLE_LIBRARY) add_library (petscdm ${PETSCDM_SRCS}) target_link_libraries (petscdm petscmat petscvec petscsys ${PETSC_PACKAGE_LIBS }) if (PETSC_WIN32FE) set_target_properties (petscdm PROPERTIES RULE_LAUNCH_COMPILE "${PETSC_WIN32 FE}") set_target_properties (petscdm PROPERTIES RULE_LAUNCH_LINK "${PETSC_WIN32FE} ") endif () endif () if (PETSC_HAVE_FORTRAN AND PETSC_HAVE_HYPRE AND PETSC_USE_REAL_DOUBLE AND NOT PE TSC_USE_COMPLEX) list (APPEND PETSCKSP_SRCS src/ksp/pc/impls/hypre/ftn-custom/zhypref.c ) endif () if (NOT PETSC_USE_COMPLEX) list (APPEND PETSCKSP_SRCS src/ksp/pc/impls/tfs/bitmask.c src/ksp/pc/impls/tfs/comm.c src/ksp/pc/impls/tfs/gs.c src/ksp/pc/impls/tfs/ivec.c src/ksp/pc/impls/tfs/xxt.c src/ksp/pc/impls/tfs/xyt.c src/ksp/pc/impls/tfs/tfs.c src/ksp/ksp/impls/gmres/dgmres/dgmres.c )

endif () if (PETSC_USING_F90) list (APPEND PETSCKSP_SRCS src/ksp/ksp/interface/f90-custom/zitfuncf90.c src/ksp/f90-mod/petsckspmod.F ) endif () if (PETSC_HAVE_PARMS AND PETSC_USE_REAL_DOUBLE) list (APPEND PETSCKSP_SRCS src/ksp/pc/impls/parms/parms.c ) endif () if (PETSC_HAVE_TRIANGLE AND PETSC_USE_REAL_DOUBLE AND NOT PETSC_USE_COMPLEX) list (APPEND PETSCKSP_SRCS src/ksp/pc/impls/gamg/gamg.c src/ksp/pc/impls/gamg/createProlongation.c ) endif () if (PETSC_HAVE_FORTRAN) list (APPEND PETSCKSP_SRCS src/ksp/pc/interface/ftn-auto/pcsetf.c src/ksp/pc/interface/ftn-auto/preconf.c src/ksp/pc/interface/ftn-custom/zpcsetf.c src/ksp/pc/interface/ftn-custom/zpreconf.c src/ksp/pc/impls/eisens/ftn-auto/eisenf.c src/ksp/pc/impls/bjacobi/ftn-auto/bjacobif.c src/ksp/pc/impls/bjacobi/ftn-custom/zbjacobif.c src/ksp/pc/impls/mg/ftn-auto/mgf.c src/ksp/pc/impls/mg/ftn-auto/mgfuncf.c src/ksp/pc/impls/mg/ftn-custom/zmgf.c src/ksp/pc/impls/mg/ftn-custom/zmgfuncf.c src/ksp/pc/impls/sor/ftn-auto/sorf.c src/ksp/pc/impls/ksp/ftn-auto/pckspf.c src/ksp/pc/impls/python/ftn-custom/zpythonpf.c src/ksp/pc/impls/asm/ftn-auto/asmf.c src/ksp/pc/impls/asm/ftn-custom/zasmf.c src/ksp/pc/impls/factor/ftn-custom/zluf.c src/ksp/pc/impls/factor/cholesky/ftn-auto/choleskyf.c src/ksp/pc/impls/factor/ftn-auto/factorf.c src/ksp/pc/impls/jacobi/ftn-auto/jacobif.c src/ksp/pc/impls/galerkin/ftn-auto/galerkinf.c src/ksp/pc/impls/shell/ftn-auto/shellpcf.c src/ksp/pc/impls/shell/ftn-custom/zshellpcf.c src/ksp/pc/impls/gasm/ftn-auto/gasmf.c src/ksp/pc/impls/wb/ftn-auto/wbf.c src/ksp/pc/impls/composite/ftn-auto/compositef.c src/ksp/pc/impls/composite/ftn-custom/zcompositef.c src/ksp/pc/impls/redistribute/ftn-auto/redistributef.c src/ksp/pc/impls/fieldsplit/ftn-auto/fieldsplitf.c src/ksp/pc/impls/redundant/ftn-auto/redundantf.c src/ksp/ksp/interface/ftn-auto/xmonf.c src/ksp/ksp/interface/ftn-auto/iterativf.c src/ksp/ksp/interface/ftn-auto/itresf.c src/ksp/ksp/interface/ftn-auto/eigef.c src/ksp/ksp/interface/ftn-auto/itcreatef.c src/ksp/ksp/interface/ftn-auto/itfuncf.c src/ksp/ksp/interface/ftn-auto/itclf.c src/ksp/ksp/interface/ftn-custom/zitclf.c src/ksp/ksp/interface/ftn-custom/zitcreatef.c src/ksp/ksp/interface/ftn-custom/zitfuncf.c

src/ksp/ksp/interface/ftn-custom/zxonf.c src/ksp/ksp/impls/cg/ftn-auto/cgtypef.c src/ksp/ksp/impls/cg/nash/ftn-auto/nashf.c src/ksp/ksp/impls/cg/gltr/ftn-auto/gltrf.c src/ksp/ksp/impls/cg/stcg/ftn-auto/stcgf.c src/ksp/ksp/impls/python/ftn-custom/zpythonkf.c src/ksp/ksp/impls/qcg/ftn-auto/qcgf.c src/ksp/ksp/impls/rich/ftn-auto/richscalef.c src/ksp/ksp/impls/bcgsl/ftn-auto/bcgslf.c src/ksp/ksp/impls/cheby/ftn-auto/chebyf.c src/ksp/ksp/impls/gmres/ftn-auto/gmresf.c src/ksp/ksp/impls/gmres/ftn-auto/gmpref.c src/ksp/ksp/impls/gmres/fgmres/ftn-auto/modpcff.c src/ksp/ksp/impls/gmres/fgmres/ftn-custom/zmodpcff.c src/ksp/ksp/utils/ftn-auto/schurmf.c ) endif () if (PETSC_HAVE_FORTRAN AND PETSC_HAVE_PARMS AND PETSC_USE_REAL_DOUBLE) list (APPEND PETSCKSP_SRCS src/ksp/pc/impls/parms/ftn-auto/parmsf.c ) endif () if (PETSC_HAVE_FORTRAN AND PETSC_HAVE_SPAI AND PETSC_USE_REAL_DOUBLE AND NOT PET SC_USE_COMPLEX) list (APPEND PETSCKSP_SRCS src/ksp/pc/impls/spai/ftn-auto/ispaif.c ) endif () if (PETSC_HAVE_HYPRE AND PETSC_USE_REAL_DOUBLE AND NOT PETSC_USE_COMPLEX) list (APPEND PETSCKSP_SRCS src/ksp/pc/impls/hypre/hypre.c ) endif () list (APPEND PETSCKSP_SRCS src/ksp/pc/interface/precon.c src/ksp/pc/interface/pcset.c src/ksp/pc/interface/pcregis.c src/ksp/pc/impls/eisens/eisen.c src/ksp/pc/impls/lsc/lsc.c src/ksp/pc/impls/bjacobi/bjacobi.c src/ksp/pc/impls/is/pcis.c src/ksp/pc/impls/is/nn/nn.c src/ksp/pc/impls/mg/mg.c src/ksp/pc/impls/mg/fmg.c src/ksp/pc/impls/mg/smg.c src/ksp/pc/impls/mg/mgfunc.c src/ksp/pc/impls/sor/sor.c src/ksp/pc/impls/pbjacobi/pbjacobi.c src/ksp/pc/impls/cp/cp.c src/ksp/pc/impls/mat/pcmat.c src/ksp/pc/impls/ksp/pcksp.c src/ksp/pc/impls/python/pythonP.c src/ksp/pc/impls/asm/asm.c src/ksp/pc/impls/factor/factor.c src/ksp/pc/impls/factor/factimpl.c src/ksp/pc/impls/factor/cholesky/cholesky.c src/ksp/pc/impls/factor/icc/icc.c src/ksp/pc/impls/factor/lu/lu.c src/ksp/pc/impls/factor/ilu/ilu.c src/ksp/pc/impls/jacobi/jacobi.c

src/ksp/pc/impls/galerkin/galerkin.c src/ksp/pc/impls/shell/shellpc.c src/ksp/pc/impls/gasm/gasm.c src/ksp/pc/impls/wb/wb.c src/ksp/pc/impls/composite/composite.c src/ksp/pc/impls/redistribute/redistribute.c src/ksp/pc/impls/fieldsplit/fieldsplit.c src/ksp/pc/impls/openmp/openmp.c src/ksp/pc/impls/none/none.c src/ksp/pc/impls/svd/svd.c src/ksp/pc/impls/asa/asa.c src/ksp/pc/impls/redundant/redundant.c src/ksp/ksp/interface/itcl.c src/ksp/ksp/interface/itfunc.c src/ksp/ksp/interface/iguess.c src/ksp/ksp/interface/itcreate.c src/ksp/ksp/interface/iterativ.c src/ksp/ksp/interface/itres.c src/ksp/ksp/interface/itregis.c src/ksp/ksp/interface/xmon.c src/ksp/ksp/interface/eige.c src/ksp/ksp/interface/dlregisksp.c src/ksp/ksp/impls/minres/minres.c src/ksp/ksp/impls/bicg/bicg.c src/ksp/ksp/impls/cg/cg.c src/ksp/ksp/impls/cg/cgeig.c src/ksp/ksp/impls/cg/cgtype.c src/ksp/ksp/impls/cg/nash/nash.c src/ksp/ksp/impls/cg/gltr/gltr.c src/ksp/ksp/impls/cg/cgne/cgne.c src/ksp/ksp/impls/cg/stcg/stcg.c src/ksp/ksp/impls/cr/cr.c src/ksp/ksp/impls/ibcgs/ibcgs.c src/ksp/ksp/impls/python/pythonK.c src/ksp/ksp/impls/gcr/gcr.c src/ksp/ksp/impls/qcg/qcg.c src/ksp/ksp/impls/rich/rich.c src/ksp/ksp/impls/rich/richscale.c src/ksp/ksp/impls/specest/specest.c src/ksp/ksp/impls/bcgsl/bcgsl.c src/ksp/ksp/impls/lsqr/lsqr.c src/ksp/ksp/impls/lsqr/lsqr_monitor.c src/ksp/ksp/impls/lsqr/lsqr_converged.c src/ksp/ksp/impls/cheby/cheby.c src/ksp/ksp/impls/bcgs/bcgs.c src/ksp/ksp/impls/lcd/lcd.c src/ksp/ksp/impls/preonly/preonly.c src/ksp/ksp/impls/gmres/gmres.c src/ksp/ksp/impls/gmres/borthog.c src/ksp/ksp/impls/gmres/borthog2.c src/ksp/ksp/impls/gmres/gmres2.c src/ksp/ksp/impls/gmres/gmreig.c src/ksp/ksp/impls/gmres/gmpre.c src/ksp/ksp/impls/gmres/lgmres/lgmres.c src/ksp/ksp/impls/gmres/fgmres/fgmres.c src/ksp/ksp/impls/gmres/fgmres/modpcf.c src/ksp/ksp/impls/cgs/cgs.c src/ksp/ksp/impls/symmlq/symmlq.c src/ksp/ksp/impls/tfqmr/tfqmr.c src/ksp/ksp/impls/tcqmr/tcqmr.c

src/ksp/ksp/impls/broyden/broyden.c src/ksp/ksp/impls/ngmres/ngmres.c src/ksp/ksp/utils/schurm.c ) if (PETSC_HAVE_CUSP_SMOOTHED_AGGREGATION) list (APPEND PETSCKSP_SRCS ) endif () if (PETSC_HAVE_ML AND PETSC_USE_REAL_DOUBLE AND NOT PETSC_USE_COMPLEX) list (APPEND PETSCKSP_SRCS src/ksp/pc/impls/ml/ml.c ) endif () if (PETSC_HAVE_PROMETHEUS AND PETSC_USE_REAL_DOUBLE AND NOT PETSC_USE_COMPLEX) list (APPEND PETSCKSP_SRCS src/ksp/pc/impls/prometheus/petscprom.c ) endif () if (PETSC_HAVE_FORTRAN AND PETSC_HAVE_PROMETHEUS AND PETSC_USE_REAL_DOUBLE AND N OT PETSC_USE_COMPLEX) list (APPEND PETSCKSP_SRCS src/ksp/pc/impls/prometheus/ftn-auto/petscpromf.c ) endif () if (PETSC_HAVE_SPAI AND PETSC_USE_REAL_DOUBLE AND NOT PETSC_USE_COMPLEX) list (APPEND PETSCKSP_SRCS src/ksp/pc/impls/spai/ispai.c src/ksp/pc/impls/spai/dspai.c ) endif () if (PETSC_CLANGUAGE_Cxx AND PETSC_HAVE_BOOST) list (APPEND PETSCKSP_SRCS src/ksp/pc/impls/supportgraph/supportgraph.c src/ksp/pc/impls/supportgraph/lowstretch.cpp ) endif () if (NOT PETSC_USE_SINGLE_LIBRARY) add_library (petscksp ${PETSCKSP_SRCS}) target_link_libraries (petscksp petscdm petscmat petscvec petscsys ${PETSC_PAC KAGE_LIBS}) if (PETSC_WIN32FE) set_target_properties (petscksp PROPERTIES RULE_LAUNCH_COMPILE "${PETSC_WIN3 2FE}") set_target_properties (petscksp PROPERTIES RULE_LAUNCH_LINK "${PETSC_WIN32FE }") endif () endif () if (PETSC_HAVE_ADIC AND PETSC_USE_REAL_DOUBLE AND NOT PETSC_USE_COMPLEX) list (APPEND PETSCSNES_SRCS src/snes/utils/adutils/damgsnesad.c ) endif () if (PETSC_HAVE_FORTRAN) list (APPEND PETSCSNES_SRCS src/snes/ftn-custom/zdmmg.c src/snes/mf/ftn-auto/snesmfjf.c src/snes/utils/ftn-custom/zdamgsnesf.c src/snes/utils/ftn-custom/zdamgf.c

src/snes/impls/python/ftn-custom/zpythonsf.c src/snes/impls/vi/ftn-auto/vif.c src/snes/impls/ls/ftn-auto/lsparamsf.c src/snes/impls/ls/ftn-custom/zlsf.c src/snes/impls/ls/ftn-custom/zlsparamsf.c src/snes/interface/ftn-auto/snesf.c src/snes/interface/ftn-auto/snesutf.c src/snes/interface/ftn-custom/zsnesf.c ) endif () if (PETSC_CLANGUAGE_Cxx AND PETSC_HAVE_SIEVE) list (APPEND PETSCSNES_SRCS src/snes/utils/sieve/meshmgsnes.c ) endif () if (PETSC_HAVE_FORTRAN AND PETSC_HAVE_ADIC AND PETSC_USE_REAL_DOUBLE AND NOT PET SC_USE_COMPLEX) list (APPEND PETSCSNES_SRCS src/snes/utils/adutils/ftn-auto/damgsnesadf.c ) endif () list (APPEND PETSCSNES_SRCS src/snes/mf/snesmfj.c src/snes/utils/damg.c src/snes/utils/damgsnes.c src/snes/impls/python/pythonsnes.c src/snes/impls/vi/vi.c src/snes/impls/ksponly/ksponly.c src/snes/impls/tr/tr.c src/snes/impls/sorqn/sorqn.c src/snes/impls/ls/ls.c src/snes/impls/ls/lsparams.c src/snes/impls/ngmres/snesngmres.c src/snes/impls/picard/picard.c src/snes/impls/test/snestest.c src/snes/interface/snes.c src/snes/interface/snesj.c src/snes/interface/snesregi.c src/snes/interface/snesut.c src/snes/interface/snesj2.c src/snes/interface/dlregissnes.c ) if (PETSC_USE_REAL_DOUBLE AND NOT PETSC_USE_COMPLEX) list (APPEND PETSCSNES_SRCS src/snes/interface/noise/snesmfj2.c src/snes/interface/noise/snesnoise.c src/snes/interface/noise/snesdnest.c ) endif () if (PETSC_USING_F90) list (APPEND PETSCSNES_SRCS src/snes/interface/f90-custom/zsnesf90.c src/snes/f90-mod/petscsnesmod.F ) endif () if (NOT PETSC_USE_SINGLE_LIBRARY) add_library (petscsnes ${PETSCSNES_SRCS}) target_link_libraries (petscsnes petscksp petscdm petscmat petscvec petscsys $ {PETSC_PACKAGE_LIBS})

if (PETSC_WIN32FE) set_target_properties (petscsnes PROPERTIES RULE_LAUNCH_COMPILE "${PETSC_WIN 32FE}") set_target_properties (petscsnes PROPERTIES RULE_LAUNCH_LINK "${PETSC_WIN32F E}") endif () endif () if (NOT PETSC_USE_COMPLEX) list (APPEND PETSCTS_SRCS src/ts/characteristic/interface/characteristic.c src/ts/characteristic/interface/mocregis.c src/ts/characteristic/interface/slregis.c src/ts/characteristic/impls/da/slda.c ) endif () if (PETSC_HAVE_SUNDIALS AND PETSC_USE_REAL_DOUBLE AND NOT PETSC_USE_COMPLEX) list (APPEND PETSCTS_SRCS src/ts/impls/implicit/sundials/sundials.c ) endif () if (PETSC_HAVE_FORTRAN) list (APPEND PETSCTS_SRCS src/ts/interface/ftn-auto/tsf.c src/ts/interface/ftn-custom/ztscreatef.c src/ts/interface/ftn-custom/ztsf.c src/ts/interface/ftn-custom/ztsregf.c src/ts/interface/ftn-custom/ztsfdf.c src/ts/impls/python/ftn-custom/zpythontf.c src/ts/impls/pseudo/ftn-auto/posindepf.c src/ts/impls/arkimex/ftn-custom/zarkimexf.c src/ts/impls/explicit/ssp/ftn-auto/sspf.c src/ts/impls/explicit/ssp/ftn-custom/zsspf.c src/ts/impls/explicit/rk/ftn-auto/rkf.c src/ts/impls/implicit/alpha/ftn-auto/alphaf.c src/ts/impls/implicit/theta/ftn-auto/thetaf.c ) endif () if (PETSC_HAVE_FORTRAN AND NOT PETSC_USE_COMPLEX) list (APPEND PETSCTS_SRCS src/ts/characteristic/interface/ftn-auto/characteristicf.c ) endif () if (PETSC_HAVE_FORTRAN AND PETSC_HAVE_SUNDIALS AND PETSC_USE_REAL_DOUBLE AND NOT PETSC_USE_COMPLEX) list (APPEND PETSCTS_SRCS src/ts/impls/implicit/sundials/ftn-auto/sundialsf.c src/ts/impls/implicit/sundials/ftn-custom/zsundialsf.c ) endif () list (APPEND PETSCTS_SRCS src/ts/interface/ts.c src/ts/interface/tscreate.c src/ts/interface/tsreg.c src/ts/interface/tsregall.c src/ts/interface/tsfd.c src/ts/interface/dlregists.c src/ts/impls/python/pythonts.c src/ts/impls/pseudo/posindep.c src/ts/impls/arkimex/arkimex.c src/ts/impls/explicit/ssp/ssp.c

src/ts/impls/explicit/euler/euler.c src/ts/impls/explicit/rk/rk.c src/ts/impls/implicit/gl/gl.c src/ts/impls/implicit/gl/gladapt.c src/ts/impls/implicit/alpha/alpha.c src/ts/impls/implicit/theta/theta.c ) if (PETSC_USING_F90) list (APPEND PETSCTS_SRCS src/ts/f90-mod/petsctsmod.F ) endif () if (NOT PETSC_USE_SINGLE_LIBRARY) add_library (petscts ${PETSCTS_SRCS}) target_link_libraries (petscts petscsnes petscksp petscdm petscmat petscvec pe tscsys ${PETSC_PACKAGE_LIBS}) if (PETSC_WIN32FE) set_target_properties (petscts PROPERTIES RULE_LAUNCH_COMPILE "${PETSC_WIN32 FE}") set_target_properties (petscts PROPERTIES RULE_LAUNCH_LINK "${PETSC_WIN32FE} ") endif () endif () if (PETSC_USE_SINGLE_LIBRARY) add_library (petsc ${PETSCSYS_SRCS} ${PETSCVEC_SRCS} ${PETSCMAT_SRCS} ${PETSCD M_SRCS} ${PETSCKSP_SRCS} ${PETSCSNES_SRCS} ${PETSCTS_SRCS}) target_link_libraries (petsc ${PETSC_PACKAGE_LIBS}) if (PETSC_WIN32FE) set_target_properties (petsc PROPERTIES RULE_LAUNCH_COMPILE "${PETSC_WIN32FE }") set_target_properties (petsc PROPERTIES RULE_LAUNCH_LINK "${PETSC_WIN32FE}") endif () endif () if (PETSC_CLANGUAGE_Cxx) foreach (file IN LISTS PETSCSYS_SRCS PETSCVEC_SRCS PETSCMAT_SRCS PETSCDM_SRCS PETSCKSP_SRCS PETSCSNES_SRCS PETSCTS_SRCS) if (file MATCHES "^.*\\.c$") set_source_files_properties(${file} PROPERTIES LANGUAGE CXX) endif () endforeach () endif()

Das könnte Ihnen auch gefallen