1*4918a6b0SSatish Balay# $Id: makefile,v 1.348 2001/06/19 18:18:12 bsmith Exp balay $ 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 848b2c0e9SBarry SmithLOCDIR = . 9b16a3bb1SBarry SmithDIRS = src include docs 1061523587SBarry Smith 11d77bb2e1SSatish Balayinclude ${PETSC_DIR}/bmake/${PETSC_ARCH}/base 121d1367b7SBarry Smithinclude ${PETSC_DIR}/bmake/common_test 1361523587SBarry Smith 143677444aSSatish Balay# 153677444aSSatish Balay# Basic targets to build PETSc libraries. 16fa527775SLois Curfman McInnes# all : builds the c, fortran, and f90 libraries 17*4918a6b0SSatish Balayall : chk_petsc_dir info info_h chklib_dir deletelibs build shared 18efd74e9bSBarry Smith# 19fa527775SLois Curfman McInnes# Prints information about the system and version of PETSc being compiled 20efd74e9bSBarry Smith# 21efd74e9bSBarry Smithinfo: 22efd74e9bSBarry Smith -@echo "==========================================" 2311b6dc0cSBarry Smith -@echo " " 24d76296fbSBarry Smith -@echo "See docs/troubleshooting.html and docs/bugreporting.html" 25d76296fbSBarry Smith -@echo "for help with installation problems. Please send EVERYTHING" 26d76296fbSBarry Smith -@echo "printed out below when reporting problems" 2711b6dc0cSBarry Smith -@echo " " 2811b6dc0cSBarry Smith -@echo "To subscribe to the PETSc users mailing list, send mail to " 2911b6dc0cSBarry Smith -@echo "majordomo@mcs.anl.gov with the message: " 3011b6dc0cSBarry Smith -@echo "subscribe petsc-users" 3111b6dc0cSBarry Smith -@echo " " 32d76296fbSBarry Smith -@echo "==========================================" 331d91fb6eSBarry Smith -@echo On `date` on `hostname` 3430fdcc7aSBarry Smith -@echo Machine characteristics: `uname -a` 35efd74e9bSBarry Smith -@echo "-----------------------------------------" 3667b024f7SSatish Balay -@echo "Using C compiler: ${CC} ${COPTFLAGS} ${CCPPFLAGS}" 37c20d8eedSBarry Smith -@if [ -n "${C_CCV}" -a "${C_CCV}" != "unknown" ] ; then \ 389a43e735SSatish Balay echo "C Compiler version:" ; ${C_CCV} ; fi 39c20d8eedSBarry Smith -@if [ -n "${CXX_CCV}" -a "${CXX_CCV}" != "unknown" ] ; then \ 409a43e735SSatish Balay echo "C++ Compiler version:" ; ${CXX_CCV} ; fi 4167b024f7SSatish Balay -@echo "Using Fortran compiler: ${FC} ${FOPTFLAGS} ${FCPPFLAGS}" 4288b81347SBarry Smith -@if [ -n "${C_FCV}" -a "${C_FCV}" != "unknown" ] ; then \ 4388b81347SBarry Smith echo "Fortran Compiler version:" ; ${C_FCV} ; fi 4447794344SBarry Smith -@echo "-----------------------------------------" 45f209c26bSSatish Balay -@grep PETSC_VERSION_NUMBER ${PETSC_DIR}/include/petscversion.h | ${SED} "s/........//" 46f265ae5cSBarry Smith -@echo "-----------------------------------------" 47d77bb2e1SSatish Balay -@echo "Using PETSc flags: ${PETSCFLAGS} ${PCONF}" 4847794344SBarry Smith -@echo "-----------------------------------------" 49e0e703c1SSatish Balay -@echo "Using configuration flags:" 50f209c26bSSatish Balay -@grep "define " ${PETSC_DIR}/bmake/${PETSC_ARCH}/petscconf.h 5147794344SBarry Smith -@echo "-----------------------------------------" 52d77bb2e1SSatish Balay -@echo "Using include paths: ${PETSC_INCLUDE}" 5347794344SBarry Smith -@echo "-----------------------------------------" 54d77bb2e1SSatish Balay -@echo "Using PETSc directory: ${PETSC_DIR}" 55d77bb2e1SSatish Balay -@echo "Using PETSc arch: ${PETSC_ARCH}" 56efd74e9bSBarry Smith -@echo "------------------------------------------" 57d77bb2e1SSatish Balay -@echo "Using C linker: ${CLINKER}" 58d77bb2e1SSatish Balay -@echo "Using Fortran linker: ${FLINKER}" 59f2b01315SBarry Smith -@echo "Using libraries: ${PETSC_LIB}" 60efd74e9bSBarry Smith -@echo "==========================================" 61b8d81f61SBarry Smith# 62b8d81f61SBarry Smith# 63b8d81f61SBarry SmithMINFO = ${PETSC_DIR}/bmake/${PETSC_ARCH}/petscmachineinfo.h 64b8d81f61SBarry Smithinfo_h: 65ddbfe947SBarry Smith -@$(RM) -f MINFO ${MINFO} 66c5e9c7dfSBarry Smith -@echo "static char *petscmachineinfo = \" " >> MINFO 6734a92de5SBarry Smith -@echo "Libraries compiled on `date` on `hostname` " >> MINFO 68c5e9c7dfSBarry Smith -@echo Machine characteristics: `uname -a` "" >> MINFO 69f6a9982fSBarry Smith -@echo "Using PETSc directory: ${PETSC_DIR}" >> MINFO 70f6a9982fSBarry Smith -@echo "Using PETSc arch: ${PETSC_ARCH}" >> MINFO 7193520af8SSatish Balay -@echo "-----------------------------------------\"; " >> MINFO 7293520af8SSatish Balay -@echo "static char *petsccompilerinfo = \" " >> MINFO 73c5e9c7dfSBarry Smith -@echo "Using C compiler: ${CC} ${COPTFLAGS} ${CCPPFLAGS} " >> MINFO 74b8d81f61SBarry Smith -@if [ "${C_CCV}" -a "${C_CCV}" != "unknown" ] ; then \ 759a43e735SSatish Balay echo "C Compiler version:" >> MINFO ; ${C_CCV} >> MINFO 2>&1; fi 76b8d81f61SBarry Smith -@if [ "${CXX_CCV}" -a "${CXX_CCV}" != "unknown" ] ; then \ 779a43e735SSatish Balay echo "C++ Compiler version:" >> MINFO; ${CXX_CCV} >> MINFO 2>&1 ; fi 78c5e9c7dfSBarry Smith -@echo "Using Fortran compiler: ${FC} ${FOPTFLAGS} ${FCPPFLAGS}" >> MINFO 79b8d81f61SBarry Smith -@if [ "${C_FCV}" -a "${C_FCV}" != "unknown" ] ; then \ 80c5e9c7dfSBarry Smith echo "Fortran Compiler version:" >> MINFO ; ${C_FCV} >> MINFO 2>&1 ; fi 8193520af8SSatish Balay -@echo "-----------------------------------------\"; " >> MINFO 8293520af8SSatish Balay -@echo "static char *petsccompilerflagsinfo = \" " >> MINFO 83c5e9c7dfSBarry Smith -@echo "Using PETSc flags: ${PETSCFLAGS} ${PCONF}" >> MINFO 84c5e9c7dfSBarry Smith -@echo "-----------------------------------------" >> MINFO 85c5e9c7dfSBarry Smith -@echo "Using configuration flags:" >> MINFO 86c5e9c7dfSBarry Smith -@echo "-----------------------------------------" >> MINFO 87c5e9c7dfSBarry Smith -@echo "Using include paths: ${PETSC_INCLUDE}" >> MINFO 8893520af8SSatish Balay -@echo "------------------------------------------\"; " >> MINFO 8993520af8SSatish Balay -@echo "static char *petsclinkerinfo = \" " >> MINFO 90c5e9c7dfSBarry Smith -@echo "Using C linker: ${CLINKER}" >> MINFO 91c5e9c7dfSBarry Smith -@echo "Using Fortran linker: ${FLINKER}" >> MINFO 9293520af8SSatish Balay -@echo "Using libraries: ${PETSC_LIB} \"; " >> MINFO 9393520af8SSatish Balay -@cat MINFO | ${SED} -e 's/$$/ \\n\\/' | sed -e 's/\; \\n\\/\;/'> ${MINFO} 94a21fb8cbSBarry Smith -@chmod g+w ${MINFO} 959c0905fcSSatish Balay -@$(RM) MINFO 963677444aSSatish Balay# 97fa527775SLois Curfman McInnes# Builds the PETSc libraries 98fa527775SLois Curfman McInnes# This target also builds fortran77 and f90 interface 99f6a9982fSBarry Smith# files and compiles .F files 1003677444aSSatish Balay# 101f6a9982fSBarry Smithbuild: 102efd74e9bSBarry Smith -@echo "BEGINNING TO COMPILE LIBRARIES IN ALL DIRECTORIES" 10347794344SBarry Smith -@echo "=========================================" 10435d8aa7fSBarry Smith -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} PETSC_DIR=${PETSC_DIR} ACTION=libfast tree 105b87434adSSatish Balay ${RANLIB} ${PETSC_LIB_DIR}/*.a 106b87434adSSatish Balay -@chmod g+w ${PETSC_LIB_DIR}/*.a 1070b3634f8SBarry Smith -@echo "Completed building libraries" 10847794344SBarry Smith -@echo "=========================================" 10935ca7349SBarry Smith# 1103677444aSSatish Balay# Builds PETSc test examples for a given BOPT and architecture 1118744090aSBarry Smith# 1123677444aSSatish Balaytestexamples: info chkopts 1133677444aSSatish Balay -@echo "BEGINNING TO COMPILE AND RUN TEST EXAMPLES" 1143677444aSSatish Balay -@echo "Due to different numerical round-off on certain" 1153677444aSSatish Balay -@echo "machines some of the numbers may not match exactly." 1163677444aSSatish Balay -@echo "=========================================" 11735d8aa7fSBarry Smith -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} PETSC_DIR=${PETSC_DIR} ACTION=testexamples_1 tree 1183677444aSSatish Balay -@echo "Completed compiling and running test examples" 1193677444aSSatish Balay -@echo "=========================================" 1203677444aSSatish Balaytestfortran: info chkopts 1213677444aSSatish Balay -@echo "BEGINNING TO COMPILE AND RUN FORTRAN TEST EXAMPLES" 1223677444aSSatish Balay -@echo "=========================================" 1233677444aSSatish Balay -@echo "Due to different numerical round-off on certain" 1243677444aSSatish Balay -@echo "machines or the way Fortran formats numbers" 1253677444aSSatish Balay -@echo "some of the results may not match exactly." 1263677444aSSatish Balay -@echo "=========================================" 12735d8aa7fSBarry Smith -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} PETSC_DIR=${PETSC_DIR} ACTION=testexamples_3 tree 1283677444aSSatish Balay -@echo "Completed compiling and running Fortran test examples" 1293677444aSSatish Balay -@echo "=========================================" 13001c5c36fSSatish Balaytestexamples_uni: info chkopts 13101c5c36fSSatish Balay -@echo "BEGINNING TO COMPILE AND RUN TEST UNI-PROCESSOR EXAMPLES" 13201c5c36fSSatish Balay -@echo "Due to different numerical round-off on certain" 13301c5c36fSSatish Balay -@echo "machines some of the numbers may not match exactly." 13401c5c36fSSatish Balay -@echo "=========================================" 13535d8aa7fSBarry Smith -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} PETSC_DIR=${PETSC_DIR} ACTION=testexamples_4 tree 13601c5c36fSSatish Balay -@echo "Completed compiling and running uniprocessor test examples" 13701c5c36fSSatish Balay -@echo "=========================================" 1383677444aSSatish Balaytestfortran_uni: info chkopts 1393677444aSSatish Balay -@echo "BEGINNING TO COMPILE AND RUN TEST UNI-PROCESSOR FORTRAN EXAMPLES" 1403677444aSSatish Balay -@echo "Due to different numerical round-off on certain" 1413677444aSSatish Balay -@echo "machines some of the numbers may not match exactly." 1423677444aSSatish Balay -@echo "=========================================" 14335d8aa7fSBarry Smith -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} PETSC_DIR=${PETSC_DIR} ACTION=testexamples_9 tree 1443677444aSSatish Balay -@echo "Completed compiling and running uniprocessor fortran test examples" 1453677444aSSatish Balay -@echo "=========================================" 146ad96cc0dSLois Curfman McInnes 147f3eacedaSSatish Balay# Ranlib on the libraries 1488c37ef55SBarry Smithranlib: 149b87434adSSatish Balay ${RANLIB} ${PETSC_LIB_DIR}/*.a 15061523587SBarry Smith 15111b6ed10SLois Curfman McInnes# Deletes PETSc libraries 152f3eacedaSSatish Balaydeletelibs: chkopts_basic 153b87434adSSatish Balay -${RM} -f ${PETSC_LIB_DIR}/* 154d44968ceSBarry Smith 155467fbd6dSBarry Smith# 156467fbd6dSBarry Smith# Updates your PETSc version to the latest set of patches 157467fbd6dSBarry Smith# 158467fbd6dSBarry Smithupdate: 159467fbd6dSBarry Smith -@bin/petscupdate 1603677444aSSatish Balay 161*4918a6b0SSatish Balay# 162*4918a6b0SSatish Balay# Check if PETSC_DIR variable specified is valid 163*4918a6b0SSatish Balay# 164*4918a6b0SSatish Balaychk_petsc_dir: 165*4918a6b0SSatish Balay @if [ ! -f ${PETSC_DIR}/include/petscversion.h ]; then \ 166*4918a6b0SSatish Balay echo "Incorrect PETSC_DIR specified: ${PETSC_DIR}! Aborting build"; \ 167*4918a6b0SSatish Balay false; fi 168*4918a6b0SSatish Balay 1693677444aSSatish Balay# ------------------------------------------------------------------ 1703677444aSSatish Balay# 1713677444aSSatish Balay# All remaining actions are intended for PETSc developers only. 1723677444aSSatish Balay# PETSc users should not generally need to use these commands. 1733677444aSSatish Balay# 1743677444aSSatish Balay 17565783a8cSBarry Smith# To access the tags in EMACS, type M-x visit-tags-table and specify 17665783a8cSBarry Smith# the file petsc/TAGS. 17765783a8cSBarry Smith# 1) To move to where a PETSc function is defined, enter M-. and the 17865783a8cSBarry Smith# function name. 17965783a8cSBarry Smith# 2) To search for a string and move to the first occurrence, 18065783a8cSBarry Smith# use M-x tags-search and the string. 1817acb7333SLois Curfman McInnes# To locate later occurrences, use M-, 18211b6ed10SLois Curfman McInnes# Builds all etags files 18311b6ed10SLois Curfman McInnesalletags: 18401c05c5cSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSDIR=${PETSC_DIR} etags 18509f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSDIR=${PETSC_DIR} etags_complete 18609f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSDIR=${PETSC_DIR} etags_noexamples 18709f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSDIR=${PETSC_DIR} etags_examples 18809f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSDIR=${PETSC_DIR} etags_makefiles 18911b6ed10SLois Curfman McInnes# Builds the basic etags file. This should be employed by most users. 19020563c6bSBarry Smithetags: 19109f7043eSSatish Balay -${RM} ${TAGSDIR}/TAGS 19209f7043eSSatish Balay -touch ${TAGSDIR}/TAGS 19309f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_sourcec alltree 19441fa366cSBarry Smith -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_sourcej alltree 19509f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_sourceh alltree 19609f7043eSSatish Balay -cd src/fortran; ${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_sourcef alltree 19709f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_examplesc alltree 19809f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_examplesf alltree 19909f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_examplesch alltree 20009f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_examplesfh alltree 20109f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_makefile alltree 20209f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS etags_bmakefiles 20355194d7eSSatish Balay -chmod g+w TAGS 20429cdf679SBarry Smith# Builds complete etags list; only for PETSc developers. 20529cdf679SBarry Smithetags_complete: 20609f7043eSSatish Balay -${RM} ${TAGSDIR}/TAGS_COMPLETE 20709f7043eSSatish Balay -touch ${TAGSDIR}/TAGS_COMPLETE 20809f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_sourcec alltree 20941fa366cSBarry Smith -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_sourcej alltree 21009f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_sourceh alltree 21109f7043eSSatish Balay -cd src/fortran; ${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_sourcef alltree 21209f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_examplesc alltree 21309f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_examplesf alltree 21409f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_examplesch alltree 21509f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_examplesfh alltree 21609f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_makefile alltree 21709f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE etags_bmakefiles 21809f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_docs alltree 21909f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_scripts alltree 22055194d7eSSatish Balay -chmod g+w TAGS_COMPLETE 22111b6ed10SLois Curfman McInnes# Builds the etags file that excludes the examples directories 222bfce26a3SBarry Smithetags_noexamples: 22309f7043eSSatish Balay -${RM} ${TAGSDIR}/TAGS_NO_EXAMPLES 22409f7043eSSatish Balay -touch ${TAGSDIR}/TAGS_NO_EXAMPLES 22509f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES ACTION=etags_sourcec alltree 22641fa366cSBarry Smith -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES ACTION=etags_sourcej alltree 22709f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES ACTION=etags_sourceh alltree 22809f7043eSSatish Balay -cd src/fortran; ${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES ACTION=etags_sourcef alltree 22909f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES ACTION=etags_makefile alltree 23009f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES etags_bmakefiles 23109f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES ACTION=etags_docs alltree 23255194d7eSSatish Balay -chmod g+w TAGS_NO_EXAMPLES 23311b6ed10SLois Curfman McInnes# Builds the etags file for makefiles 234b16a3bb1SBarry Smithetags_makefiles: 2357e0368d4SSatish Balay -${RM} ${TAGSDIR}/TAGS_MAKEFILES 2367e0368d4SSatish Balay -touch ${TAGSDIR}/TAGS_MAKEFILES 2377e0368d4SSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_MAKEFILES ACTION=etags_makefile alltree 2387e0368d4SSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_MAKEFILES etags_bmakefiles 2397e0368d4SSatish Balay -chmod g+w TAGS_MAKEFILES 240dc80aa23SSatish Balay# Builds the etags file for examples 241dc80aa23SSatish Balayetags_examples: 24209f7043eSSatish Balay -${RM} ${TAGSDIR}/TAGS_EXAMPLES 24309f7043eSSatish Balay -touch ${TAGSDIR}/TAGS_EXAMPLES 24409f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_EXAMPLES ACTION=etags_examplesc alltree 24509f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_EXAMPLES ACTION=etags_examplesch alltree 24609f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_EXAMPLES ACTION=etags_examplesf alltree 24709f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_EXAMPLES ACTION=etags_examplesfh alltree 24855194d7eSSatish Balay -chmod g+w TAGS_EXAMPLES 2492176044fSSatish Balayetags_fexamples: 25009f7043eSSatish Balay -${RM} ${TAGSDIR}/TAGS_FEXAMPLES 25109f7043eSSatish Balay -touch ${TAGSDIR}/TAGS_FEXAMPLES 25209f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_FEXAMPLES ACTION=etags_examplesf alltree 25309f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_EXAMPLES ACTION=etags_examplesfh alltree 2542176044fSSatish Balay -chmod g+w TAGS_FEXAMPLES 255b38bb785SSatish Balay# 256f20f7ba3SSatish Balay# These are here for the target allci and allco, and etags 2573677444aSSatish Balay# 258b38bb785SSatish Balay 259f0475f33SSatish BalayBMAKEFILES = bmake/common* bmake/*/base bmake/*/base_variables bmake/*/base.site \ 260f7f63bceSSatish Balay bmake/*/petscconf.h bmake/*/petscfix.h bmake/win32/makefile.dos bmake/config/*.in \ 261b8adb7afSBarry Smith bmake/*/buildtest 2622f1ebae6SLois Curfman McInnesDOCS = bmake/readme bmake/petscconf.defs 26357c4596dSSatish BalaySCRIPTS = maint/addlinks maint/builddist maint/buildlinks maint/wwwman \ 26457c4596dSSatish Balay maint/xclude maint/crontab \ 26557c4596dSSatish Balay maint/autoftp include/foldinclude/generateincludes 26611b6ed10SLois Curfman McInnes 2676b91f8d1SSatish Balayupdatewebdocs: 2686b91f8d1SSatish Balay -chmod -R ug+w /mcs/tmp/petsc-tmp 2696b91f8d1SSatish Balay -chgrp -R petsc /mcs/tmp/petsc-tmp 2706b91f8d1SSatish Balay -/bin/rm -rf /mcs/tmp/petscdocs 2716b91f8d1SSatish Balay -/bin/cp -r /mcs/tmp/petsc-tmp/docs /mcs/tmp/petscdocs 2726b91f8d1SSatish Balay -maint/update-docs.py /mcs/tmp/petscdocs 2736b91f8d1SSatish Balay -find /mcs/tmp/petscdocs -type d -name "*" -exec chmod g+w {} \; 2746b91f8d1SSatish Balay -/bin/cp -r /mcs/tmp/petscdocs/* ${PETSC_DIR}/docs 2756b91f8d1SSatish Balay -/bin/rm -rf /mcs/tmp/petscdocs 2766b91f8d1SSatish Balay 2777f52c680SSatish Balay# Builds all the documentation - should be done every night 278074fadd8SSatish Balayalldoc: allmanualpages 279e15d8129SBarry Smith cd docs/tex/manual; ${OMAKE} manual.dvi manual.ps manual.html splitmanual.html 2807f52c680SSatish Balay 2812496ca06SSatish Balay# Deletes man pages (HTML version) 2822496ca06SSatish Balaydeletemanualpages: 283130c9832SBarry Smith ${RM} -f ${LOC}/docs/manualpages/*/*.html \ 284130c9832SBarry Smith ${LOC}/docs/manualpages/manualpages.cit 2852496ca06SSatish Balay 28611b6ed10SLois Curfman McInnes# Builds all versions of the man pages 287981c4779SBarry Smithallmanualpages: deletemanualpages 288130c9832SBarry Smith -${OMAKE} ACTION=manualpages_buildcite tree_basic LOC=${LOC} 289130c9832SBarry Smith -${OMAKE} ACTION=manualpages tree_basic LOC=${LOC} 29048b2c0e9SBarry Smith -maint/wwwindex.py ${PETSC_DIR} ${LOC} 291130c9832SBarry Smith -${OMAKE} ACTION=manexamples tree LOC=${LOC} 292130c9832SBarry Smith -${OMAKE} manconcepts LOC=${LOC} 29348b2c0e9SBarry Smith -${OMAKE} ACTION=getexlist tree LOC=${LOC} 29448b2c0e9SBarry Smith -${OMAKE} ACTION=exampleconcepts tree LOC=${LOC} 29548b2c0e9SBarry Smith -maint/helpindex.py ${PETSC_DIR} ${LOC} 296130c9832SBarry Smith -@chmod g+w ${LOC}/docs/manualpages/*/*.html 297e01137a2SSatish Balay 298435da068SBarry Smith# Builds .html versions of the source 299435da068SBarry Smithallhtml: 300779f5535SBarry Smith -${OMAKE} ACTION=html PETSC_DIR=${PETSC_DIR} tree LOC=${LOC} 301435da068SBarry Smith 302115a300dSBarry Smithallcleanhtml: 303115a300dSBarry Smith -${OMAKE} ACTION=cleanhtml PETSC_DIR=${PETSC_DIR} tree 304395565bcSBarry Smith 30511b6ed10SLois Curfman McInnes# Builds Fortran stub files 30611b6ed10SLois Curfman McInnesallfortranstubs: 30726cd32c0SSatish Balay -@include/foldinclude/generateincludes 308d77bb2e1SSatish Balay -@${RM} -f src/fortran/auto/*.c 309bbe92fcfSSatish Balay -${OMAKE} ACTION=fortranstubs tree_basic 310b9917d27SSatish Balay -@cd src/fortran/auto; ${OMAKE} fixfortran 3110a0eb2c5SBarry Smith chmod g+w src/fortran/auto/*.c 312f6ff2982SSatish Balay 313d55938c2SBarry Smithallci: 314f20f7ba3SSatish Balay -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=ci alltree 315b951964fSBarry Smith 316d55938c2SBarry Smithallco: 317f20f7ba3SSatish Balay -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=co alltree 318d55938c2SBarry Smith 319791d64f4SSatish Balay# usage make allrcslabel NEW_RCS_LABEL=v_2_0_28 320791d64f4SSatish Balayallrcslabel: 321791d64f4SSatish Balay -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} NEW_RCS_LABEL=${NEW_RCS_LABEL} ACTION=rcslabel alltree 322b334301eSBarry Smith# 323b334301eSBarry Smith# The commands below are for generating ADIC versions of the code; 324b334301eSBarry Smith# they are not currently used. 325b334301eSBarry Smith# 3265eea60f9SBarry Smithalladicignore: 327b87434adSSatish Balay -@${RM} ${INSTALL_LIB_DIR}/adicignore 328d77bb2e1SSatish Balay -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=adicignore tree 3295eea60f9SBarry Smith 3305eea60f9SBarry Smithalladic: 331d18b0ea7SBarry Smith -@echo "Beginning to compile ADIC source code in all directories" 33267b024f7SSatish Balay -@echo "Using ADIC compiler: ${ADIC_CC} ${CCPPFLAGS}" 333d18b0ea7SBarry Smith -@echo "=========================================" 33447794344SBarry Smith -@cd include ; \ 33567b024f7SSatish Balay ${ADIC_CC} -s -f 1 ${CCPPFLAGS} petsc.h 336d77bb2e1SSatish Balay -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=adic tree 33747794344SBarry Smith -@cd src/inline ; \ 338d77bb2e1SSatish Balay ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} adic 33977ed5343SBarry Smith -@cd src/blaslapack ; \ 340d77bb2e1SSatish Balay ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=adic tree 3416e81b665SBarry Smith 34247794344SBarry Smithalladiclib: 343d18b0ea7SBarry Smith -@echo "Beginning to compile ADIC libraries in all directories" 344d77bb2e1SSatish Balay -@echo "Using compiler: ${CC} ${COPTFLAGS}" 345d18b0ea7SBarry Smith -@echo "-----------------------------------------" 346d77bb2e1SSatish Balay -@echo "Using PETSc flags: ${PETSCFLAGS} ${PCONF}" 347d18b0ea7SBarry Smith -@echo "-----------------------------------------" 348e0e703c1SSatish Balay -@echo "Using configuration flags:" 349e0e703c1SSatish Balay -@grep "define " bmake/${PETSC_ARCH}/petscconf.h 350d18b0ea7SBarry Smith -@echo "-----------------------------------------" 351d77bb2e1SSatish Balay -@echo "Using include paths: ${PETSC_INCLUDE}" 352d18b0ea7SBarry Smith -@echo "-----------------------------------------" 353d77bb2e1SSatish Balay -@echo "Using PETSc directory: ${PETSC_DIR}" 354d77bb2e1SSatish Balay -@echo "Using PETSc arch: ${PETSC_ARCH}" 355d18b0ea7SBarry Smith -@echo "=========================================" 356b87434adSSatish Balay -@${RM} -f ${INSTALL_LIB_DIR}/*adic.a 357d77bb2e1SSatish Balay -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=adiclib tree 35877ed5343SBarry Smith -@cd src/blaslapack ; \ 359d77bb2e1SSatish Balay ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=adiclib tree 3607e351921SBarry Smith -@cd src/adic/src ; \ 361d77bb2e1SSatish Balay ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} lib 3625eea60f9SBarry Smith 3639e417c50SSatish Balay# ------------------------------------------------------------------------------- 3649e417c50SSatish Balay# 3659e417c50SSatish Balay# Some macros to check if the fortran interface is up-to-date. 3669e417c50SSatish Balay# 3679e417c50SSatish Balaycountfortranfunctions: 368d77bb2e1SSatish Balay -@cd ${PETSC_DIR}/src/fortran; egrep '^void' custom/*.c auto/*.c | \ 36985c7cd6cSSatish Balay cut -d'(' -f1 | tr -s ' ' | cut -d' ' -f2 | uniq | egrep -v "(^$$|Petsc)" | \ 3709e417c50SSatish Balay sed "s/_$$//" | sort > /tmp/countfortranfunctions 371b334301eSBarry Smith 3729e417c50SSatish Balaycountcfunctions: 37385c7cd6cSSatish Balay -@ grep extern ${PETSC_DIR}/include/*.h *.h | grep "(" | tr -s ' ' | \ 37485c7cd6cSSatish Balay cut -d'(' -f1 | cut -d' ' -f3 | grep -v "\*" | tr -s '\012' | \ 3759e417c50SSatish Balay tr 'A-Z' 'a-z' | sort > /tmp/countcfunctions 3769e417c50SSatish Balay 3779e417c50SSatish Balaydifffortranfunctions: countfortranfunctions countcfunctions 3789e417c50SSatish Balay -@echo -------------- Functions missing in the fortran interface --------------------- 3799700b7f8SSatish Balay -@${DIFF} /tmp/countcfunctions /tmp/countfortranfunctions | grep "^<" | cut -d' ' -f2 3809e417c50SSatish Balay -@echo ----------------- Functions missing in the C interface ------------------------ 3819700b7f8SSatish Balay -@${DIFF} /tmp/countcfunctions /tmp/countfortranfunctions | grep "^>" | cut -d' ' -f2 382d77bb2e1SSatish Balay -@${RM} /tmp/countcfunctions /tmp/countfortranfunctions 383b334301eSBarry Smith 3843f4c9a3aSSatish Balaycheckbadfortranstubs: 3853f4c9a3aSSatish Balay -@echo "=========================================" 3863f4c9a3aSSatish Balay -@echo "Functions with MPI_Comm as an Argument" 3873f4c9a3aSSatish Balay -@echo "=========================================" 388d77bb2e1SSatish Balay -@cd ${PETSC_DIR}/src/fortran/auto; grep '^void' *.c | grep 'MPI_Comm' | \ 38985c7cd6cSSatish Balay tr -s ' ' | tr -s ':' ' ' |cut -d'(' -f1 | cut -d' ' -f1,3 3903f4c9a3aSSatish Balay -@echo "=========================================" 3913f4c9a3aSSatish Balay -@echo "Functions with a String as an Argument" 3923f4c9a3aSSatish Balay -@echo "=========================================" 393d77bb2e1SSatish Balay -@cd ${PETSC_DIR}/src/fortran/auto; grep '^void' *.c | grep 'char \*' | \ 39485c7cd6cSSatish Balay tr -s ' ' | tr -s ':' ' ' |cut -d'(' -f1 | cut -d' ' -f1,3 3953f4c9a3aSSatish Balay -@echo "=========================================" 3963f4c9a3aSSatish Balay -@echo "Functions with Pointers to PETSc Objects as Argument" 3973f4c9a3aSSatish Balay -@echo "=========================================" 398d77bb2e1SSatish Balay -@cd ${PETSC_DIR}/src/fortran/auto; \ 39985c7cd6cSSatish Balay _p_OBJ=`grep _p_ ${PETSC_DIR}/include/*.h | tr -s ' ' | \ 40085c7cd6cSSatish Balay cut -d' ' -f 3 | tr -s '\012' | grep -v '{' | cut -d'*' -f1 | \ 4013f4c9a3aSSatish Balay sed "s/_p_//g" | tr -s '\012 ' ' *|' ` ; \ 4023f4c9a3aSSatish Balay for OBJ in $$_p_OBJ; do \ 40385c7cd6cSSatish Balay grep "$$OBJ \*" *.c | tr -s ' ' | tr -s ':' ' ' | \ 4043f4c9a3aSSatish Balay cut -d'(' -f1 | cut -d' ' -f1,3; \ 4053f4c9a3aSSatish Balay done 4063677444aSSatish Balay# Builds noise routines (not yet publically available) 4073677444aSSatish Balay# Note: libfast cannot run on .F files on certain machines, so we 4083677444aSSatish Balay# use lib and check for errors here. 40971fcab10SSatish Balaynoise: info chklib_dir 4103677444aSSatish Balay -@echo "Beginning to compile noise routines" 4113677444aSSatish Balay -@echo "=========================================" 4123677444aSSatish Balay -@cd src/snes/interface/noise; \ 4133677444aSSatish Balay ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} lib > trashz 2>&1; \ 4143677444aSSatish Balay grep -v clog trashz | grep -v "information sections" | \ 4153677444aSSatish Balay egrep -i '(Error|warning|Can)' >> /dev/null;\ 4163677444aSSatish Balay if [ "$$?" != 1 ]; then \ 4173677444aSSatish Balay cat trashz ; fi; ${RM} trashz 418b87434adSSatish Balay ${RANLIB} ${INSTALL_LIB_DIR}/libpetscsnes.a 419b87434adSSatish Balay -@chmod g+w ${INSTALL_LIB_DIR}/libpetscsnes.a 4203677444aSSatish Balay -@echo "Completed compiling noise routines" 4213677444aSSatish Balay -@echo "=========================================" 4223677444aSSatish Balay 4234556b810SBarry Smith# 4244556b810SBarry Smith# Automatically generates PETSc exercises in html from the tutorial examples. 425b6ea66eeSBarry Smith# 426b6ea66eeSBarry Smith# The introduction for each section is obtained from docs/manualpages/bop.${MANSEC} is under RCS and may be edited 427b6ea66eeSBarry Smith# (used also in introductions to the manual pages) 428b6ea66eeSBarry Smith# The overall introduction is in docs/exercises/introduction.html and is under RCS and may be edited 429b6ea66eeSBarry Smith# The list of exercises is from TUTORIALS in each directory's makefile 430b6ea66eeSBarry Smith# 4314556b810SBarry Smith# DO NOT EDIT the pageform.txt or *.htm files generated since they will be automatically replaced. 4324556b810SBarry Smith# The pagemaker rule is in the file bmake/common (at the bottom) 4334556b810SBarry Smith# 434843ae28eSBarry Smith# Eventually the line below will replace the two cd in the rule below, it is just this way now for speed 43597e8d271SBarry Smith# -@${OMAKE} PETSC_DIR=${PETSC_DIR} pagemaker 436843ae28eSBarry Smith# 43797e8d271SBarry Smithexercises: 43897e8d271SBarry Smith -@echo "=========================================" 43997e8d271SBarry Smith -@echo "Generating HTML tutorial exercises" 440467fbd6dSBarry Smith -@${RM} docs/pageform.txt 44197e8d271SBarry Smith -@echo "title=\"PETSc Exercises\"" > docs/pageform.txt 44297e8d271SBarry Smith -@echo "access_title=Exercise Sections" >> docs/pageform.txt 443beb1b3a5SBarry Smith -@echo "access_format=short" >> docs/pageform.txt 44497e8d271SBarry Smith -@echo "startpage=../exercises/introduction.htm" >> docs/pageform.txt 44597e8d271SBarry Smith -@echo "NONE title=\"Introduction\" command=link src=../exercises/introduction.htm" >> docs/pageform.txt 44697e8d271SBarry Smith -@echo "Generating HTML for individual directories" 44797e8d271SBarry Smith -@echo "=========================================" 448beb1b3a5SBarry Smith -@${OMAKE} PETSC_DIR=${PETSC_DIR} ACTION=pagemaker tree 44997e8d271SBarry Smith -@echo "Completed HTML for individual directories" 45097e8d271SBarry Smith -@echo "NONE title=\"<HR>\" " >> docs/pageform.txt; 45197e8d271SBarry Smith -@echo "NONE title=\"PETSc Documentation\" command=link src=../index.html target=replace" >> docs/pageform.txt 45297e8d271SBarry Smith /home/MPI/class/mpiexmpl/maint/makepage.new -pageform=docs/pageform.txt -access_extra=/dev/null -outdir=docs/exercises 45397e8d271SBarry Smith -@echo "=========================================" 45497e8d271SBarry Smith 45597e8d271SBarry Smith 45697e8d271SBarry Smith 45797e8d271SBarry Smith 45897e8d271SBarry Smith 45997e8d271SBarry Smith 46097e8d271SBarry Smith 46197e8d271SBarry Smith 46297e8d271SBarry Smith 46397e8d271SBarry Smith 46497e8d271SBarry Smith 46597e8d271SBarry Smith 46697e8d271SBarry Smith 46797e8d271SBarry Smith 46897e8d271SBarry Smith 46997e8d271SBarry Smith 470