173f4d377SMatthew Knepley# $Id: makefile,v 1.353 2001/08/28 19:43:38 balay Exp $ 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 11516d1546SSatish Balayinclude ${PETSC_DIR}/bmake/common/base 12516d1546SSatish Balayinclude ${PETSC_DIR}/bmake/common/test 1361523587SBarry Smith 14*c83b6f97SSatish Balay 15*c83b6f97SSatish Balay 163677444aSSatish Balay# 173677444aSSatish Balay# Basic targets to build PETSc libraries. 18fa527775SLois Curfman McInnes# all : builds the c, fortran, and f90 libraries 194918a6b0SSatish Balayall : chk_petsc_dir info info_h chklib_dir deletelibs build shared 20efd74e9bSBarry Smith# 21fa527775SLois Curfman McInnes# Prints information about the system and version of PETSc being compiled 22efd74e9bSBarry Smith# 23efd74e9bSBarry Smithinfo: 24efd74e9bSBarry Smith -@echo "==========================================" 2511b6dc0cSBarry Smith -@echo " " 26d76296fbSBarry Smith -@echo "See docs/troubleshooting.html and docs/bugreporting.html" 27d76296fbSBarry Smith -@echo "for help with installation problems. Please send EVERYTHING" 28d76296fbSBarry Smith -@echo "printed out below when reporting problems" 2911b6dc0cSBarry Smith -@echo " " 3011b6dc0cSBarry Smith -@echo "To subscribe to the PETSc users mailing list, send mail to " 3111b6dc0cSBarry Smith -@echo "majordomo@mcs.anl.gov with the message: " 3211b6dc0cSBarry Smith -@echo "subscribe petsc-users" 3311b6dc0cSBarry Smith -@echo " " 34d76296fbSBarry Smith -@echo "==========================================" 351d91fb6eSBarry Smith -@echo On `date` on `hostname` 3630fdcc7aSBarry Smith -@echo Machine characteristics: `uname -a` 37efd74e9bSBarry Smith -@echo "-----------------------------------------" 3867b024f7SSatish Balay -@echo "Using C compiler: ${CC} ${COPTFLAGS} ${CCPPFLAGS}" 39c20d8eedSBarry Smith -@if [ -n "${C_CCV}" -a "${C_CCV}" != "unknown" ] ; then \ 40ec289e47SSatish Balay echo "C Compiler version:" ; ${C_CCV} ; fi ; true 41c20d8eedSBarry Smith -@if [ -n "${CXX_CCV}" -a "${CXX_CCV}" != "unknown" ] ; then \ 42ec289e47SSatish Balay echo "C++ Compiler version:" ; ${CXX_CCV} ; fi; true 4367b024f7SSatish Balay -@echo "Using Fortran compiler: ${FC} ${FOPTFLAGS} ${FCPPFLAGS}" 4488b81347SBarry Smith -@if [ -n "${C_FCV}" -a "${C_FCV}" != "unknown" ] ; then \ 45ec289e47SSatish Balay echo "Fortran Compiler version:" ; ${C_FCV} ; fi; true 4647794344SBarry Smith -@echo "-----------------------------------------" 47f209c26bSSatish Balay -@grep PETSC_VERSION_NUMBER ${PETSC_DIR}/include/petscversion.h | ${SED} "s/........//" 48f265ae5cSBarry Smith -@echo "-----------------------------------------" 49d77bb2e1SSatish Balay -@echo "Using PETSc flags: ${PETSCFLAGS} ${PCONF}" 5047794344SBarry Smith -@echo "-----------------------------------------" 51e0e703c1SSatish Balay -@echo "Using configuration flags:" 52f209c26bSSatish Balay -@grep "define " ${PETSC_DIR}/bmake/${PETSC_ARCH}/petscconf.h 5347794344SBarry Smith -@echo "-----------------------------------------" 54d77bb2e1SSatish Balay -@echo "Using include paths: ${PETSC_INCLUDE}" 5547794344SBarry Smith -@echo "-----------------------------------------" 56d77bb2e1SSatish Balay -@echo "Using PETSc directory: ${PETSC_DIR}" 57d77bb2e1SSatish Balay -@echo "Using PETSc arch: ${PETSC_ARCH}" 58efd74e9bSBarry Smith -@echo "------------------------------------------" 59d77bb2e1SSatish Balay -@echo "Using C linker: ${CLINKER}" 60d77bb2e1SSatish Balay -@echo "Using Fortran linker: ${FLINKER}" 61f2b01315SBarry Smith -@echo "Using libraries: ${PETSC_LIB}" 62efd74e9bSBarry Smith -@echo "==========================================" 63b8d81f61SBarry Smith# 64b8d81f61SBarry Smith# 65b8d81f61SBarry SmithMINFO = ${PETSC_DIR}/bmake/${PETSC_ARCH}/petscmachineinfo.h 66b8d81f61SBarry Smithinfo_h: 67ddbfe947SBarry Smith -@$(RM) -f MINFO ${MINFO} 68c5e9c7dfSBarry Smith -@echo "static char *petscmachineinfo = \" " >> MINFO 6934a92de5SBarry Smith -@echo "Libraries compiled on `date` on `hostname` " >> MINFO 70c5e9c7dfSBarry Smith -@echo Machine characteristics: `uname -a` "" >> MINFO 71f6a9982fSBarry Smith -@echo "Using PETSc directory: ${PETSC_DIR}" >> MINFO 72f6a9982fSBarry Smith -@echo "Using PETSc arch: ${PETSC_ARCH}" >> MINFO 7393520af8SSatish Balay -@echo "-----------------------------------------\"; " >> MINFO 7493520af8SSatish Balay -@echo "static char *petsccompilerinfo = \" " >> MINFO 75c5e9c7dfSBarry Smith -@echo "Using C compiler: ${CC} ${COPTFLAGS} ${CCPPFLAGS} " >> MINFO 76b8d81f61SBarry Smith -@if [ "${C_CCV}" -a "${C_CCV}" != "unknown" ] ; then \ 77ec289e47SSatish Balay echo "C Compiler version:" >> MINFO ; ${C_CCV} >> MINFO 2>&1; fi ; true 78b8d81f61SBarry Smith -@if [ "${CXX_CCV}" -a "${CXX_CCV}" != "unknown" ] ; then \ 79ec289e47SSatish Balay echo "C++ Compiler version:" >> MINFO; ${CXX_CCV} >> MINFO 2>&1 ; fi ; true 80c5e9c7dfSBarry Smith -@echo "Using Fortran compiler: ${FC} ${FOPTFLAGS} ${FCPPFLAGS}" >> MINFO 81b8d81f61SBarry Smith -@if [ "${C_FCV}" -a "${C_FCV}" != "unknown" ] ; then \ 82ec289e47SSatish Balay echo "Fortran Compiler version:" >> MINFO ; ${C_FCV} >> MINFO 2>&1 ; fi ; true 8393520af8SSatish Balay -@echo "-----------------------------------------\"; " >> MINFO 8493520af8SSatish Balay -@echo "static char *petsccompilerflagsinfo = \" " >> MINFO 85c5e9c7dfSBarry Smith -@echo "Using PETSc flags: ${PETSCFLAGS} ${PCONF}" >> MINFO 86c5e9c7dfSBarry Smith -@echo "-----------------------------------------" >> MINFO 87c5e9c7dfSBarry Smith -@echo "Using configuration flags:" >> MINFO 88c5e9c7dfSBarry Smith -@echo "-----------------------------------------" >> MINFO 89c5e9c7dfSBarry Smith -@echo "Using include paths: ${PETSC_INCLUDE}" >> MINFO 9093520af8SSatish Balay -@echo "------------------------------------------\"; " >> MINFO 9193520af8SSatish Balay -@echo "static char *petsclinkerinfo = \" " >> MINFO 92c5e9c7dfSBarry Smith -@echo "Using C linker: ${CLINKER}" >> MINFO 93c5e9c7dfSBarry Smith -@echo "Using Fortran linker: ${FLINKER}" >> MINFO 9493520af8SSatish Balay -@echo "Using libraries: ${PETSC_LIB} \"; " >> MINFO 9593520af8SSatish Balay -@cat MINFO | ${SED} -e 's/$$/ \\n\\/' | sed -e 's/\; \\n\\/\;/'> ${MINFO} 96a21fb8cbSBarry Smith -@chmod g+w ${MINFO} 979c0905fcSSatish Balay -@$(RM) MINFO 983677444aSSatish Balay# 99fa527775SLois Curfman McInnes# Builds the PETSc libraries 100fa527775SLois Curfman McInnes# This target also builds fortran77 and f90 interface 101f6a9982fSBarry Smith# files and compiles .F files 1023677444aSSatish Balay# 103f6a9982fSBarry Smithbuild: 104efd74e9bSBarry Smith -@echo "BEGINNING TO COMPILE LIBRARIES IN ALL DIRECTORIES" 10547794344SBarry Smith -@echo "=========================================" 10635d8aa7fSBarry Smith -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} PETSC_DIR=${PETSC_DIR} ACTION=libfast tree 107b87434adSSatish Balay ${RANLIB} ${PETSC_LIB_DIR}/*.a 108b87434adSSatish Balay -@chmod g+w ${PETSC_LIB_DIR}/*.a 1090b3634f8SBarry Smith -@echo "Completed building libraries" 11047794344SBarry Smith -@echo "=========================================" 11135ca7349SBarry Smith# 1123677444aSSatish Balay# Builds PETSc test examples for a given BOPT and architecture 1138744090aSBarry Smith# 1143677444aSSatish Balaytestexamples: info chkopts 1153677444aSSatish Balay -@echo "BEGINNING TO COMPILE AND RUN TEST EXAMPLES" 1163677444aSSatish Balay -@echo "Due to different numerical round-off on certain" 1173677444aSSatish Balay -@echo "machines some of the numbers may not match exactly." 1183677444aSSatish Balay -@echo "=========================================" 11935d8aa7fSBarry Smith -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} PETSC_DIR=${PETSC_DIR} ACTION=testexamples_1 tree 1203677444aSSatish Balay -@echo "Completed compiling and running test examples" 1213677444aSSatish Balay -@echo "=========================================" 1223677444aSSatish Balaytestfortran: info chkopts 1233677444aSSatish Balay -@echo "BEGINNING TO COMPILE AND RUN FORTRAN TEST EXAMPLES" 1243677444aSSatish Balay -@echo "=========================================" 1253677444aSSatish Balay -@echo "Due to different numerical round-off on certain" 1263677444aSSatish Balay -@echo "machines or the way Fortran formats numbers" 1273677444aSSatish Balay -@echo "some of the results may not match exactly." 1283677444aSSatish Balay -@echo "=========================================" 12935d8aa7fSBarry Smith -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} PETSC_DIR=${PETSC_DIR} ACTION=testexamples_3 tree 1303677444aSSatish Balay -@echo "Completed compiling and running Fortran test examples" 1313677444aSSatish Balay -@echo "=========================================" 13201c5c36fSSatish Balaytestexamples_uni: info chkopts 13301c5c36fSSatish Balay -@echo "BEGINNING TO COMPILE AND RUN TEST UNI-PROCESSOR EXAMPLES" 13401c5c36fSSatish Balay -@echo "Due to different numerical round-off on certain" 13501c5c36fSSatish Balay -@echo "machines some of the numbers may not match exactly." 13601c5c36fSSatish Balay -@echo "=========================================" 13735d8aa7fSBarry Smith -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} PETSC_DIR=${PETSC_DIR} ACTION=testexamples_4 tree 13801c5c36fSSatish Balay -@echo "Completed compiling and running uniprocessor test examples" 13901c5c36fSSatish Balay -@echo "=========================================" 1403677444aSSatish Balaytestfortran_uni: info chkopts 1413677444aSSatish Balay -@echo "BEGINNING TO COMPILE AND RUN TEST UNI-PROCESSOR FORTRAN EXAMPLES" 1423677444aSSatish Balay -@echo "Due to different numerical round-off on certain" 1433677444aSSatish Balay -@echo "machines some of the numbers may not match exactly." 1443677444aSSatish Balay -@echo "=========================================" 14535d8aa7fSBarry Smith -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} PETSC_DIR=${PETSC_DIR} ACTION=testexamples_9 tree 1463677444aSSatish Balay -@echo "Completed compiling and running uniprocessor fortran test examples" 1473677444aSSatish Balay -@echo "=========================================" 148ad96cc0dSLois Curfman McInnes 149f3eacedaSSatish Balay# Ranlib on the libraries 1508c37ef55SBarry Smithranlib: 151b87434adSSatish Balay ${RANLIB} ${PETSC_LIB_DIR}/*.a 15261523587SBarry Smith 15311b6ed10SLois Curfman McInnes# Deletes PETSc libraries 154f3eacedaSSatish Balaydeletelibs: chkopts_basic 155b87434adSSatish Balay -${RM} -f ${PETSC_LIB_DIR}/* 156d44968ceSBarry Smith 157467fbd6dSBarry Smith# 158467fbd6dSBarry Smith# Updates your PETSc version to the latest set of patches 159467fbd6dSBarry Smith# 160467fbd6dSBarry Smithupdate: 161467fbd6dSBarry Smith -@bin/petscupdate 1623677444aSSatish Balay 1634918a6b0SSatish Balay# 1644918a6b0SSatish Balay# Check if PETSC_DIR variable specified is valid 1654918a6b0SSatish Balay# 1664918a6b0SSatish Balaychk_petsc_dir: 1674918a6b0SSatish Balay @if [ ! -f ${PETSC_DIR}/include/petscversion.h ]; then \ 1681390f061SBarry Smith echo "Incorrect PETSC_DIR specified: ${PETSC_DIR}!"; \ 1691390f061SBarry Smith echo "You need to use / to separate directories, not \\!"; \ 1701390f061SBarry Smith echo "Aborting build"; \ 1714918a6b0SSatish Balay false; fi 1724918a6b0SSatish Balay 1733677444aSSatish Balay# ------------------------------------------------------------------ 1743677444aSSatish Balay# 1753677444aSSatish Balay# All remaining actions are intended for PETSc developers only. 1763677444aSSatish Balay# PETSc users should not generally need to use these commands. 1773677444aSSatish Balay# 1783677444aSSatish Balay 17965783a8cSBarry Smith# To access the tags in EMACS, type M-x visit-tags-table and specify 18065783a8cSBarry Smith# the file petsc/TAGS. 18165783a8cSBarry Smith# 1) To move to where a PETSc function is defined, enter M-. and the 18265783a8cSBarry Smith# function name. 18365783a8cSBarry Smith# 2) To search for a string and move to the first occurrence, 18465783a8cSBarry Smith# use M-x tags-search and the string. 1857acb7333SLois Curfman McInnes# To locate later occurrences, use M-, 18611b6ed10SLois Curfman McInnes# Builds all etags files 18711b6ed10SLois Curfman McInnesalletags: 18801c05c5cSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSDIR=${PETSC_DIR} etags 18909f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSDIR=${PETSC_DIR} etags_complete 19009f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSDIR=${PETSC_DIR} etags_noexamples 19109f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSDIR=${PETSC_DIR} etags_examples 19209f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSDIR=${PETSC_DIR} etags_makefiles 19311b6ed10SLois Curfman McInnes# Builds the basic etags file. This should be employed by most users. 19420563c6bSBarry Smithetags: 19509f7043eSSatish Balay -${RM} ${TAGSDIR}/TAGS 19609f7043eSSatish Balay -touch ${TAGSDIR}/TAGS 19709f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_sourcec alltree 19841fa366cSBarry Smith -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_sourcej alltree 19909f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_sourceh alltree 20009f7043eSSatish Balay -cd src/fortran; ${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_sourcef alltree 20109f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_examplesc alltree 20209f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_examplesf alltree 20309f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_examplesch alltree 20409f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_examplesfh alltree 20509f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_makefile alltree 20609f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS etags_bmakefiles 20755194d7eSSatish Balay -chmod g+w TAGS 20829cdf679SBarry Smith# Builds complete etags list; only for PETSc developers. 20929cdf679SBarry Smithetags_complete: 21009f7043eSSatish Balay -${RM} ${TAGSDIR}/TAGS_COMPLETE 21109f7043eSSatish Balay -touch ${TAGSDIR}/TAGS_COMPLETE 21209f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_sourcec alltree 21341fa366cSBarry Smith -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_sourcej alltree 21409f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_sourceh alltree 21509f7043eSSatish Balay -cd src/fortran; ${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_sourcef alltree 21609f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_examplesc alltree 21709f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_examplesf alltree 21809f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_examplesch alltree 21909f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_examplesfh alltree 22009f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_makefile alltree 22109f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE etags_bmakefiles 22209f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_docs alltree 22309f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_scripts alltree 22455194d7eSSatish Balay -chmod g+w TAGS_COMPLETE 22511b6ed10SLois Curfman McInnes# Builds the etags file that excludes the examples directories 226bfce26a3SBarry Smithetags_noexamples: 22709f7043eSSatish Balay -${RM} ${TAGSDIR}/TAGS_NO_EXAMPLES 22809f7043eSSatish Balay -touch ${TAGSDIR}/TAGS_NO_EXAMPLES 22909f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES ACTION=etags_sourcec alltree 23041fa366cSBarry Smith -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES ACTION=etags_sourcej alltree 23109f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES ACTION=etags_sourceh alltree 23209f7043eSSatish Balay -cd src/fortran; ${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES ACTION=etags_sourcef alltree 23309f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES ACTION=etags_makefile alltree 23409f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES etags_bmakefiles 23509f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES ACTION=etags_docs alltree 23655194d7eSSatish Balay -chmod g+w TAGS_NO_EXAMPLES 23711b6ed10SLois Curfman McInnes# Builds the etags file for makefiles 238b16a3bb1SBarry Smithetags_makefiles: 2397e0368d4SSatish Balay -${RM} ${TAGSDIR}/TAGS_MAKEFILES 2407e0368d4SSatish Balay -touch ${TAGSDIR}/TAGS_MAKEFILES 2417e0368d4SSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_MAKEFILES ACTION=etags_makefile alltree 2427e0368d4SSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_MAKEFILES etags_bmakefiles 2437e0368d4SSatish Balay -chmod g+w TAGS_MAKEFILES 244dc80aa23SSatish Balay# Builds the etags file for examples 245dc80aa23SSatish Balayetags_examples: 24609f7043eSSatish Balay -${RM} ${TAGSDIR}/TAGS_EXAMPLES 24709f7043eSSatish Balay -touch ${TAGSDIR}/TAGS_EXAMPLES 24809f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_EXAMPLES ACTION=etags_examplesc alltree 24909f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_EXAMPLES ACTION=etags_examplesch alltree 25009f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_EXAMPLES ACTION=etags_examplesf alltree 25109f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_EXAMPLES ACTION=etags_examplesfh alltree 25255194d7eSSatish Balay -chmod g+w TAGS_EXAMPLES 2532176044fSSatish Balayetags_fexamples: 25409f7043eSSatish Balay -${RM} ${TAGSDIR}/TAGS_FEXAMPLES 25509f7043eSSatish Balay -touch ${TAGSDIR}/TAGS_FEXAMPLES 25609f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_FEXAMPLES ACTION=etags_examplesf alltree 25709f7043eSSatish Balay -${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_EXAMPLES ACTION=etags_examplesfh alltree 2582176044fSSatish Balay -chmod g+w TAGS_FEXAMPLES 259b38bb785SSatish Balay# 260f20f7ba3SSatish Balay# These are here for the target allci and allco, and etags 2613677444aSSatish Balay# 262b38bb785SSatish Balay 263516d1546SSatish BalayBMAKEFILES = bmake/common/base bmake/common/rules_win32 bmake/common/test \ 264516d1546SSatish Balay bmake/common/bopt* bmake/*/rules bmake/*/variables bmake/*/packages \ 265f7f63bceSSatish Balay bmake/*/petscconf.h bmake/*/petscfix.h bmake/win32/makefile.dos bmake/config/*.in \ 2667666ef6eSBarry Smith bmake/*/buildtest bmake/adic.init bmake/adicmf.init 2672f1ebae6SLois Curfman McInnesDOCS = bmake/readme bmake/petscconf.defs 26857c4596dSSatish BalaySCRIPTS = maint/addlinks maint/builddist maint/buildlinks maint/wwwman \ 26957c4596dSSatish Balay maint/xclude maint/crontab \ 27057c4596dSSatish Balay maint/autoftp include/foldinclude/generateincludes 27111b6ed10SLois Curfman McInnes 2726b91f8d1SSatish Balayupdatewebdocs: 2736b91f8d1SSatish Balay -chmod -R ug+w /mcs/tmp/petsc-tmp 2746b91f8d1SSatish Balay -chgrp -R petsc /mcs/tmp/petsc-tmp 2756b91f8d1SSatish Balay -/bin/rm -rf /mcs/tmp/petscdocs 2766b91f8d1SSatish Balay -/bin/cp -r /mcs/tmp/petsc-tmp/docs /mcs/tmp/petscdocs 2776b91f8d1SSatish Balay -maint/update-docs.py /mcs/tmp/petscdocs 2786b91f8d1SSatish Balay -find /mcs/tmp/petscdocs -type d -name "*" -exec chmod g+w {} \; 2796b91f8d1SSatish Balay -/bin/cp -r /mcs/tmp/petscdocs/* ${PETSC_DIR}/docs 2806b91f8d1SSatish Balay -/bin/rm -rf /mcs/tmp/petscdocs 2816b91f8d1SSatish Balay 2827f52c680SSatish Balay# Builds all the documentation - should be done every night 283074fadd8SSatish Balayalldoc: allmanualpages 284e15d8129SBarry Smith cd docs/tex/manual; ${OMAKE} manual.dvi manual.ps manual.html splitmanual.html 2857f52c680SSatish Balay 2862496ca06SSatish Balay# Deletes man pages (HTML version) 2872496ca06SSatish Balaydeletemanualpages: 288130c9832SBarry Smith ${RM} -f ${LOC}/docs/manualpages/*/*.html \ 289130c9832SBarry Smith ${LOC}/docs/manualpages/manualpages.cit 2902496ca06SSatish Balay 29111b6ed10SLois Curfman McInnes# Builds all versions of the man pages 292981c4779SBarry Smithallmanualpages: deletemanualpages 293130c9832SBarry Smith -${OMAKE} ACTION=manualpages_buildcite tree_basic LOC=${LOC} 294130c9832SBarry Smith -${OMAKE} ACTION=manualpages tree_basic LOC=${LOC} 29548b2c0e9SBarry Smith -maint/wwwindex.py ${PETSC_DIR} ${LOC} 296130c9832SBarry Smith -${OMAKE} ACTION=manexamples tree LOC=${LOC} 297130c9832SBarry Smith -${OMAKE} manconcepts LOC=${LOC} 29848b2c0e9SBarry Smith -${OMAKE} ACTION=getexlist tree LOC=${LOC} 29948b2c0e9SBarry Smith -${OMAKE} ACTION=exampleconcepts tree LOC=${LOC} 30048b2c0e9SBarry Smith -maint/helpindex.py ${PETSC_DIR} ${LOC} 301130c9832SBarry Smith -@chmod g+w ${LOC}/docs/manualpages/*/*.html 302e01137a2SSatish Balay 303435da068SBarry Smith# Builds .html versions of the source 304435da068SBarry Smithallhtml: 305779f5535SBarry Smith -${OMAKE} ACTION=html PETSC_DIR=${PETSC_DIR} tree LOC=${LOC} 306435da068SBarry Smith 307115a300dSBarry Smithallcleanhtml: 308115a300dSBarry Smith -${OMAKE} ACTION=cleanhtml PETSC_DIR=${PETSC_DIR} tree 309395565bcSBarry Smith 31011b6ed10SLois Curfman McInnes# Builds Fortran stub files 31111b6ed10SLois Curfman McInnesallfortranstubs: 31226cd32c0SSatish Balay -@include/foldinclude/generateincludes 313d77bb2e1SSatish Balay -@${RM} -f src/fortran/auto/*.c 314bbe92fcfSSatish Balay -${OMAKE} ACTION=fortranstubs tree_basic 315b9917d27SSatish Balay -@cd src/fortran/auto; ${OMAKE} fixfortran 3160a0eb2c5SBarry Smith chmod g+w src/fortran/auto/*.c 317f6ff2982SSatish Balay 318d55938c2SBarry Smithallci: 319f20f7ba3SSatish Balay -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=ci alltree 320b951964fSBarry Smith 321d55938c2SBarry Smithallco: 322f20f7ba3SSatish Balay -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=co alltree 323d55938c2SBarry Smith 324791d64f4SSatish Balay# usage make allrcslabel NEW_RCS_LABEL=v_2_0_28 325791d64f4SSatish Balayallrcslabel: 326791d64f4SSatish Balay -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} NEW_RCS_LABEL=${NEW_RCS_LABEL} ACTION=rcslabel alltree 327b334301eSBarry Smith# 328b334301eSBarry Smith# The commands below are for generating ADIC versions of the code; 329b334301eSBarry Smith# they are not currently used. 330b334301eSBarry Smith# 3315eea60f9SBarry Smithalladicignore: 332b87434adSSatish Balay -@${RM} ${INSTALL_LIB_DIR}/adicignore 333d77bb2e1SSatish Balay -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=adicignore tree 3345eea60f9SBarry Smith 3355eea60f9SBarry Smithalladic: 336d18b0ea7SBarry Smith -@echo "Beginning to compile ADIC source code in all directories" 33767b024f7SSatish Balay -@echo "Using ADIC compiler: ${ADIC_CC} ${CCPPFLAGS}" 338d18b0ea7SBarry Smith -@echo "=========================================" 33947794344SBarry Smith -@cd include ; \ 34067b024f7SSatish Balay ${ADIC_CC} -s -f 1 ${CCPPFLAGS} petsc.h 341d77bb2e1SSatish Balay -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=adic tree 34247794344SBarry Smith -@cd src/inline ; \ 343d77bb2e1SSatish Balay ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} adic 34477ed5343SBarry Smith -@cd src/blaslapack ; \ 345d77bb2e1SSatish Balay ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=adic tree 3466e81b665SBarry Smith 34747794344SBarry Smithalladiclib: 348d18b0ea7SBarry Smith -@echo "Beginning to compile ADIC libraries in all directories" 349d77bb2e1SSatish Balay -@echo "Using compiler: ${CC} ${COPTFLAGS}" 350d18b0ea7SBarry Smith -@echo "-----------------------------------------" 351d77bb2e1SSatish Balay -@echo "Using PETSc flags: ${PETSCFLAGS} ${PCONF}" 352d18b0ea7SBarry Smith -@echo "-----------------------------------------" 353e0e703c1SSatish Balay -@echo "Using configuration flags:" 354e0e703c1SSatish Balay -@grep "define " bmake/${PETSC_ARCH}/petscconf.h 355d18b0ea7SBarry Smith -@echo "-----------------------------------------" 356d77bb2e1SSatish Balay -@echo "Using include paths: ${PETSC_INCLUDE}" 357d18b0ea7SBarry Smith -@echo "-----------------------------------------" 358d77bb2e1SSatish Balay -@echo "Using PETSc directory: ${PETSC_DIR}" 359d77bb2e1SSatish Balay -@echo "Using PETSc arch: ${PETSC_ARCH}" 360d18b0ea7SBarry Smith -@echo "=========================================" 361b87434adSSatish Balay -@${RM} -f ${INSTALL_LIB_DIR}/*adic.a 362d77bb2e1SSatish Balay -@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=adiclib tree 36377ed5343SBarry Smith -@cd src/blaslapack ; \ 364d77bb2e1SSatish Balay ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=adiclib tree 3657e351921SBarry Smith -@cd src/adic/src ; \ 366d77bb2e1SSatish Balay ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} lib 3675eea60f9SBarry Smith 3689e417c50SSatish Balay# ------------------------------------------------------------------------------- 3699e417c50SSatish Balay# 3709e417c50SSatish Balay# Some macros to check if the fortran interface is up-to-date. 3719e417c50SSatish Balay# 3729e417c50SSatish Balaycountfortranfunctions: 373d77bb2e1SSatish Balay -@cd ${PETSC_DIR}/src/fortran; egrep '^void' custom/*.c auto/*.c | \ 37485c7cd6cSSatish Balay cut -d'(' -f1 | tr -s ' ' | cut -d' ' -f2 | uniq | egrep -v "(^$$|Petsc)" | \ 3759e417c50SSatish Balay sed "s/_$$//" | sort > /tmp/countfortranfunctions 376b334301eSBarry Smith 3779e417c50SSatish Balaycountcfunctions: 37885c7cd6cSSatish Balay -@ grep extern ${PETSC_DIR}/include/*.h *.h | grep "(" | tr -s ' ' | \ 37985c7cd6cSSatish Balay cut -d'(' -f1 | cut -d' ' -f3 | grep -v "\*" | tr -s '\012' | \ 3809e417c50SSatish Balay tr 'A-Z' 'a-z' | sort > /tmp/countcfunctions 3819e417c50SSatish Balay 3829e417c50SSatish Balaydifffortranfunctions: countfortranfunctions countcfunctions 3839e417c50SSatish Balay -@echo -------------- Functions missing in the fortran interface --------------------- 3849700b7f8SSatish Balay -@${DIFF} /tmp/countcfunctions /tmp/countfortranfunctions | grep "^<" | cut -d' ' -f2 3859e417c50SSatish Balay -@echo ----------------- Functions missing in the C interface ------------------------ 3869700b7f8SSatish Balay -@${DIFF} /tmp/countcfunctions /tmp/countfortranfunctions | grep "^>" | cut -d' ' -f2 387d77bb2e1SSatish Balay -@${RM} /tmp/countcfunctions /tmp/countfortranfunctions 388b334301eSBarry Smith 3893f4c9a3aSSatish Balaycheckbadfortranstubs: 3903f4c9a3aSSatish Balay -@echo "=========================================" 3913f4c9a3aSSatish Balay -@echo "Functions with MPI_Comm as an Argument" 3923f4c9a3aSSatish Balay -@echo "=========================================" 393d77bb2e1SSatish Balay -@cd ${PETSC_DIR}/src/fortran/auto; grep '^void' *.c | grep 'MPI_Comm' | \ 39485c7cd6cSSatish Balay tr -s ' ' | tr -s ':' ' ' |cut -d'(' -f1 | cut -d' ' -f1,3 3953f4c9a3aSSatish Balay -@echo "=========================================" 3963f4c9a3aSSatish Balay -@echo "Functions with a String as an Argument" 3973f4c9a3aSSatish Balay -@echo "=========================================" 398d77bb2e1SSatish Balay -@cd ${PETSC_DIR}/src/fortran/auto; grep '^void' *.c | grep 'char \*' | \ 39985c7cd6cSSatish Balay tr -s ' ' | tr -s ':' ' ' |cut -d'(' -f1 | cut -d' ' -f1,3 4003f4c9a3aSSatish Balay -@echo "=========================================" 4013f4c9a3aSSatish Balay -@echo "Functions with Pointers to PETSc Objects as Argument" 4023f4c9a3aSSatish Balay -@echo "=========================================" 403d77bb2e1SSatish Balay -@cd ${PETSC_DIR}/src/fortran/auto; \ 40485c7cd6cSSatish Balay _p_OBJ=`grep _p_ ${PETSC_DIR}/include/*.h | tr -s ' ' | \ 40585c7cd6cSSatish Balay cut -d' ' -f 3 | tr -s '\012' | grep -v '{' | cut -d'*' -f1 | \ 4063f4c9a3aSSatish Balay sed "s/_p_//g" | tr -s '\012 ' ' *|' ` ; \ 4073f4c9a3aSSatish Balay for OBJ in $$_p_OBJ; do \ 40885c7cd6cSSatish Balay grep "$$OBJ \*" *.c | tr -s ' ' | tr -s ':' ' ' | \ 4093f4c9a3aSSatish Balay cut -d'(' -f1 | cut -d' ' -f1,3; \ 4103f4c9a3aSSatish Balay done 4113677444aSSatish Balay# Builds noise routines (not yet publically available) 4123677444aSSatish Balay# Note: libfast cannot run on .F files on certain machines, so we 4133677444aSSatish Balay# use lib and check for errors here. 41471fcab10SSatish Balaynoise: info chklib_dir 4153677444aSSatish Balay -@echo "Beginning to compile noise routines" 4163677444aSSatish Balay -@echo "=========================================" 4173677444aSSatish Balay -@cd src/snes/interface/noise; \ 4183677444aSSatish Balay ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} lib > trashz 2>&1; \ 4193677444aSSatish Balay grep -v clog trashz | grep -v "information sections" | \ 4203677444aSSatish Balay egrep -i '(Error|warning|Can)' >> /dev/null;\ 4213677444aSSatish Balay if [ "$$?" != 1 ]; then \ 4223677444aSSatish Balay cat trashz ; fi; ${RM} trashz 423b87434adSSatish Balay ${RANLIB} ${INSTALL_LIB_DIR}/libpetscsnes.a 424b87434adSSatish Balay -@chmod g+w ${INSTALL_LIB_DIR}/libpetscsnes.a 4253677444aSSatish Balay -@echo "Completed compiling noise routines" 4263677444aSSatish Balay -@echo "=========================================" 4273677444aSSatish Balay 4284556b810SBarry Smith# 4294556b810SBarry Smith# Automatically generates PETSc exercises in html from the tutorial examples. 430b6ea66eeSBarry Smith# 431b6ea66eeSBarry Smith# The introduction for each section is obtained from docs/manualpages/bop.${MANSEC} is under RCS and may be edited 432b6ea66eeSBarry Smith# (used also in introductions to the manual pages) 433b6ea66eeSBarry Smith# The overall introduction is in docs/exercises/introduction.html and is under RCS and may be edited 434b6ea66eeSBarry Smith# The list of exercises is from TUTORIALS in each directory's makefile 435b6ea66eeSBarry Smith# 4364556b810SBarry Smith# DO NOT EDIT the pageform.txt or *.htm files generated since they will be automatically replaced. 4374556b810SBarry Smith# The pagemaker rule is in the file bmake/common (at the bottom) 4384556b810SBarry Smith# 439843ae28eSBarry Smith# Eventually the line below will replace the two cd in the rule below, it is just this way now for speed 44097e8d271SBarry Smith# -@${OMAKE} PETSC_DIR=${PETSC_DIR} pagemaker 441843ae28eSBarry Smith# 44297e8d271SBarry Smithexercises: 44397e8d271SBarry Smith -@echo "=========================================" 44497e8d271SBarry Smith -@echo "Generating HTML tutorial exercises" 445467fbd6dSBarry Smith -@${RM} docs/pageform.txt 44697e8d271SBarry Smith -@echo "title=\"PETSc Exercises\"" > docs/pageform.txt 44797e8d271SBarry Smith -@echo "access_title=Exercise Sections" >> docs/pageform.txt 448beb1b3a5SBarry Smith -@echo "access_format=short" >> docs/pageform.txt 44997e8d271SBarry Smith -@echo "startpage=../exercises/introduction.htm" >> docs/pageform.txt 45097e8d271SBarry Smith -@echo "NONE title=\"Introduction\" command=link src=../exercises/introduction.htm" >> docs/pageform.txt 45197e8d271SBarry Smith -@echo "Generating HTML for individual directories" 45297e8d271SBarry Smith -@echo "=========================================" 453beb1b3a5SBarry Smith -@${OMAKE} PETSC_DIR=${PETSC_DIR} ACTION=pagemaker tree 45497e8d271SBarry Smith -@echo "Completed HTML for individual directories" 45597e8d271SBarry Smith -@echo "NONE title=\"<HR>\" " >> docs/pageform.txt; 45697e8d271SBarry Smith -@echo "NONE title=\"PETSc Documentation\" command=link src=../index.html target=replace" >> docs/pageform.txt 45797e8d271SBarry Smith /home/MPI/class/mpiexmpl/maint/makepage.new -pageform=docs/pageform.txt -access_extra=/dev/null -outdir=docs/exercises 45897e8d271SBarry Smith -@echo "=========================================" 45997e8d271SBarry Smith 46097e8d271SBarry Smith 46197e8d271SBarry Smith 46297e8d271SBarry Smith 46397e8d271SBarry Smith 46497e8d271SBarry Smith 46597e8d271SBarry Smith 46697e8d271SBarry Smith 46797e8d271SBarry Smith 46897e8d271SBarry Smith 46997e8d271SBarry Smith 47097e8d271SBarry Smith 47197e8d271SBarry Smith 47297e8d271SBarry Smith 47397e8d271SBarry Smith 47497e8d271SBarry Smith 475