1*d76296fbSBarry Smith# $Id: makefile,v 1.281 1999/04/06 19:19:15 bsmith Exp bsmith $ 211b6ed10SLois Curfman McInnes# 3cfd69a58SBarry Smith# This is the makefile for installing PETSc. See the file 47fc3c18eSBarry Smith# docs/installation.html for directions on installing PETSc. 5cfd69a58SBarry Smith# See also bmake/common for additional commands. 611b6ed10SLois Curfman McInnes# 7716b9c40SSatish BalayALL: all 811b6ed10SLois Curfman McInnes 9b16a3bb1SBarry SmithDIRS = src include docs 1061523587SBarry Smith 11d77bb2e1SSatish Balayinclude ${PETSC_DIR}/bmake/${PETSC_ARCH}/base 1261523587SBarry Smith 133677444aSSatish Balay# 143677444aSSatish Balay# Basic targets to build PETSc libraries. 15fa527775SLois Curfman McInnes# all : builds the c, fortran, and f90 libraries 169984b5c5SSatish Balayall : info chkpetsc_dir deletelibs build_c build_fortran shared 17efd74e9bSBarry Smith# 18fa527775SLois Curfman McInnes# Prints information about the system and version of PETSc being compiled 19efd74e9bSBarry Smith# 20efd74e9bSBarry Smithinfo: 21efd74e9bSBarry Smith -@echo "==========================================" 22*d76296fbSBarry Smith -@echo "See docs/troubleshooting.html and docs/bugreporting.html" 23*d76296fbSBarry Smith -@echo "for help with installation problems. Please send EVERYTHING" 24*d76296fbSBarry Smith -@echo "printed out below when reporting problems" 25*d76296fbSBarry Smith -@echo "==========================================" 261d91fb6eSBarry Smith -@echo On `date` on `hostname` 2730fdcc7aSBarry Smith -@echo Machine characteristics: `uname -a` 28efd74e9bSBarry Smith -@echo "-----------------------------------------" 2967b024f7SSatish Balay -@echo "Using C compiler: ${CC} ${COPTFLAGS} ${CCPPFLAGS}" 30d77bb2e1SSatish Balay -@if [ -n "${CCV}" -a "${CCV}" != "unknown" ] ; then \ 31d77bb2e1SSatish Balay echo "Compiler version:" `${CCV}` ; fi 3267b024f7SSatish Balay -@echo "Using Fortran compiler: ${FC} ${FOPTFLAGS} ${FCPPFLAGS}" 3347794344SBarry Smith -@echo "-----------------------------------------" 3423f40d59SSatish Balay -@grep PETSC_VERSION_NUMBER include/petsc.h | sed "s/........//" 35f265ae5cSBarry Smith -@echo "-----------------------------------------" 36d77bb2e1SSatish Balay -@echo "Using PETSc flags: ${PETSCFLAGS} ${PCONF}" 3747794344SBarry Smith -@echo "-----------------------------------------" 38e0e703c1SSatish Balay -@echo "Using configuration flags:" 3904d10f81SBarry Smith -@grep "define " bmake/${PETSC_ARCH}/petscconf.h 4047794344SBarry Smith -@echo "-----------------------------------------" 41d77bb2e1SSatish Balay -@echo "Using include paths: ${PETSC_INCLUDE}" 4247794344SBarry Smith -@echo "-----------------------------------------" 43d77bb2e1SSatish Balay -@echo "Using PETSc directory: ${PETSC_DIR}" 44d77bb2e1SSatish Balay -@echo "Using PETSc arch: ${PETSC_ARCH}" 45efd74e9bSBarry Smith -@echo "------------------------------------------" 46d77bb2e1SSatish Balay -@echo "Using C linker: ${CLINKER}" 47d77bb2e1SSatish Balay -@echo "Using Fortran linker: ${FLINKER}" 48f2b01315SBarry Smith -@echo "Using libraries: ${PETSC_LIB}" 49efd74e9bSBarry Smith -@echo "==========================================" 50efd74e9bSBarry Smith 513677444aSSatish Balay# 52fa527775SLois Curfman McInnes# Builds the PETSc libraries 53fa527775SLois Curfman McInnes# This target also builds fortran77 and f90 interface 54fa527775SLois Curfman McInnes# files. (except compiling *.F files) 553677444aSSatish Balay# 5660262a0eSSatish Balaybuild_c: 57efd74e9bSBarry Smith -@echo "BEGINNING TO COMPILE LIBRARIES IN ALL DIRECTORIES" 5847794344SBarry Smith -@echo "=========================================" 5975198762SBarry Smith -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=libfast tree 60d088d436SBarry Smith -@cd ${PETSC_DIR}/src/sys/src/time ; \ 61d77bb2e1SSatish Balay ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} rs6000_time 62d77bb2e1SSatish Balay ${RANLIB} ${PDIR}/*.a 63d77bb2e1SSatish Balay -@chmod g+w ${PDIR}/*.a 640b3634f8SBarry Smith -@echo "Completed building libraries" 6547794344SBarry Smith -@echo "=========================================" 660b3634f8SBarry Smith 6735ca7349SBarry Smith# 6828881d8bSBarry Smith# Builds PETSc Fortran source 6911b6ed10SLois Curfman McInnes# Note: libfast cannot run on .F files on certain machines, so we 709984b5c5SSatish Balay# use libf to compile the fortran source files. 71fa527775SLois Curfman McInnes# 7260262a0eSSatish Balaybuild_fortran: 7328881d8bSBarry Smith -@echo "BEGINNING TO COMPILE FORTRAN SOURCE" 7447794344SBarry Smith -@echo "=========================================" 75b16a3bb1SBarry Smith -@cd src/fortran/custom; \ 7628881d8bSBarry Smith ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} libf clean 77971c2310SBarry Smith -@cd src/fortran/kernels; \ 784a903031SSatish Balay ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} libf clean 799984b5c5SSatish Balay ${RANLIB} ${PDIR}/libpetscfortran.a 80d08da015SSatish Balay ${RANLIB} ${PDIR}/libpetsc.a 81d77bb2e1SSatish Balay -@chmod g+w ${PDIR}/*.a 8228881d8bSBarry Smith -@echo "Completed compiling Fortran source" 83971c2310SBarry Smith -@echo "=========================================" 84971c2310SBarry Smith 85efd74e9bSBarry Smithpetscblas: info chkpetsc_dir 86d77bb2e1SSatish Balay -${RM} -f ${PDIR}/libpetscblas.* 87efd74e9bSBarry Smith -@echo "BEGINNING TO COMPILE C VERSION OF BLAS AND LAPACK" 8866341c5dSSatish Balay -@echo "=========================================" 8977ed5343SBarry Smith -@cd src/blaslapack; \ 90d77bb2e1SSatish Balay ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=libfast tree 91d77bb2e1SSatish Balay ${RANLIB} ${PDIR}/libpetscblas.a 92d77bb2e1SSatish Balay -@chmod g+w ${PDIR}/*.a 93229e8d5cSBarry Smith -@echo "Completed compiling C version of BLAS and LAPACK" 9466341c5dSSatish Balay -@echo "=========================================" 951a4ded38SSatish Balay 9666341c5dSSatish Balay 973677444aSSatish Balay# Builds PETSc test examples for a given BOPT and architecture 983677444aSSatish Balaytestexamples: info chkopts 993677444aSSatish Balay -@echo "BEGINNING TO COMPILE AND RUN TEST EXAMPLES" 1003677444aSSatish Balay -@echo "Due to different numerical round-off on certain" 1013677444aSSatish Balay -@echo "machines some of the numbers may not match exactly." 1023677444aSSatish Balay -@echo "=========================================" 1033677444aSSatish Balay -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} \ 1043677444aSSatish Balay ACTION=testexamples_1 tree 1053677444aSSatish Balay -@echo "Completed compiling and running test examples" 1063677444aSSatish Balay -@echo "=========================================" 1073677444aSSatish Balay 1083677444aSSatish Balay# Builds PETSc test examples for a given BOPT and architecture 1093677444aSSatish Balaytestfortran: info chkopts 1103677444aSSatish Balay -@echo "BEGINNING TO COMPILE AND RUN FORTRAN TEST EXAMPLES" 1113677444aSSatish Balay -@echo "=========================================" 1123677444aSSatish Balay -@echo "Due to different numerical round-off on certain" 1133677444aSSatish Balay -@echo "machines or the way Fortran formats numbers" 1143677444aSSatish Balay -@echo "some of the results may not match exactly." 1153677444aSSatish Balay -@echo "=========================================" 1163677444aSSatish Balay -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} \ 1173677444aSSatish Balay ACTION=testexamples_3 tree 1183677444aSSatish Balay -@echo "Completed compiling and running Fortran test examples" 1193677444aSSatish Balay -@echo "=========================================" 1203677444aSSatish Balay 1213677444aSSatish Balay# Builds PETSc test examples for a given BOPT and architecture 12201c5c36fSSatish Balaytestexamples_uni: info chkopts 12301c5c36fSSatish Balay -@echo "BEGINNING TO COMPILE AND RUN TEST UNI-PROCESSOR EXAMPLES" 12401c5c36fSSatish Balay -@echo "Due to different numerical round-off on certain" 12501c5c36fSSatish Balay -@echo "machines some of the numbers may not match exactly." 12601c5c36fSSatish Balay -@echo "=========================================" 12701c5c36fSSatish Balay -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} \ 12801c5c36fSSatish Balay ACTION=testexamples_4 tree 12901c5c36fSSatish Balay -@echo "Completed compiling and running uniprocessor test examples" 13001c5c36fSSatish Balay -@echo "=========================================" 1313677444aSSatish Balaytestfortran_uni: info chkopts 1323677444aSSatish Balay -@echo "BEGINNING TO COMPILE AND RUN TEST UNI-PROCESSOR FORTRAN EXAMPLES" 1333677444aSSatish Balay -@echo "Due to different numerical round-off on certain" 1343677444aSSatish Balay -@echo "machines some of the numbers may not match exactly." 1353677444aSSatish Balay -@echo "=========================================" 1363677444aSSatish Balay -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} \ 1373677444aSSatish Balay ACTION=testexamples_9 tree 1383677444aSSatish Balay -@echo "Completed compiling and running uniprocessor fortran test examples" 1393677444aSSatish Balay -@echo "=========================================" 140ad96cc0dSLois Curfman McInnes 141f3eacedaSSatish Balay# Ranlib on the libraries 1428c37ef55SBarry Smithranlib: 143d77bb2e1SSatish Balay ${RANLIB} ${PDIR}/*.a 14461523587SBarry Smith 14511b6ed10SLois Curfman McInnes# Deletes PETSc libraries 146f3eacedaSSatish Balaydeletelibs: chkopts_basic 147d77bb2e1SSatish Balay -${RM} -f ${PDIR}/* 148d44968ceSBarry Smith 1493677444aSSatish Balay 1503677444aSSatish Balay# ------------------------------------------------------------------ 1513677444aSSatish Balay# 1523677444aSSatish Balay# All remaining actions are intended for PETSc developers only. 1533677444aSSatish Balay# PETSc users should not generally need to use these commands. 1543677444aSSatish Balay# 1553677444aSSatish Balay 15665783a8cSBarry Smith# To access the tags in EMACS, type M-x visit-tags-table and specify 15765783a8cSBarry Smith# the file petsc/TAGS. 15865783a8cSBarry Smith# 1) To move to where a PETSc function is defined, enter M-. and the 15965783a8cSBarry Smith# function name. 16065783a8cSBarry Smith# 2) To search for a string and move to the first occurrence, 16165783a8cSBarry Smith# use M-x tags-search and the string. 1627acb7333SLois Curfman McInnes# To locate later occurrences, use M-, 16311b6ed10SLois Curfman McInnes# Builds all etags files 16411b6ed10SLois Curfman McInnesalletags: 16501c05c5cSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSDIR=${PETSC_DIR} etags 16609f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSDIR=${PETSC_DIR} etags_complete 16709f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSDIR=${PETSC_DIR} etags_noexamples 16809f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSDIR=${PETSC_DIR} etags_examples 16909f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSDIR=${PETSC_DIR} etags_makefiles 17011b6ed10SLois Curfman McInnes# Builds the basic etags file. This should be employed by most users. 17120563c6bSBarry Smithetags: 17209f7043eSSatish Balay -${RM} ${TAGSDIR}/TAGS 17309f7043eSSatish Balay -touch ${TAGSDIR}/TAGS 17409f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_sourcec alltree 17509f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_sourceh alltree 17609f7043eSSatish Balay -cd src/fortran; ${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_sourcef alltree 17709f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_examplesc alltree 17809f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_examplesf alltree 17909f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_examplesch alltree 18009f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_examplesfh alltree 18109f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_makefile alltree 18209f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS etags_bmakefiles 18355194d7eSSatish Balay -chmod g+w TAGS 18429cdf679SBarry Smith# Builds complete etags list; only for PETSc developers. 18529cdf679SBarry Smithetags_complete: 18609f7043eSSatish Balay -${RM} ${TAGSDIR}/TAGS_COMPLETE 18709f7043eSSatish Balay -touch ${TAGSDIR}/TAGS_COMPLETE 18809f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_sourcec alltree 18909f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_sourceh alltree 19009f7043eSSatish Balay -cd src/fortran; ${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_sourcef alltree 19109f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_examplesc alltree 19209f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_examplesf alltree 19309f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_examplesch alltree 19409f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_examplesfh alltree 19509f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_makefile alltree 19609f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE etags_bmakefiles 19709f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_docs alltree 19809f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_scripts alltree 19955194d7eSSatish Balay -chmod g+w TAGS_COMPLETE 20011b6ed10SLois Curfman McInnes# Builds the etags file that excludes the examples directories 201bfce26a3SBarry Smithetags_noexamples: 20209f7043eSSatish Balay -${RM} ${TAGSDIR}/TAGS_NO_EXAMPLES 20309f7043eSSatish Balay -touch ${TAGSDIR}/TAGS_NO_EXAMPLES 20409f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES ACTION=etags_sourcec alltree 20509f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES ACTION=etags_sourceh alltree 20609f7043eSSatish Balay -cd src/fortran; ${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES ACTION=etags_sourcef alltree 20709f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES ACTION=etags_makefile alltree 20809f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES etags_bmakefiles 20909f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES ACTION=etags_docs alltree 21055194d7eSSatish Balay -chmod g+w TAGS_NO_EXAMPLES 21111b6ed10SLois Curfman McInnes# Builds the etags file for makefiles 212b16a3bb1SBarry Smithetags_makefiles: 2137e0368d4SSatish Balay -${RM} ${TAGSDIR}/TAGS_MAKEFILES 2147e0368d4SSatish Balay -touch ${TAGSDIR}/TAGS_MAKEFILES 2157e0368d4SSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_MAKEFILES ACTION=etags_makefile alltree 2167e0368d4SSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_MAKEFILES etags_bmakefiles 2177e0368d4SSatish Balay -chmod g+w TAGS_MAKEFILES 218dc80aa23SSatish Balay# Builds the etags file for examples 219dc80aa23SSatish Balayetags_examples: 22009f7043eSSatish Balay -${RM} ${TAGSDIR}/TAGS_EXAMPLES 22109f7043eSSatish Balay -touch ${TAGSDIR}/TAGS_EXAMPLES 22209f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_EXAMPLES ACTION=etags_examplesc alltree 22309f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_EXAMPLES ACTION=etags_examplesch alltree 22409f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_EXAMPLES ACTION=etags_examplesf alltree 22509f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_EXAMPLES ACTION=etags_examplesfh alltree 22655194d7eSSatish Balay -chmod g+w TAGS_EXAMPLES 2272176044fSSatish Balayetags_fexamples: 22809f7043eSSatish Balay -${RM} ${TAGSDIR}/TAGS_FEXAMPLES 22909f7043eSSatish Balay -touch ${TAGSDIR}/TAGS_FEXAMPLES 23009f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_FEXAMPLES ACTION=etags_examplesf alltree 23109f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_EXAMPLES ACTION=etags_examplesfh alltree 2322176044fSSatish Balay -chmod g+w TAGS_FEXAMPLES 233b38bb785SSatish Balay# 234f20f7ba3SSatish Balay# These are here for the target allci and allco, and etags 2353677444aSSatish Balay# 236b38bb785SSatish Balay 2372b2fa3b8SSatish BalayBMAKEFILES = bmake/common* bmake/*/base* bmake/*/petscconf.h bmake/win32/makefile.dos 2382f1ebae6SLois Curfman McInnesDOCS = bmake/readme bmake/petscconf.defs 23957c4596dSSatish BalaySCRIPTS = maint/addlinks maint/builddist maint/buildlinks maint/wwwman \ 24057c4596dSSatish Balay maint/xclude maint/crontab \ 24157c4596dSSatish Balay maint/autoftp include/foldinclude/generateincludes 24211b6ed10SLois Curfman McInnes 2437f52c680SSatish Balay# Builds all the documentation - should be done every night 2447f52c680SSatish Balayalldoc: allmanpages 245e15d8129SBarry Smith cd docs/tex/manual; ${OMAKE} manual.dvi manual.ps manual.html splitmanual.html 2467f52c680SSatish Balay 2472496ca06SSatish Balay# Deletes man pages (HTML version) 2482496ca06SSatish Balaydeletemanualpages: 249ba79c590SSatish Balay ${RM} -f ${PETSC_DIR}/docs/manualpages/*/*.html \ 25045f11a08SBarry Smith ${PETSC_DIR}/docs/manualpages/manualpages.cit 2512496ca06SSatish Balay 2522496ca06SSatish Balay# Deletes man pages (LaTeX version) 2532496ca06SSatish Balaydeletelatexpages: 2542496ca06SSatish Balay ${RM} -f ${PETSC_DIR}/docs/tex/rsum/*sum*.tex 2552496ca06SSatish Balay 25611b6ed10SLois Curfman McInnes# Builds all versions of the man pages 257981c4779SBarry Smithallmanpages: allmanualpages alllatexpages 258981c4779SBarry Smithallmanualpages: deletemanualpages 2593e01d015SBarry Smith -${OMAKE} ACTION=manualpages_buildcite tree 2603e01d015SBarry Smith -${OMAKE} ACTION=manualpages tree 261dfd40236SSatish Balay -maint/wwwindex.py ${PETSC_DIR} 262981c4779SBarry Smith -maint/examplesindex.tcl 263f8cfbf3fSSatish Balay -maint/htmlkeywords.tcl 264ba79c590SSatish Balay -@chmod g+w docs/manualpages/*/*.html 265e01137a2SSatish Balay 266416022c9SBarry Smithalllatexpages: deletelatexpages 2673e01d015SBarry Smith -${OMAKE} ACTION=latexpages tree 26851c61065SBarry Smith -@chmod g+w docs/tex/rsum/* 269416022c9SBarry Smith 27011b6ed10SLois Curfman McInnes# Builds Fortran stub files 27111b6ed10SLois Curfman McInnesallfortranstubs: 27226cd32c0SSatish Balay -@include/foldinclude/generateincludes 273d77bb2e1SSatish Balay -@${RM} -f src/fortran/auto/*.c 2743e01d015SBarry Smith -${OMAKE} ACTION=fortranstubs tree 275716b9c40SSatish Balay -@cd src/fortran/auto; ${OMAKE} -f makefile fixfortran 2760a0eb2c5SBarry Smith chmod g+w src/fortran/auto/*.c 277f6ff2982SSatish Balay 278d55938c2SBarry Smithallci: 279f20f7ba3SSatish Balay -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=ci alltree 280b951964fSBarry Smith 281d55938c2SBarry Smithallco: 282f20f7ba3SSatish Balay -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=co alltree 283d55938c2SBarry Smith 284b334301eSBarry Smith# 285b334301eSBarry Smith# The commands below are for generating ADIC versions of the code; 286b334301eSBarry Smith# they are not currently used. 287b334301eSBarry Smith# 2885eea60f9SBarry Smithalladicignore: 289d77bb2e1SSatish Balay -@${RM} ${PDIR}/adicignore 290d77bb2e1SSatish Balay -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=adicignore tree 2915eea60f9SBarry Smith 2925eea60f9SBarry Smithalladic: 293d18b0ea7SBarry Smith -@echo "Beginning to compile ADIC source code in all directories" 29467b024f7SSatish Balay -@echo "Using ADIC compiler: ${ADIC_CC} ${CCPPFLAGS}" 295d18b0ea7SBarry Smith -@echo "=========================================" 29647794344SBarry Smith -@cd include ; \ 29767b024f7SSatish Balay ${ADIC_CC} -s -f 1 ${CCPPFLAGS} petsc.h 298d77bb2e1SSatish Balay -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=adic tree 29947794344SBarry Smith -@cd src/inline ; \ 300d77bb2e1SSatish Balay ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} adic 30177ed5343SBarry Smith -@cd src/blaslapack ; \ 302d77bb2e1SSatish Balay ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=adic tree 3036e81b665SBarry Smith 30447794344SBarry Smithalladiclib: 305d18b0ea7SBarry Smith -@echo "Beginning to compile ADIC libraries in all directories" 306d77bb2e1SSatish Balay -@echo "Using compiler: ${CC} ${COPTFLAGS}" 307d18b0ea7SBarry Smith -@echo "-----------------------------------------" 308d77bb2e1SSatish Balay -@echo "Using PETSc flags: ${PETSCFLAGS} ${PCONF}" 309d18b0ea7SBarry Smith -@echo "-----------------------------------------" 310e0e703c1SSatish Balay -@echo "Using configuration flags:" 311e0e703c1SSatish Balay -@grep "define " bmake/${PETSC_ARCH}/petscconf.h 312d18b0ea7SBarry Smith -@echo "-----------------------------------------" 313d77bb2e1SSatish Balay -@echo "Using include paths: ${PETSC_INCLUDE}" 314d18b0ea7SBarry Smith -@echo "-----------------------------------------" 315d77bb2e1SSatish Balay -@echo "Using PETSc directory: ${PETSC_DIR}" 316d77bb2e1SSatish Balay -@echo "Using PETSc arch: ${PETSC_ARCH}" 317d18b0ea7SBarry Smith -@echo "=========================================" 318d77bb2e1SSatish Balay -@${RM} -f ${PDIR}/*adic.a 319d77bb2e1SSatish Balay -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=adiclib tree 32077ed5343SBarry Smith -@cd src/blaslapack ; \ 321d77bb2e1SSatish Balay ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=adiclib tree 3227e351921SBarry Smith -@cd src/adic/src ; \ 323d77bb2e1SSatish Balay ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} lib 3245eea60f9SBarry Smith 3259e417c50SSatish Balay# ------------------------------------------------------------------------------- 3269e417c50SSatish Balay# 3279e417c50SSatish Balay# Some macros to check if the fortran interface is up-to-date. 3289e417c50SSatish Balay# 3299e417c50SSatish Balaycountfortranfunctions: 330d77bb2e1SSatish Balay -@cd ${PETSC_DIR}/src/fortran; egrep '^void' custom/*.c auto/*.c | \ 33185c7cd6cSSatish Balay cut -d'(' -f1 | tr -s ' ' | cut -d' ' -f2 | uniq | egrep -v "(^$$|Petsc)" | \ 3329e417c50SSatish Balay sed "s/_$$//" | sort > /tmp/countfortranfunctions 333b334301eSBarry Smith 3349e417c50SSatish Balaycountcfunctions: 33585c7cd6cSSatish Balay -@ grep extern ${PETSC_DIR}/include/*.h *.h | grep "(" | tr -s ' ' | \ 33685c7cd6cSSatish Balay cut -d'(' -f1 | cut -d' ' -f3 | grep -v "\*" | tr -s '\012' | \ 3379e417c50SSatish Balay tr 'A-Z' 'a-z' | sort > /tmp/countcfunctions 3389e417c50SSatish Balay 3399e417c50SSatish Balaydifffortranfunctions: countfortranfunctions countcfunctions 3409e417c50SSatish Balay -@echo -------------- Functions missing in the fortran interface --------------------- 3419e417c50SSatish Balay -@diff /tmp/countcfunctions /tmp/countfortranfunctions | grep "^<" | cut -d' ' -f2 3429e417c50SSatish Balay -@echo ----------------- Functions missing in the C interface ------------------------ 3439e417c50SSatish Balay -@diff /tmp/countcfunctions /tmp/countfortranfunctions | grep "^>" | cut -d' ' -f2 344d77bb2e1SSatish Balay -@${RM} /tmp/countcfunctions /tmp/countfortranfunctions 345b334301eSBarry Smith 3463f4c9a3aSSatish Balaycheckbadfortranstubs: 3473f4c9a3aSSatish Balay -@echo "=========================================" 3483f4c9a3aSSatish Balay -@echo "Functions with MPI_Comm as an Argument" 3493f4c9a3aSSatish Balay -@echo "=========================================" 350d77bb2e1SSatish Balay -@cd ${PETSC_DIR}/src/fortran/auto; grep '^void' *.c | grep 'MPI_Comm' | \ 35185c7cd6cSSatish Balay tr -s ' ' | tr -s ':' ' ' |cut -d'(' -f1 | cut -d' ' -f1,3 3523f4c9a3aSSatish Balay -@echo "=========================================" 3533f4c9a3aSSatish Balay -@echo "Functions with a String as an Argument" 3543f4c9a3aSSatish Balay -@echo "=========================================" 355d77bb2e1SSatish Balay -@cd ${PETSC_DIR}/src/fortran/auto; grep '^void' *.c | grep 'char \*' | \ 35685c7cd6cSSatish Balay tr -s ' ' | tr -s ':' ' ' |cut -d'(' -f1 | cut -d' ' -f1,3 3573f4c9a3aSSatish Balay -@echo "=========================================" 3583f4c9a3aSSatish Balay -@echo "Functions with Pointers to PETSc Objects as Argument" 3593f4c9a3aSSatish Balay -@echo "=========================================" 360d77bb2e1SSatish Balay -@cd ${PETSC_DIR}/src/fortran/auto; \ 36185c7cd6cSSatish Balay _p_OBJ=`grep _p_ ${PETSC_DIR}/include/*.h | tr -s ' ' | \ 36285c7cd6cSSatish Balay cut -d' ' -f 3 | tr -s '\012' | grep -v '{' | cut -d'*' -f1 | \ 3633f4c9a3aSSatish Balay sed "s/_p_//g" | tr -s '\012 ' ' *|' ` ; \ 3643f4c9a3aSSatish Balay for OBJ in $$_p_OBJ; do \ 36585c7cd6cSSatish Balay grep "$$OBJ \*" *.c | tr -s ' ' | tr -s ':' ' ' | \ 3663f4c9a3aSSatish Balay cut -d'(' -f1 | cut -d' ' -f1,3; \ 3673f4c9a3aSSatish Balay done 3683677444aSSatish Balay# Builds noise routines (not yet publically available) 3693677444aSSatish Balay# Note: libfast cannot run on .F files on certain machines, so we 3703677444aSSatish Balay# use lib and check for errors here. 3713677444aSSatish Balaynoise: info chkpetsc_dir 3723677444aSSatish Balay -@echo "Beginning to compile noise routines" 3733677444aSSatish Balay -@echo "=========================================" 3743677444aSSatish Balay -@cd src/snes/interface/noise; \ 3753677444aSSatish Balay ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} lib > trashz 2>&1; \ 3763677444aSSatish Balay grep -v clog trashz | grep -v "information sections" | \ 3773677444aSSatish Balay egrep -i '(Error|warning|Can)' >> /dev/null;\ 3783677444aSSatish Balay if [ "$$?" != 1 ]; then \ 3793677444aSSatish Balay cat trashz ; fi; ${RM} trashz 3803677444aSSatish Balay ${RANLIB} ${PDIR}/libpetscsnes.a 3813677444aSSatish Balay -@chmod g+w ${PDIR}/libpetscsnes.a 3823677444aSSatish Balay -@echo "Completed compiling noise routines" 3833677444aSSatish Balay -@echo "=========================================" 3843677444aSSatish Balay 385