next up previous contents
Next: Ограничения Up: Флаги PETSc Previous: Флаги PETSc   Contents

Примеры сборочных файлов

Поддержка переносимых сборочных файлов PETSc очень проста. Далее приведены три примера сборочных файлов. Первый представляет ``минимальный'' сборочный файл для поддержки одной программы, которая использует библиотеки PETSc. Наиболее важной строкой в этом файле является та, которая начинается с include:

include ${PETSC_DIR}/bmake/common/base
Эта строка подключает другие сборочные файлы, которые содержат необходимые определения и правила для отдельной базовой инсталляции PETSc (определенной ${PETSC_DIR}) и архитектуры (определенной ${PETSC_ARCH}). Как указано в данном примере, соответствующий включаемый файл полностью определяется автоматически; пользователь не должен изменять этот оператор в тексте файла:

ALL: ex2

CFLAGS  =

   FFLAGS =

   CPPFLAGS = 

FPPFLAGS = 

include ${PETSC_DIR}/bmake/common/base

ex2: ex2.o chkopts

${CLINKER} -o ex2 ex2.o ${PETSC_LIB}

${RM} ex2.o

Отметьте, что переменная ${PETSC_LIB} (как указано в строке компоновки в приведенном файле) определяет все различные библиотеки PETSc в нужном порядке для правильной компоновки. Пользователи, которым требуются только определенные библиотеки PETSc, могут применять альтернативные переменные, например ${PETSC_SYS_LIB}, ${PETSC_VEC_LIB}, ${PETSC_MAT_LIB},
${PETSC_DM_LIB}, ${PETSC_SLES_LIB},${PETSC_SNES_LIB} или
${PETSC_TS_LIB}.

Второй пример сборочного файла управляет созданием нескольких примеров программ:

CFLAGS =

   FFLAGS =

   CPPFLAGS =

FPPFLAGS =

include ${PETSC_DIR}/bmake/common/base

ex1: ex1.o 

     -${CLINKER} -o ex1 ex1.o ${PETSC_LIB}

${RM} ex1.o

ex2: ex2.o

     -${CLINKER} -o ex2 ex2.o ${PETSC_LIB}

${RM} ex2.o

ex3: ex3.o

     -${FLINKER} -o ex3 ex3.o ${PETSC_FORTRAN_LIB}

       ${PETSC_LIB}

${RM} ex3.o

ex4: ex4.o

     -${CLINKER} -o ex4 ex4.o ${PETSC_LIB}

${RM} ex4.o

runex1:   -@${MPIRUN} ex1

runex2:

-@${MPIRUN} -np 2 ex2 -mat_seqdense -options_left

runex3:   -@${MPIRUN} ex3 -v -log_summary

runex4:   -@${MPIRUN} -np 4 ex4 -trdump

RUNEXAMPLES_1 = runex1 runex2

RUNEXAMPLES_2 = runex4

RUNEXAMPLES_3 = runex3

EXAMPLESC  = ex1.c ex2.c ex4.c

EXAMPLESF  = ex3.F 

EXAMPLES_1 = ex1 ex2 

EXAMPLES_2 = ex4 

EXAMPLES_3 = ex3

include ${PETSC_DIR}/bmake/common/test

Здесь наиболее важной вновь является строка include, которая включает файлы, определяющие все переменные-макросы. Некоторые дополнительные переменные, которые можно использовать в сборочном файле, определяются следующим образом:

Отметьте, что примеры программ PETSc разделены на несколько категорий, которые в настоящее время включают:

Последний сборочный файл обслуживает библиотеку PETSc. Несмотря на то, что большинству пользователей не нужно понимать структуру или работать с такими файлами, эти файлы также легко используются:

ALL: lib

CFLAGS =

SOURCEC = sp1wd.c spinver.c spnd.c spqmd.c sprcm.c

SOURCEF = degree.f fnroot.f genqmd.f qmdqt.f rcm.f

fn1wd.f gen1wd.f genrcm.f qmdrch.f rootls.f fndsep.f

gennd.f qmdmrg.f qmdupd.f

SOURCEH =

OBJSC = sp1wd.o spinver.o spnd.o spqmd.o sprcm.o

OBJSF = degree.o fnroot.o genqmd.o qmdqt.o rcm.o

fn1wd.o gen1wd.o genrcm.o qmdrch.o rootls.o fndsep.o

gennd.o qmdmrg.o qmdupd.o

LIBBASE = libpetscmat

MANSEC = Mat

include ${PETSC_DIR}/bmake/common/base

Библиотека называется libpetscmat.a, а исходные файлы, которые добавляются в нее, указаны переменными SOURCEC (для файлов на C) и SOURCEF (для файлов на Фортране). Отметьте, что переменные OBJSF и OBJSC идентичны SOURCEF и SOURCEC соответственно, за исключением того, что в них использован суффикс .o, а не .c или .f. Переменная MANSEC указывает, что все справочные страницы, сгенерированные из исходных файлов, должны включаться в раздел Mat.


next up previous contents
Next: Ограничения Up: Флаги PETSc Previous: Флаги PETSc   Contents
2004-06-22