# -*-Makefile-*- # # Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana # University Research and Technology # Corporation. All rights reserved. # Copyright (c) 2004-2005 The University of Tennessee and The University # of Tennessee Research Foundation. All rights # reserved. # Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, # University of Stuttgart. All rights reserved. # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow # # $HEADER$ # # This first section contains macros whose values that you need to # fill in. # # MAIN_TEX: In order to build your document, fill in the MAIN_TEX # macro with the name of your main .tex file -- the one that you # invoke LaTeX on. MAIN_TEX = user.tex # OTHER_SRC_FILES: Put in the names of all the other files that your # thesis depends on (e.g., other .tex files, figures, etc.) in the # OTHER_SRC_FILES macro. This is ensure that whenever one of the # "other" files changes, "make" will rebuild your paper. LISTINGS_FILES = \ listings.cfg \ listings.sty \ lstdoc.sty \ lstlang1.sty \ lstlang2.sty \ lstlang3.sty \ lstmisc.sty \ lstpatch.sty OTHER_SRC_FILES = \ defs.tex \ version.tex \ titlepage.tex \ audience.tex \ introduction.tex \ release-notes.tex \ getting-started.tex \ mpi-details.tex \ mca.tex \ commands.tex \ mca-orte.tex \ mca-ompi.tex \ debuggers.tex \ troubleshooting.tex \ misc.tex \ bibliography.tex \ $(LISTINGS_FILES) # Bibtex source files BIBTEX_SOURCES = refs.bib # xfig figures. .eps and .pdf files will be automatically generated # from these. FIG_FILES = PNG_FILES = openmpi_logo-only.png # Required commands LATEX = latex PDFLATEX = pdflatex DVIPS = dvips MAKEINDEX = makeindex BIBTEX = bibtex FIG2DEV = fig2dev PNGTOPNM = pngtopnm PNMTOPS = pnmtops ######################################################################### # # You should not need to edit below this line # ######################################################################### SUFFIXES = .tex .dvi .ps .pdf .fig .eps .png .SUFFIXES: .tex .dvi .ps .pdf .fig .eps .png MAIN_DVI = $(MAIN_TEX:.tex=.dvi) MAIN_PS = $(MAIN_TEX:.tex=.ps) MAIN_PDF = $(MAIN_TEX:.tex=.pdf) MAIN_BBL = $(MAIN_TEX:.tex=.bbl) MAIN_BASENAME = $(MAIN_TEX:.tex=) EPS_FILES = $(PNG_FILES:.png=.eps) EPS_FIG_FILES = $(FIG_FILES:.fig=.eps) PDF_FIG_FILES = $(FIG_FILES:.fig=.pdf) # # Some common target names # Note that the default target is "ps" # ps: $(MAIN_PS) pdf: $(MAIN_PDF) # # Make the dependencies so that things build when they need to # $(MAIN_PS): $(MAIN_DVI) $(MAIN_DVI): $(MAIN_TEX) $(CITE_TEX) $(OTHER_SRC_FILES) $(EPS_FIG_FILES) $(EPS_FILES) $(MAIN_BBL) $(MAIN_PDF): $(MAIN_TEX) $(CITE_TEX) $(OTHER_SRC_FILES) $(PDF_FIG_FILES) $(PNG_FILES) $(MAIN_BBL) # # Search Strings # REFERENCES = "(There were undefined references|Rerun to get (cross-references|the bars) right)" NEEDINDEX = "Writing index file" RERUNBIB = "No file.*\.bbl|Citation.*undefined|LaTeX Warning: Label\(s\) may" # # General rules # .fig.eps: $(FIG2DEV) -L eps $< $@ .fig.pdf: $(FIG2DEV) -L pdf $< $@ .png.eps: $(PNGTOPNM) $< | $(PNMTOPS) -noturn > $*.eps # Only run bibtex if latex has already been run (i.e., if there is # already a .aux file). If .aux file does not exist, then bibtex will # be run during the .tex.dvi / .tex.pdf rules. We don't run latex # here to generate the .aux file because a) we don't know whether to # run latex or pdflatex, and b) the dependencies are wrong for # pdflatex because we may need to generate some pdf images first. $(MAIN_BBL): $(BIBTEX_SOURCES) @if (test -f $(MAIN_BASENAME).aux); then \ echo "### Running BibTex"; \ $(BIBTEX) $(MAIN_BASENAME); \ fi # Main workhorse for .tex -> .dvi. Run latex, makeindex, and bibtex # as necessary. .tex.dvi: echo "### Running LaTeX (1)" $(LATEX) $* @if (egrep $(REFERENCES) $*.log > /dev/null); then \ echo "### Running LaTeX to fix references (2)"; \ ($(LATEX) $*); \ fi @if (egrep $(NEEDINDEX) $*.log >/dev/null); then \ echo "### Running makeindex to generate index"; \ $(MAKEINDEX) $*; \ echo "### Running LaTeX after generating index"; \ $(LATEX) $*; \ fi @if (egrep $(RERUNBIB) $*.log >/dev/null); then \ echo "### Running BibTex because references changed"; \ $(BIBTEX) $(MAIN_BASENAME); \ echo "### Running LaTeX after generating bibtex"; \ $(LATEX) $*; \ fi @if (egrep $(REFERENCES) $*.log > /dev/null); then \ echo "### Running LaTeX to fix references (3)"; \ ($(LATEX) $*); \ fi @if (egrep $(REFERENCES) $*.log > /dev/null); then \ echo "### Running LaTeX to fix references (4)"; \ ($(LATEX) $*); \ fi .dvi.ps: $(DVIPS) -o $*.ps $* # Main workhorse for .tex -> .pdf. Run latex, makeindex, and bibtex # as necessary. Essentially the same as .tex.dvi, except # s/latex/pdflatex/g. .tex.pdf: echo "### Running pdfLaTeX (1)" $(PDFLATEX) $* @if (egrep $(REFERENCES) $*.log > /dev/null); then \ echo "### Running pdfLaTeX to fix references (2)"; \ ($(PDFLATEX) $*); \ fi @if (egrep $(NEEDINDEX) $*.log >/dev/null); then \ echo "### Running makeindex to generate index"; \ $(MAKEINDEX) $*; \ echo "### Running pdfLaTeX after generating index"; \ $(PDFLATEX) $*; \ fi @if (egrep $(RERUNBIB) $*.log >/dev/null); then \ echo "### Running BibTex because references changed"; \ $(BIBTEX) $(MAIN_BASENAME); \ echo "### Running pdfLaTeX after generating bibtex"; \ $(PDFLATEX) $*; \ fi @if (egrep $(REFERENCES) $*.log > /dev/null); then \ echo "### Running pdfLaTeX to fix references (3)"; \ ($(PDFLATEX) $*); \ fi @if (egrep $(REFERENCES) $*.log > /dev/null); then \ echo "### Running pdfLaTeX to fix references (4)"; \ ($(PDFLATEX) $*); \ fi # # Standard targets # clean: /bin/rm -f *~ *.bak *% /bin/rm -f *.log *.aux *.dvi *.blg *.toc *.bbl *.lof *.lot \ *.ind *.idx *.ilg *.int *.out \ $(MAIN_PS) $(MAIN_DVI) $(MAIN_PDF) \ $(EPS_FILES) $(EPS_FIG_FILES) $(PDF_FIG_FILES)