You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
326 lines
9.8 KiB
Makefile
326 lines
9.8 KiB
Makefile
20 years ago
|
## $Id$
|
||
|
##---------------------------------------------------------------------------
|
||
|
## LaTeX Makefile
|
||
|
## Copyright (C) 1996-2001 Michael Forman Michael.Forman@Colorado.EDU
|
||
|
##
|
||
|
## This program is free software; you can redistribute it and/or
|
||
|
## modify it under the terms of the GNU General Public License
|
||
|
## as published by the Free Software Foundation; either version 2
|
||
|
## of the License, or (at your option) any later version.
|
||
|
##
|
||
|
## This program is distributed in the hope that it will be useful,
|
||
|
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
## GNU General Public License for more details.
|
||
|
##
|
||
|
## You should have received a copy of the GNU General Public License
|
||
|
## along with this program; if not, write to the Free Software
|
||
|
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||
|
##
|
||
|
## This copyright applies to this Makefile, and all perl scripts.
|
||
|
## The GPL does NOT apply to the actual content of the paper or thesis.
|
||
|
##---------------------------------------------------------------------------
|
||
|
## 01.Dec,1996 forman Initial Makefile
|
||
|
## 01.Jun,1997 forman Added support for print, preview, and bibtex
|
||
|
## 01.Jan,1998 stones tmp and lib directories to reduce clutter
|
||
|
## 05.Feb,1998 forman Added the following functions:
|
||
|
## .PHONY to prevent errors
|
||
|
## generic TEXFILE definition with following patsubst's
|
||
|
## vpath definitions
|
||
|
## gzip, gunzip, tar, ci
|
||
|
## search for \bibliography in tex file
|
||
|
## conditional ifeq omits bibtex if unnecessary
|
||
|
## documentation added
|
||
|
## 30.Nov,1998 forman Added TOPFILE and SECFILE definitions to support
|
||
|
## texfiles with "input" commands.
|
||
|
## 23.Dec,1998 marshats Added RCSFILES and ci/co capabilites for multiple files
|
||
|
## Now only runs makeindex if $(IDX) file exists.
|
||
|
## 15.Mar,1999 forman Added 'make wc' for papers with word quotas.
|
||
|
## 24.Aug,1999 forman Converted Makefile to use pdftex as the primary
|
||
|
## complier. Now generates true pdf and ps files.
|
||
|
## 09.Feb,2000 forman Simplified the documentation. Removed direct
|
||
|
## compilation of tex into DVI and PS. Conversion
|
||
|
## is done with PDF2PS now.
|
||
|
## 08.Aug,2000 forman Added define for figures directories.
|
||
|
## 18.Aug,2000 forman Removed the redundant code in the $(pdflatex) and
|
||
|
## $(pdflatex-bibtex) definitions by splitting them up
|
||
|
## into several smaller definitions which are called
|
||
|
## from a single set of "if-then" statements.
|
||
|
## 18.Aug,2000 forman Added support for glosstex and makeindex.
|
||
|
## 19.Aug,2000 forman To save space, all files in tmp are now links.
|
||
|
## 19.Aug,2000 forman Removed all postscript commands in favor of pdf.
|
||
|
##---------------------------------------------------------------------------
|
||
|
##
|
||
|
## This Makefile expects the following directory structure:
|
||
|
##
|
||
|
## Makefile This file
|
||
|
## *.tex Put latex files in root directory.
|
||
|
## RCS/ Create an RCS directory for "ci" and "co".
|
||
|
## doc/ Document directory. Includes gpl.txt.
|
||
|
## lib/ Put all cls, sty, idx, gdf, and bib files in lib.
|
||
|
## figures/ Put all figures in the figures directory.
|
||
|
## tmp/ Never put anything in tmp -- it gets cleaned out.
|
||
|
##
|
||
|
##---------------------------------------------------------------------------
|
||
|
##
|
||
|
## Normal Usage:
|
||
|
## make Run pdflatex
|
||
|
## make clean Remove all files in tmp and the pdf link in root.
|
||
|
## make preview Preview the compiled file
|
||
|
## make ci Check in the RCSFILES
|
||
|
## make co Check out the RCSFILES
|
||
|
##
|
||
|
## Advanced Usage:
|
||
|
## make gzip Recursively gzip all the files in the root directory
|
||
|
## make gunzip Reverse the above process
|
||
|
## make tar Tar and gzip the working directory
|
||
|
## make wc Count the number of words in your report
|
||
|
##
|
||
|
##---------------------------------------------------------------------------
|
||
|
## WARNING:
|
||
|
## If "make ci" fails, "make co" will nuke your files!
|
||
|
## Don't put anything in tmp, "make clean" will delete everything!
|
||
|
##---------------------------------------------------------------------------
|
||
|
#
|
||
|
|
||
|
TOPFILE = userguide.tex
|
||
|
SECFILE =
|
||
|
FIGDIR = figures
|
||
|
|
||
|
XPDFFLAGS =
|
||
|
ACROFLAGS = #-- macos
|
||
|
#ACROFLAGS = -geometry 1234x1168+0+0 #-- new-sydney-wide
|
||
|
#ACROFLAGS = -geometry 1000x1000+0+0 #-- sydney-wide
|
||
|
#ACROFLAGS = -geometry 750x1000+0+0 #-- sydney
|
||
|
#ACROFLAGS = -geometry 1200x1200+0+0 #-- home-wide
|
||
|
#ACROFLAGS = -geometry 900x1200+0+0 #-- home
|
||
|
|
||
|
##---------------------------------------------------------------------------
|
||
|
## Change nothing below here (unless you're really really good).
|
||
|
#----------------------------------------------------------------------------
|
||
|
|
||
|
##
|
||
|
## Accounting
|
||
|
#
|
||
|
START = $(shell date)
|
||
|
WDIR = $(notdir $(shell pwd))
|
||
|
DATE = $(shell date +%Y-%m-%d)
|
||
|
|
||
|
##
|
||
|
## Programs
|
||
|
#
|
||
|
PDFLATEX = pdflatex
|
||
|
ACRO = evince
|
||
|
XPDF = xpdf
|
||
|
WC = wc
|
||
|
PDF2PS = pdf2ps
|
||
|
PDF2TEXT = pdftotext
|
||
|
MAKEIDX = makeindex
|
||
|
GLOSSTEX = glosstex
|
||
|
BIBTEX = bibtex
|
||
|
FILTER = ../bin/texfilter
|
||
|
FILTER = cat
|
||
|
CLEANIDX = ../bin/cleanidx
|
||
|
|
||
|
##
|
||
|
## Files
|
||
|
#
|
||
|
TEXFILES = $(TOPFILE) $(SECFILE)
|
||
|
RCSFILES = $(TEXFILES) Makefile
|
||
|
|
||
|
BASEFILE = $(patsubst %.tex,%,$(TOPFILE))
|
||
|
IDX = $(join $(BASEFILE),.idx)
|
||
|
PDF = $(join $(BASEFILE),.pdf)
|
||
|
PS = $(join $(BASEFILE),.ps)
|
||
|
GXS = $(join $(BASEFILE),.gxs)
|
||
|
GLX = $(join $(BASEFILE),.glx)
|
||
|
|
||
|
FIGURES = $(sort $(wildcard $(FIGDIR)/*))
|
||
|
GLOFILES:= $(sort $(wildcard lib/*.gdf))
|
||
|
GLOFILES:= $(patsubst lib/%,%,$(GLOFILES))
|
||
|
BIBFILES:= $(shell grep ^.bibliography{ $(TOPFILE)|sed "s/,/ /g"|sed "s/%.*//g")
|
||
|
BIBFILES:= $(patsubst \bibliography{%,%,$(BIBFILES))
|
||
|
BIBFILES:= $(patsubst %},%,$(BIBFILES))
|
||
|
BIBFILES:= $(sort $(addsuffix .bib,$(BIBFILES)))
|
||
|
|
||
|
LIBFILES = $(sort $(wildcard lib/*))
|
||
|
|
||
|
TEXLNFIL = $(addprefix $(PWD)/,$(TEXFILES))
|
||
|
|
||
|
#============================================================================
|
||
|
|
||
|
all: $(PDF)
|
||
|
@echo $(PDF)
|
||
|
|
||
|
$(PDF): $(TEXFILES) $(LIBFILES) $(FIGURES) Makefile
|
||
|
$(header)
|
||
|
$(initialize)
|
||
|
$(pdflatex-filter)
|
||
|
ifneq ($(BIBFILES),)
|
||
|
$(bibtex)
|
||
|
$(pdflatex-filter)
|
||
|
endif
|
||
|
ifneq ($(GLOFILES),)
|
||
|
$(glosstex)
|
||
|
$(pdflatex-filter)
|
||
|
endif
|
||
|
# $(makeindex)
|
||
|
$(pdflatex-filter)
|
||
|
$(finish)
|
||
|
|
||
|
$(PS): $(PDF)
|
||
|
$(PDF2PS) $< $(PS)
|
||
|
|
||
|
ps: $(PS)
|
||
|
|
||
|
#============================================================================
|
||
|
|
||
|
.PHONY: clean clean-tmp preview print gzip gunzip tar ci
|
||
|
|
||
|
clean:
|
||
|
rm -f $(PDF) $(PS)
|
||
|
cd tmp ; rm -f *
|
||
|
|
||
|
clean-tmp:
|
||
|
cd tmp ; rm -f *
|
||
|
|
||
|
#----------------------------------------------------------------------------
|
||
|
|
||
|
preview: $(PDF)
|
||
|
$(ACRO) $(ACROFLAGS) $< &
|
||
|
|
||
|
xpreview: $(PDF)
|
||
|
$(XPDF) $(XPDFFLAGS) $< &
|
||
|
|
||
|
wc: $(PDF)
|
||
|
$(PDF2TEXT) $< | $(WC)
|
||
|
|
||
|
#----------------------------------------------------------------------------
|
||
|
|
||
|
ci: $(RCSFILES)
|
||
|
$(shell for i in $(RCSFILES) ; do ci -u $$i ; done)
|
||
|
|
||
|
co: $(RCSFILES)
|
||
|
$(shell for i in $(RCSFILES) ; do co -l $$i ; done)
|
||
|
|
||
|
gzip: clean-tmp
|
||
|
gzip -r ./
|
||
|
gunzip Makefile.gz
|
||
|
|
||
|
gunzip:
|
||
|
gunzip -r ./
|
||
|
|
||
|
tar: clean-tmp
|
||
|
cd .. ; \
|
||
|
tar cvf $(WDIR)-$(DATE).tar $(WDIR) ; \
|
||
|
gzip $(WDIR)-$(DATE).tar
|
||
|
|
||
|
info:
|
||
|
$(header)
|
||
|
|
||
|
#============================================================================
|
||
|
|
||
|
define header
|
||
|
@echo
|
||
|
@echo "#---------------------------------------------------------------------"
|
||
|
@echo "MAKEFILE = LaTeX PDF Makefile"
|
||
|
@echo "AUTHOR = Alfredo Buttari"
|
||
|
@echo 'ID = $$Id$ '
|
||
|
@echo "#---------------------------------------------------------------------"
|
||
|
@echo
|
||
|
@echo "ACRO = $(ACRO) $(ACROFLAGS) $(PDF)"
|
||
|
@echo "XPDF = $(XPDF) $(XPDFFLAGS) $(PDF)"
|
||
|
@echo "GV = $(GV) $(GVFLAGS) $(PS)"
|
||
|
@echo "LPR = $(LPR) $(LPRFLAGS) $(PS)"
|
||
|
@echo
|
||
|
@echo "WDIR = $(WDIR)"
|
||
|
@echo "DATE = $(DATE)"
|
||
|
@echo
|
||
|
@echo "TOPFILE = $(TOPFILE)"
|
||
|
@echo "SECFILE = $(SECFILE)"
|
||
|
@echo "TEXFILES = $(TEXFILES)"
|
||
|
@echo "PDF = $(PDF)"
|
||
|
@echo "PS = $(PS)"
|
||
|
@echo "BIBFILES = $(BIBFILES)"
|
||
|
@echo "GLOFILES = $(GLOFILES)"
|
||
|
@echo "IDXFILES = $(IDXFILES)"
|
||
|
@echo
|
||
|
endef
|
||
|
# @echo "FIGURES = $(FIGURES)"
|
||
|
|
||
|
#----------------------------------------------------------------------------
|
||
|
|
||
|
|
||
|
define initialize
|
||
|
@if test ! -d tmp; then mkdir tmp; fi
|
||
|
@ln -sf $(TEXLNFIL) tmp
|
||
|
@ln -sf $(PWD)/lib/* tmp
|
||
|
@ln -sf $(PWD)/$(FIGDIR) tmp
|
||
|
endef
|
||
|
|
||
|
#----------------------------------------------------------------------------
|
||
|
|
||
|
define pdflatex
|
||
|
@echo
|
||
|
@echo "----- pdflatex -------------------------------------------------------"
|
||
|
@echo -n "Starting: "; date
|
||
|
@echo
|
||
|
cd tmp; $(PDFLATEX) $(TOPFILE)
|
||
|
endef
|
||
|
|
||
|
#----------------------------------------------------------------------------
|
||
|
|
||
|
define pdflatex-filter
|
||
|
@echo
|
||
|
@echo "----- pdflatex -------------------------------------------------------"
|
||
|
@echo -n "Starting: "; date
|
||
|
@echo
|
||
|
cd tmp; ($(PDFLATEX) $(TOPFILE) 2>&1) | $(FILTER)
|
||
|
endef
|
||
|
|
||
|
#----------------------------------------------------------------------------
|
||
|
|
||
|
define bibtex
|
||
|
@echo
|
||
|
@echo "----- bibtex ---------------------------------------------------------"
|
||
|
@echo -n "Starting: "; date
|
||
|
@echo
|
||
|
cd tmp; $(BIBTEX) $(BASEFILE)
|
||
|
endef
|
||
|
|
||
|
#----------------------------------------------------------------------------
|
||
|
|
||
|
define glosstex
|
||
|
@echo
|
||
|
@echo "----- glosstex -------------------------------------------------------"
|
||
|
@echo -n "Starting: "; date
|
||
|
@echo
|
||
|
cd tmp; $(GLOSSTEX) $(BASEFILE) $(GLOFILES)
|
||
|
cd tmp; $(MAKEIDX) $(GXS) -o $(GLX) -s glosstex.ist
|
||
|
endef
|
||
|
|
||
|
#----------------------------------------------------------------------------
|
||
|
|
||
|
define makeindex
|
||
|
@echo
|
||
|
@echo "----- makeindex ------------------------------------------------------"
|
||
|
@echo -n "Starting: "; date
|
||
|
@echo
|
||
|
cd tmp; mv $(IDX) $(IDX)-; $(CLEANIDX) < $(IDX)- > $(IDX)
|
||
|
cd tmp; $(MAKEIDX) $(IDX)
|
||
|
endef
|
||
|
|
||
|
#----------------------------------------------------------------------------
|
||
|
|
||
|
define finish
|
||
|
@ln -sf tmp/$@ .
|
||
|
@echo
|
||
|
@echo "----- finish ---------------------------------------------------------"
|
||
|
@echo -n "Start: "$(START); echo
|
||
|
@echo -n "Finish: "; date
|
||
|
@echo -n "Output: "; ls -l -o tmp/$@
|
||
|
@echo -n "Target: "
|
||
|
endef
|
||
|
|
||
|
|