xref: /petsc/makefile (revision 11b6dc0cd1f93e71c6723b5b96d9ddfd9772b54e)
1*11b6dc0cSBarry Smith# $Id: makefile,v 1.288 1999/05/10 16:28:49 balay 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*11b6dc0cSBarry Smith	-@echo " "
23d76296fbSBarry Smith	-@echo "See docs/troubleshooting.html and docs/bugreporting.html"
24d76296fbSBarry Smith	-@echo "for help with installation problems. Please send EVERYTHING"
25d76296fbSBarry Smith	-@echo "printed out below when reporting problems"
26*11b6dc0cSBarry Smith	-@echo " "
27*11b6dc0cSBarry Smith	-@echo "To subscribe to the PETSc users mailing list, send mail to "
28*11b6dc0cSBarry Smith	-@echo "majordomo@mcs.anl.gov with the message: "
29*11b6dc0cSBarry Smith	-@echo "subscribe petsc-users"
30*11b6dc0cSBarry Smith	-@echo " "
31d76296fbSBarry Smith	-@echo "=========================================="
321d91fb6eSBarry Smith	-@echo On `date` on `hostname`
3330fdcc7aSBarry Smith	-@echo Machine characteristics: `uname -a`
34efd74e9bSBarry Smith	-@echo "-----------------------------------------"
3567b024f7SSatish Balay	-@echo "Using C compiler: ${CC} ${COPTFLAGS} ${CCPPFLAGS}"
36d77bb2e1SSatish Balay	-@if [ -n "${CCV}" -a "${CCV}" != "unknown" ] ; then \
37d77bb2e1SSatish Balay	  echo "Compiler version:" `${CCV}` ; fi
3867b024f7SSatish Balay	-@echo "Using Fortran compiler: ${FC} ${FOPTFLAGS} ${FCPPFLAGS}"
3947794344SBarry Smith	-@echo "-----------------------------------------"
4023f40d59SSatish Balay	-@grep PETSC_VERSION_NUMBER include/petsc.h | sed "s/........//"
41f265ae5cSBarry Smith	-@echo "-----------------------------------------"
42d77bb2e1SSatish Balay	-@echo "Using PETSc flags: ${PETSCFLAGS} ${PCONF}"
4347794344SBarry Smith	-@echo "-----------------------------------------"
44e0e703c1SSatish Balay	-@echo "Using configuration flags:"
4504d10f81SBarry Smith	-@grep "define " bmake/${PETSC_ARCH}/petscconf.h
4647794344SBarry Smith	-@echo "-----------------------------------------"
47d77bb2e1SSatish Balay	-@echo "Using include paths: ${PETSC_INCLUDE}"
4847794344SBarry Smith	-@echo "-----------------------------------------"
49d77bb2e1SSatish Balay	-@echo "Using PETSc directory: ${PETSC_DIR}"
50d77bb2e1SSatish Balay	-@echo "Using PETSc arch: ${PETSC_ARCH}"
51efd74e9bSBarry Smith	-@echo "------------------------------------------"
52d77bb2e1SSatish Balay	-@echo "Using C linker: ${CLINKER}"
53d77bb2e1SSatish Balay	-@echo "Using Fortran linker: ${FLINKER}"
54f2b01315SBarry Smith	-@echo "Using libraries: ${PETSC_LIB}"
55efd74e9bSBarry Smith	-@echo "=========================================="
56efd74e9bSBarry Smith
573677444aSSatish Balay#
58fa527775SLois Curfman McInnes# Builds the PETSc libraries
59fa527775SLois Curfman McInnes# This target also builds fortran77 and f90 interface
60fa527775SLois Curfman McInnes# files. (except compiling *.F files)
613677444aSSatish Balay#
6260262a0eSSatish Balaybuild_c:
63efd74e9bSBarry Smith	-@echo "BEGINNING TO COMPILE LIBRARIES IN ALL DIRECTORIES"
6447794344SBarry Smith	-@echo "========================================="
6575198762SBarry Smith	-@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=libfast  tree
66c1959989SSatish Balay	-@cd ${PETSC_DIR}/src/sys/src/time ; \
67c1959989SSatish Balay	${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} rs6000_asmtime
68c1959989SSatish Balay	${RANLIB} ${PDIR}/*.a
69d77bb2e1SSatish Balay	-@chmod g+w  ${PDIR}/*.a
700b3634f8SBarry Smith	-@echo "Completed building libraries"
7147794344SBarry Smith	-@echo "========================================="
720b3634f8SBarry Smith
7335ca7349SBarry Smith#
7428881d8bSBarry Smith# Builds PETSc Fortran source
7511b6ed10SLois Curfman McInnes# Note:	 libfast cannot run on .F files on certain machines, so we
769984b5c5SSatish Balay# use libf to compile the fortran source files.
77fa527775SLois Curfman McInnes#
7860262a0eSSatish Balaybuild_fortran:
7928881d8bSBarry Smith	-@echo "BEGINNING TO COMPILE FORTRAN SOURCE"
8047794344SBarry Smith	-@echo "========================================="
81b16a3bb1SBarry Smith	-@cd src/fortran/custom; \
8228881d8bSBarry Smith	  ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} libf clean
83971c2310SBarry Smith	-@cd src/fortran/kernels; \
844a903031SSatish Balay	  ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} libf clean
859984b5c5SSatish Balay	${RANLIB} ${PDIR}/libpetscfortran.a
86d08da015SSatish Balay	${RANLIB} ${PDIR}/libpetsc.a
87d77bb2e1SSatish Balay	-@chmod g+w  ${PDIR}/*.a
8828881d8bSBarry Smith	-@echo "Completed compiling Fortran source"
89971c2310SBarry Smith	-@echo "========================================="
90971c2310SBarry Smith
91efd74e9bSBarry Smithpetscblas: info chkpetsc_dir
92d77bb2e1SSatish Balay	-${RM} -f ${PDIR}/libpetscblas.*
93efd74e9bSBarry Smith	-@echo "BEGINNING TO COMPILE C VERSION OF BLAS AND LAPACK"
9466341c5dSSatish Balay	-@echo "========================================="
9577ed5343SBarry Smith	-@cd src/blaslapack; \
96d77bb2e1SSatish Balay	  ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=libfast tree
97d77bb2e1SSatish Balay	${RANLIB} ${PDIR}/libpetscblas.a
98d77bb2e1SSatish Balay	-@chmod g+w  ${PDIR}/*.a
99229e8d5cSBarry Smith	-@echo "Completed compiling C version of BLAS and LAPACK"
10066341c5dSSatish Balay	-@echo "========================================="
1011a4ded38SSatish Balay
10266341c5dSSatish Balay
1033677444aSSatish Balay# Builds PETSc test examples for a given BOPT and architecture
1043677444aSSatish Balaytestexamples: info chkopts
1053677444aSSatish Balay	-@echo "BEGINNING TO COMPILE AND RUN TEST EXAMPLES"
1063677444aSSatish Balay	-@echo "Due to different numerical round-off on certain"
1073677444aSSatish Balay	-@echo "machines some of the numbers may not match exactly."
1083677444aSSatish Balay	-@echo "========================================="
1093677444aSSatish Balay	-@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} \
1103677444aSSatish Balay	   ACTION=testexamples_1  tree
1113677444aSSatish Balay	-@echo "Completed compiling and running test examples"
1123677444aSSatish Balay	-@echo "========================================="
1133677444aSSatish Balay
1143677444aSSatish Balay# Builds PETSc test examples for a given BOPT and architecture
1153677444aSSatish Balaytestfortran: info chkopts
1163677444aSSatish Balay	-@echo "BEGINNING TO COMPILE AND RUN FORTRAN TEST EXAMPLES"
1173677444aSSatish Balay	-@echo "========================================="
1183677444aSSatish Balay	-@echo "Due to different numerical round-off on certain"
1193677444aSSatish Balay	-@echo "machines or the way Fortran formats numbers"
1203677444aSSatish Balay	-@echo "some of the results may not match exactly."
1213677444aSSatish Balay	-@echo "========================================="
1223677444aSSatish Balay	-@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} \
1233677444aSSatish Balay	   ACTION=testexamples_3  tree
1243677444aSSatish Balay	-@echo "Completed compiling and running Fortran test examples"
1253677444aSSatish Balay	-@echo "========================================="
1263677444aSSatish Balay
1273677444aSSatish Balay# Builds PETSc test examples for a given BOPT and architecture
12801c5c36fSSatish Balaytestexamples_uni: info chkopts
12901c5c36fSSatish Balay	-@echo "BEGINNING TO COMPILE AND RUN TEST UNI-PROCESSOR EXAMPLES"
13001c5c36fSSatish Balay	-@echo "Due to different numerical round-off on certain"
13101c5c36fSSatish Balay	-@echo "machines some of the numbers may not match exactly."
13201c5c36fSSatish Balay	-@echo "========================================="
13301c5c36fSSatish Balay	-@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} \
13401c5c36fSSatish Balay	   ACTION=testexamples_4  tree
13501c5c36fSSatish Balay	-@echo "Completed compiling and running uniprocessor test examples"
13601c5c36fSSatish Balay	-@echo "========================================="
1373677444aSSatish Balaytestfortran_uni: info chkopts
1383677444aSSatish Balay	-@echo "BEGINNING TO COMPILE AND RUN TEST UNI-PROCESSOR FORTRAN EXAMPLES"
1393677444aSSatish Balay	-@echo "Due to different numerical round-off on certain"
1403677444aSSatish Balay	-@echo "machines some of the numbers may not match exactly."
1413677444aSSatish Balay	-@echo "========================================="
1423677444aSSatish Balay	-@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} \
1433677444aSSatish Balay	   ACTION=testexamples_9  tree
1443677444aSSatish Balay	-@echo "Completed compiling and running uniprocessor fortran test examples"
1453677444aSSatish Balay	-@echo "========================================="
146*11b6dc0cSBarry Smithmatlabcodes:
147*11b6dc0cSBarry Smith	-@echo "BEGINNING TO COMPILE MATLAB INTERFACE"
148*11b6dc0cSBarry Smith	-@cd src/sys/src/viewer/impls/socket/matlab; ${OMAKE} BOPT=g matlabcodes  PETSC_ARCH=${PETSC_ARCH}
149ad96cc0dSLois Curfman McInnes
150f3eacedaSSatish Balay# Ranlib on the libraries
1518c37ef55SBarry Smithranlib:
152d77bb2e1SSatish Balay	${RANLIB} ${PDIR}/*.a
15361523587SBarry Smith
15411b6ed10SLois Curfman McInnes# Deletes PETSc libraries
155f3eacedaSSatish Balaydeletelibs: chkopts_basic
156d77bb2e1SSatish Balay	-${RM} -f ${PDIR}/*
157d44968ceSBarry Smith
1583677444aSSatish Balay
1593677444aSSatish Balay# ------------------------------------------------------------------
1603677444aSSatish Balay#
1613677444aSSatish Balay# All remaining actions are intended for PETSc developers only.
1623677444aSSatish Balay# PETSc users should not generally need to use these commands.
1633677444aSSatish Balay#
1643677444aSSatish Balay
16565783a8cSBarry Smith# To access the tags in EMACS, type M-x visit-tags-table and specify
16665783a8cSBarry Smith# the file petsc/TAGS.
16765783a8cSBarry Smith# 1) To move to where a PETSc function is defined, enter M-. and the
16865783a8cSBarry Smith#     function name.
16965783a8cSBarry Smith# 2) To search for a string and move to the first occurrence,
17065783a8cSBarry Smith#     use M-x tags-search and the string.
1717acb7333SLois Curfman McInnes#     To locate later occurrences, use M-,
17211b6ed10SLois Curfman McInnes# Builds all etags files
17311b6ed10SLois Curfman McInnesalletags:
17401c05c5cSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSDIR=${PETSC_DIR} etags
17509f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSDIR=${PETSC_DIR} etags_complete
17609f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSDIR=${PETSC_DIR} etags_noexamples
17709f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSDIR=${PETSC_DIR} etags_examples
17809f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSDIR=${PETSC_DIR} etags_makefiles
17911b6ed10SLois Curfman McInnes# Builds the basic etags file.	This should be employed by most users.
18020563c6bSBarry Smithetags:
18109f7043eSSatish Balay	-${RM} ${TAGSDIR}/TAGS
18209f7043eSSatish Balay	-touch ${TAGSDIR}/TAGS
18309f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_sourcec alltree
18409f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_sourceh alltree
18509f7043eSSatish Balay	-cd src/fortran; ${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_sourcef alltree
18609f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_examplesc alltree
18709f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_examplesf alltree
18809f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_examplesch alltree
18909f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_examplesfh alltree
19009f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS ACTION=etags_makefile alltree
19109f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS etags_bmakefiles
19255194d7eSSatish Balay	-chmod g+w TAGS
19329cdf679SBarry Smith# Builds complete etags list; only for PETSc developers.
19429cdf679SBarry Smithetags_complete:
19509f7043eSSatish Balay	-${RM} ${TAGSDIR}/TAGS_COMPLETE
19609f7043eSSatish Balay	-touch ${TAGSDIR}/TAGS_COMPLETE
19709f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_sourcec alltree
19809f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_sourceh alltree
19909f7043eSSatish Balay	-cd src/fortran; ${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_sourcef alltree
20009f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_examplesc alltree
20109f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_examplesf alltree
20209f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_examplesch alltree
20309f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_examplesfh alltree
20409f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_makefile alltree
20509f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE etags_bmakefiles
20609f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_docs alltree
20709f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_COMPLETE ACTION=etags_scripts alltree
20855194d7eSSatish Balay	-chmod g+w TAGS_COMPLETE
20911b6ed10SLois Curfman McInnes# Builds the etags file that excludes the examples directories
210bfce26a3SBarry Smithetags_noexamples:
21109f7043eSSatish Balay	-${RM} ${TAGSDIR}/TAGS_NO_EXAMPLES
21209f7043eSSatish Balay	-touch ${TAGSDIR}/TAGS_NO_EXAMPLES
21309f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES ACTION=etags_sourcec alltree
21409f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES ACTION=etags_sourceh alltree
21509f7043eSSatish Balay	-cd src/fortran; ${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES ACTION=etags_sourcef alltree
21609f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES ACTION=etags_makefile alltree
21709f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES etags_bmakefiles
21809f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_NO_EXAMPLES ACTION=etags_docs alltree
21955194d7eSSatish Balay	-chmod g+w TAGS_NO_EXAMPLES
22011b6ed10SLois Curfman McInnes# Builds the etags file for makefiles
221b16a3bb1SBarry Smithetags_makefiles:
2227e0368d4SSatish Balay	-${RM} ${TAGSDIR}/TAGS_MAKEFILES
2237e0368d4SSatish Balay	-touch ${TAGSDIR}/TAGS_MAKEFILES
2247e0368d4SSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_MAKEFILES ACTION=etags_makefile alltree
2257e0368d4SSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_MAKEFILES etags_bmakefiles
2267e0368d4SSatish Balay	-chmod g+w TAGS_MAKEFILES
227dc80aa23SSatish Balay# Builds the etags file for examples
228dc80aa23SSatish Balayetags_examples:
22909f7043eSSatish Balay	-${RM} ${TAGSDIR}/TAGS_EXAMPLES
23009f7043eSSatish Balay	-touch ${TAGSDIR}/TAGS_EXAMPLES
23109f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_EXAMPLES ACTION=etags_examplesc alltree
23209f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_EXAMPLES ACTION=etags_examplesch alltree
23309f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_EXAMPLES ACTION=etags_examplesf alltree
23409f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_EXAMPLES ACTION=etags_examplesfh alltree
23555194d7eSSatish Balay	-chmod g+w TAGS_EXAMPLES
2362176044fSSatish Balayetags_fexamples:
23709f7043eSSatish Balay	-${RM} ${TAGSDIR}/TAGS_FEXAMPLES
23809f7043eSSatish Balay	-touch ${TAGSDIR}/TAGS_FEXAMPLES
23909f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_FEXAMPLES ACTION=etags_examplesf alltree
24009f7043eSSatish Balay	-${OMAKE} PETSC_DIR=${PETSC_DIR} TAGSFILE=${TAGSDIR}/TAGS_EXAMPLES ACTION=etags_examplesfh alltree
2412176044fSSatish Balay	-chmod g+w TAGS_FEXAMPLES
242b38bb785SSatish Balay#
243f20f7ba3SSatish Balay# These are here for the target allci and allco, and etags
2443677444aSSatish Balay#
245b38bb785SSatish Balay
246f0475f33SSatish BalayBMAKEFILES = bmake/common* bmake/*/base bmake/*/base_variables bmake/*/base.site \
247321acebaSSatish Balay	     bmake/*/petscconf.h bmake/win32/makefile.dos bin/config/base*.in
2482f1ebae6SLois Curfman McInnesDOCS	   = bmake/readme bmake/petscconf.defs
24957c4596dSSatish BalaySCRIPTS    = maint/addlinks maint/builddist maint/buildlinks maint/wwwman \
25057c4596dSSatish Balay	     maint/xclude maint/crontab  \
25157c4596dSSatish Balay	     maint/autoftp include/foldinclude/generateincludes
25211b6ed10SLois Curfman McInnes
2537f52c680SSatish Balay# Builds all the documentation - should be done every night
2547f52c680SSatish Balayalldoc: allmanpages
255e15d8129SBarry Smith	cd docs/tex/manual; ${OMAKE} manual.dvi manual.ps manual.html splitmanual.html
2567f52c680SSatish Balay
2572496ca06SSatish Balay# Deletes man pages (HTML version)
2582496ca06SSatish Balaydeletemanualpages:
259ba79c590SSatish Balay	${RM} -f ${PETSC_DIR}/docs/manualpages/*/*.html \
26045f11a08SBarry Smith                 ${PETSC_DIR}/docs/manualpages/manualpages.cit
2612496ca06SSatish Balay
2622496ca06SSatish Balay# Deletes man pages (LaTeX version)
2632496ca06SSatish Balaydeletelatexpages:
2642496ca06SSatish Balay	${RM} -f ${PETSC_DIR}/docs/tex/rsum/*sum*.tex
2652496ca06SSatish Balay
26611b6ed10SLois Curfman McInnes# Builds all versions of the man pages
267981c4779SBarry Smithallmanpages: allmanualpages alllatexpages
268981c4779SBarry Smithallmanualpages: deletemanualpages
2693e01d015SBarry Smith	-${OMAKE} ACTION=manualpages_buildcite tree
2703e01d015SBarry Smith	-${OMAKE} ACTION=manualpages tree
271dfd40236SSatish Balay	-maint/wwwindex.py ${PETSC_DIR}
272981c4779SBarry Smith	-maint/examplesindex.tcl
273f8cfbf3fSSatish Balay	-maint/htmlkeywords.tcl
274ba79c590SSatish Balay	-@chmod g+w docs/manualpages/*/*.html
275e01137a2SSatish Balay
276416022c9SBarry Smithalllatexpages: deletelatexpages
2773e01d015SBarry Smith	-${OMAKE} ACTION=latexpages tree
27851c61065SBarry Smith	-@chmod g+w docs/tex/rsum/*
279416022c9SBarry Smith
28011b6ed10SLois Curfman McInnes# Builds Fortran stub files
28111b6ed10SLois Curfman McInnesallfortranstubs:
28226cd32c0SSatish Balay	-@include/foldinclude/generateincludes
283d77bb2e1SSatish Balay	-@${RM} -f src/fortran/auto/*.c
2843e01d015SBarry Smith	-${OMAKE} ACTION=fortranstubs tree
285716b9c40SSatish Balay	-@cd src/fortran/auto; ${OMAKE} -f makefile fixfortran
2860a0eb2c5SBarry Smith	chmod g+w src/fortran/auto/*.c
287f6ff2982SSatish Balay
288d55938c2SBarry Smithallci:
289f20f7ba3SSatish Balay	-@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=ci  alltree
290b951964fSBarry Smith
291d55938c2SBarry Smithallco:
292f20f7ba3SSatish Balay	-@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=co  alltree
293d55938c2SBarry Smith
294b334301eSBarry Smith#
295b334301eSBarry Smith#   The commands below are for generating ADIC versions of the code;
296b334301eSBarry Smith# they are not currently used.
297b334301eSBarry Smith#
2985eea60f9SBarry Smithalladicignore:
299d77bb2e1SSatish Balay	-@${RM} ${PDIR}/adicignore
300d77bb2e1SSatish Balay	-@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=adicignore  tree
3015eea60f9SBarry Smith
3025eea60f9SBarry Smithalladic:
303d18b0ea7SBarry Smith	-@echo "Beginning to compile ADIC source code in all directories"
30467b024f7SSatish Balay	-@echo "Using ADIC compiler: ${ADIC_CC} ${CCPPFLAGS}"
305d18b0ea7SBarry Smith	-@echo "========================================="
30647794344SBarry Smith	-@cd include ; \
30767b024f7SSatish Balay           ${ADIC_CC} -s -f 1 ${CCPPFLAGS} petsc.h
308d77bb2e1SSatish Balay	-@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=adic  tree
30947794344SBarry Smith	-@cd src/inline ; \
310d77bb2e1SSatish Balay            ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} adic
31177ed5343SBarry Smith	-@cd src/blaslapack ; \
312d77bb2e1SSatish Balay            ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=adic  tree
3136e81b665SBarry Smith
31447794344SBarry Smithalladiclib:
315d18b0ea7SBarry Smith	-@echo "Beginning to compile ADIC libraries in all directories"
316d77bb2e1SSatish Balay	-@echo "Using compiler: ${CC} ${COPTFLAGS}"
317d18b0ea7SBarry Smith	-@echo "-----------------------------------------"
318d77bb2e1SSatish Balay	-@echo "Using PETSc flags: ${PETSCFLAGS} ${PCONF}"
319d18b0ea7SBarry Smith	-@echo "-----------------------------------------"
320e0e703c1SSatish Balay	-@echo "Using configuration flags:"
321e0e703c1SSatish Balay	-@grep "define " bmake/${PETSC_ARCH}/petscconf.h
322d18b0ea7SBarry Smith	-@echo "-----------------------------------------"
323d77bb2e1SSatish Balay	-@echo "Using include paths: ${PETSC_INCLUDE}"
324d18b0ea7SBarry Smith	-@echo "-----------------------------------------"
325d77bb2e1SSatish Balay	-@echo "Using PETSc directory: ${PETSC_DIR}"
326d77bb2e1SSatish Balay	-@echo "Using PETSc arch: ${PETSC_ARCH}"
327d18b0ea7SBarry Smith	-@echo "========================================="
328d77bb2e1SSatish Balay	-@${RM} -f  ${PDIR}/*adic.a
329d77bb2e1SSatish Balay	-@${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=adiclib  tree
33077ed5343SBarry Smith	-@cd src/blaslapack ; \
331d77bb2e1SSatish Balay            ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} ACTION=adiclib  tree
3327e351921SBarry Smith	-@cd src/adic/src ; \
333d77bb2e1SSatish Balay            ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} lib
3345eea60f9SBarry Smith
3359e417c50SSatish Balay# -------------------------------------------------------------------------------
3369e417c50SSatish Balay#
3379e417c50SSatish Balay# Some macros to check if the fortran interface is up-to-date.
3389e417c50SSatish Balay#
3399e417c50SSatish Balaycountfortranfunctions:
340d77bb2e1SSatish Balay	-@cd ${PETSC_DIR}/src/fortran; egrep '^void' custom/*.c auto/*.c | \
34185c7cd6cSSatish Balay	cut -d'(' -f1 | tr -s  ' ' | cut -d' ' -f2 | uniq | egrep -v "(^$$|Petsc)" | \
3429e417c50SSatish Balay	sed "s/_$$//" | sort > /tmp/countfortranfunctions
343b334301eSBarry Smith
3449e417c50SSatish Balaycountcfunctions:
34585c7cd6cSSatish Balay	-@ grep extern ${PETSC_DIR}/include/*.h *.h | grep "(" | tr -s ' ' | \
34685c7cd6cSSatish Balay	cut -d'(' -f1 | cut -d' ' -f3 | grep -v "\*" | tr -s '\012' |  \
3479e417c50SSatish Balay	tr 'A-Z' 'a-z' |  sort > /tmp/countcfunctions
3489e417c50SSatish Balay
3499e417c50SSatish Balaydifffortranfunctions: countfortranfunctions countcfunctions
3509e417c50SSatish Balay	-@echo -------------- Functions missing in the fortran interface ---------------------
3519e417c50SSatish Balay	-@diff /tmp/countcfunctions /tmp/countfortranfunctions | grep "^<" | cut -d' ' -f2
3529e417c50SSatish Balay	-@echo ----------------- Functions missing in the C interface ------------------------
3539e417c50SSatish Balay	-@diff /tmp/countcfunctions /tmp/countfortranfunctions | grep "^>" | cut -d' ' -f2
354d77bb2e1SSatish Balay	-@${RM}  /tmp/countcfunctions /tmp/countfortranfunctions
355b334301eSBarry Smith
3563f4c9a3aSSatish Balaycheckbadfortranstubs:
3573f4c9a3aSSatish Balay	-@echo "========================================="
3583f4c9a3aSSatish Balay	-@echo "Functions with MPI_Comm as an Argument"
3593f4c9a3aSSatish Balay	-@echo "========================================="
360d77bb2e1SSatish Balay	-@cd ${PETSC_DIR}/src/fortran/auto; grep '^void' *.c | grep 'MPI_Comm' | \
36185c7cd6cSSatish Balay	tr -s ' ' | tr -s ':' ' ' |cut -d'(' -f1 | cut -d' ' -f1,3
3623f4c9a3aSSatish Balay	-@echo "========================================="
3633f4c9a3aSSatish Balay	-@echo "Functions with a String as an Argument"
3643f4c9a3aSSatish Balay	-@echo "========================================="
365d77bb2e1SSatish Balay	-@cd ${PETSC_DIR}/src/fortran/auto; grep '^void' *.c | grep 'char \*' | \
36685c7cd6cSSatish Balay	tr -s ' ' | tr -s ':' ' ' |cut -d'(' -f1 | cut -d' ' -f1,3
3673f4c9a3aSSatish Balay	-@echo "========================================="
3683f4c9a3aSSatish Balay	-@echo "Functions with Pointers to PETSc Objects as Argument"
3693f4c9a3aSSatish Balay	-@echo "========================================="
370d77bb2e1SSatish Balay	-@cd ${PETSC_DIR}/src/fortran/auto; \
37185c7cd6cSSatish Balay	_p_OBJ=`grep _p_ ${PETSC_DIR}/include/*.h | tr -s ' ' | \
37285c7cd6cSSatish Balay	cut -d' ' -f 3 | tr -s '\012' | grep -v '{' | cut -d'*' -f1 | \
3733f4c9a3aSSatish Balay	sed "s/_p_//g" | tr -s '\012 ' ' *|' ` ; \
3743f4c9a3aSSatish Balay	for OBJ in $$_p_OBJ; do \
37585c7cd6cSSatish Balay	grep "$$OBJ \*" *.c | tr -s ' ' | tr -s ':' ' ' | \
3763f4c9a3aSSatish Balay	cut -d'(' -f1 | cut -d' ' -f1,3; \
3773f4c9a3aSSatish Balay	done
3783677444aSSatish Balay# Builds noise routines (not yet publically available)
3793677444aSSatish Balay# Note:	 libfast cannot run on .F files on certain machines, so we
3803677444aSSatish Balay# use lib and check for errors here.
3813677444aSSatish Balaynoise: info chkpetsc_dir
3823677444aSSatish Balay	-@echo "Beginning to compile noise routines"
3833677444aSSatish Balay	-@echo "========================================="
3843677444aSSatish Balay	-@cd src/snes/interface/noise; \
3853677444aSSatish Balay	  ${OMAKE} BOPT=${BOPT} PETSC_ARCH=${PETSC_ARCH} lib > trashz 2>&1; \
3863677444aSSatish Balay	  grep -v clog trashz | grep -v "information sections" | \
3873677444aSSatish Balay	  egrep -i '(Error|warning|Can)' >> /dev/null;\
3883677444aSSatish Balay	  if [ "$$?" != 1 ]; then \
3893677444aSSatish Balay	  cat trashz ; fi; ${RM} trashz
3903677444aSSatish Balay	${RANLIB} ${PDIR}/libpetscsnes.a
3913677444aSSatish Balay	-@chmod g+w  ${PDIR}/libpetscsnes.a
3923677444aSSatish Balay	-@echo "Completed compiling noise routines"
3933677444aSSatish Balay	-@echo "========================================="
3943677444aSSatish Balay
395