xref: /petsc/makefile (revision ee1faf9b7f09f92ebbd648be050bbfef624bfe55)
1IPETSCDIR = .
2
3CFLAGS   = $(OPT) -I$(IPETSCDIR)/include -I.. -I$(IPETSCDIR) $(CONF)
4SOURCEC  =
5SOURCEF  =
6SOURCEH  = Changes Machines Readme maint/addlinks maint/buildtest \
7           maint/builddist FAQ Installation Performance BugReporting\
8           maint/buildlinks maint/wwwman maint/xclude maint/crontab\
9           bmake/common bmake/*/*.*
10OBJSC    =
11OBJSF    =
12LIBBASE  = libpetscvec
13DIRS     = src include docs
14
15include $(IPETSCDIR)/bmake/$(PETSC_ARCH)/$(PETSC_ARCH)
16
17all: chkpetsc_dir
18	-$(RM) -f $(PDIR)/*.a
19	-@$(OMAKE) BOPT=$(BOPT) PETSC_ARCH=$(PETSC_ARCH) \
20           ACTION=libfast  tree
21	$(RANLIB) $(PDIR)/*.a
22
23#
24#  libfast cannot run on .F files on certain machines thus we
25# use lib and check for errors here.
26#
27fortran: chkpetsc_dir
28	-@cd src/fortran/custom; \
29          $(OMAKE) BOPT=$(BOPT) PETSC_ARCH=$(PETSC_ARCH) lib > trashz 2>&1; \
30          grep -v clog trashz | grep -v "information sections" | \
31          egrep -i '(Error|warning|Can)' >> /dev/null;\
32          if [ "$$?" != 1 ]; then \
33          cat trashz ; fi; $(RM) trashz
34	-@cd src/fortran/auto; \
35          $(OMAKE) BOPT=$(BOPT) PETSC_ARCH=$(PETSC_ARCH) libfast
36	$(RANLIB) $(PDIR)/libpetscfortran.a
37
38ranlib:
39	$(RANLIB) $(PDIR)/*.a
40
41deletelibs:
42	-$(RM) -f $(PDIR)/*.a $(PDIR)/complex/* $(PDIR)/c++/*
43
44deletemanpages:
45	$(RM) -f $(PETSC_DIR)/Keywords $(PETSC_DIR)/docs/man/man*/*
46
47deletewwwpages:
48	$(RM) -f $(PETSC_DIR)/docs/www/man*/* $(PETSC_DIR)/docs/www/www.cit
49
50deletelatexpages:
51	$(RM) -f $(PETSC_DIR)/docs/tex/rsum/*sum*.tex
52
53allmanpages: deletemanpages deletewwwpages deletelatexpages
54	-make ACTION=manpages tree
55	-make ACTION=wwwpages tree
56	-make ACTION=latexpages tree
57	-maint/wwwman
58
59allfortranstubs:
60	-@$(RM) $(PETSC_DIR)/fortran/auto/*.c
61	-make ACTION=fortranstubs tree
62
63#  To access the tags in emacs, type M-x visit-tags-table and specify
64#  the file petsc/TAGS.  Then, to move to where a PETSc function is
65#  defined, enter M-. and the function name.  To search for a string
66#  and move to the first occurrence, use M-x tags-search and the string.
67#  To locate later occurrences, use M-,
68
69etags:
70	$(RM) TAGS
71	etags -f TAGS    src/*/impls/*/*.h src/*/impls/*/*/*.h
72	etags -a -f TAGS src/*/examples/*.c src/*/examples/*/*.c
73	etags -a -f TAGS src/*/*.h src/*/src/*.c src/*/impls/*/*.c
74	etags -a -f TAGS src/*/impls/*/*/*.c src/*/impls/*/*/*/*.c
75	etags -a -f TAGS include/*.h include/pinclude/*.h bmake/common
76	etags -a -f TAGS src/*/impls/*.c src/*/utils/*.c
77	etags -a -f TAGS makefile src/*/src/makefile src/makefile
78	etags -a -f TAGS src/*/impls/makefile src/*/impls/*/makefile
79	etags -a -f TAGS src/*/utils/makefile src/*/examples/makefile
80	etags -a -f TAGS src/*/makefile src/*/impls/*/*/makefile
81	etags -a -f TAGS bmake/common bmake/sun4/sun4* bmake/rs6000/rs6000*
82	etags -a -f TAGS bmake/solaris/solaris*
83	etags -a -f TAGS bmake/IRIX/IRIX* bmake/freebsd/freebsd*
84	etags -a -f TAGS bmake/hpux/hpux* bmake/alpha/alpha*
85	etags -a -f TAGS bmake/t3d/t3d* bmake/paragon/paragon*
86	etags -a -f TAGS docs/tex/routin.tex  docs/tex/manual.tex
87	etags -a -f TAGS docs/tex/intro.tex  docs/tex/part1.tex
88	chmod g+w TAGS
89
90etags_noexamples:
91	$(RM) TAGS_NO_EXAMPLES
92	etags -f TAGS_NO_EXAMPLES src/*/impls/*/*.h src/*/impls/*/*/*.h
93	etags -a -f TAGS_NO_EXAMPLES src/*/*.h src/*/src/*.c src/*/impls/*/*.c
94	etags -a -f TAGS_NO_EXAMPLES src/*/impls/*/*/*.c src/*/impls/*/*/*/*.c
95	etags -a -f TAGS_NO_EXAMPLES include/*.h include/pinclude/*.h
96	etags -a -f TAGS_NO_EXAMPLES  bmake/common
97	etags -a -f TAGS_NO_EXAMPLES src/*/impls/*.c src/*/utils/*.c
98	etags -a -f TAGS_NO_EXAMPLES makefile src/*/src/makefile src/makefile
99	etags -a -f TAGS_NO_EXAMPLES src/*/impls/makefile src/*/impls/*/makefile
100	etags -a -f TAGS_NO_EXAMPLES src/*/utils/makefile
101	etags -a -f TAGS_NO_EXAMPLES src/*/makefile src/*/impls/*/*/makefile
102	etags -a -f TAGS_NO_EXAMPLES bmake/common bmake/sun4/sun4*
103	etags -a -f TAGS_NO_EXAMPLES bmake/rs6000/rs6000*
104	etags -a -f TAGS_NO_EXAMPLES bmake/solaris/solaris*
105	etags -a -f TAGS_NO_EXAMPLES bmake/IRIX/IRIX* bmake/freebsd/freebsd*
106	etags -a -f TAGS_NO_EXAMPLES bmake/hpux/hpux* bmake/alpha/alpha*
107	etags -a -f TAGS_NO_EXAMPLES bmake/t3d/t3d* bmake/paragon/paragon*
108	etags -a -f TAGS_NO_EXAMPLES docs/tex/routin.tex  docs/tex/manual.tex
109	etags -a -f TAGS_NO_EXAMPLES docs/tex/intro.tex  docs/tex/part1.tex
110	chmod g+w TAGS_NO_EXAMPLES
111
112etags_makefiles:
113	$(RM) TAGS_MAKEFILES
114	etags -a -f TAGS_MAKEFILES bmake/common
115	etags -a -f TAGS_MAKEFILES makefile src/*/src/makefile src/makefile
116	etags -a -f TAGS_MAKEFILES src/*/impls/makefile src/*/impls/*/makefile
117	etags -a -f TAGS_MAKEFILES src/*/utils/makefile
118	etags -a -f TAGS_MAKEFILES src/*/makefile src/*/impls/*/*/makefile
119	etags -a -f TAGS_MAKEFILES bmake/common bmake/sun4/sun4*
120	etags -a -f TAGS_MAKEFILES bmake/rs6000/rs6000*
121	etags -a -f TAGS_MAKEFILES bmake/solaris/solaris*
122	etags -a -f TAGS_MAKEFILES bmake/IRIX/IRIX* bmake/freebsd/freebsd*
123	etags -a -f TAGS_MAKEFILES bmake/hpux/hpux* bmake/alpha/alpha*
124	etags -a -f TAGS_MAKEFILES bmake/t3d/t3d* bmake/paragon/paragon*
125	chmod g+w TAGS_MAKEFILES
126