# Makefile for LaTeX

# ENVIRONMENTAL VARIABLES
VERSION         =9.0d
# Data
#PRINTER_PORT   =/dev/lp0
#PRINTER_PORT   =./ppp.conf
PRINTER_PORT    =lpr
PRINT_DATA      =./prdata

# Commands
PLATEX          =platex
EMACS           =emacs
DVIPS           =dvips $(shell if [ -f page.conf ]; \
then cat page.conf ; else echo ; fi) -t a4
#DVIPDFM        =dvipdfm -p a4 -x 1.0in -vv -r 1200 -t -z 9
DVIPDFM         =dvipdfm -p a4 -r 1200 -t -z 9
XDVI            =xdvi
GS              =gs -sPAPERSIZE=a4
GV              =gv -resize -arguments -sPAPERSIZE=a4 -antialias -safer
ACROREAD        =acroread
PBM2PPA         =pbm2ppa -s a4
PNM2PPA         =pnm2ppa -s a4
TGIF            =tgif
JBIBTEX         =jbibtex
MAKEINDEX       =mendex -f
FIG2DEV         =fig2dev

# Rules for many files

.SUFFIXES: .em .pln .plm .plc .pbn .pbm \
.pnm .pn .pm .pc .dv .av .gv .pdf .dvi .ps \
.tex .obj .eps .bib .bbl .idx .ind .glo gls .fig .eps.gz
#.tex.gz
#.tex.gz.tex:
#       gunzip -c $< > $@
.eps.gz.eps:
        gunzip -c $< > $@
.fig.eps:
        $(FIG2DEV) -L ps $< > $@
.obj.eps:
        $(TGIF) -print -eps $<
.bib.bbl:
        $(PLATEX) $*; $(JBIBTEX) $*;
.idx.ind:
        $(MAKEINDEX) -o $*.ind *.idx;
.glo.gls:
        $(MAKEINDEX) -o $*.gls *.glo;
.tex.dvi:
        if [ -f $*.bib ]; then make $*.bbl; $(PLATEX) $*;\
 else echo ; fi
        if [ -f $*.idx ]; then make $*.ind; $(PLATEX) $*;\
 else echo ; fi
        if [ -f $*.glo ]; then make $*.gls; $(PLATEX) $*;\
 else echo ; fi
        $(PLATEX) $<
.tex.em:
        if [ "$(DISPLAY)" = "" ]; then $(EMACS) $< ;\
 echo "===== You do not need to care about the following error. =====";\
 exit 1 ; fi
        $(EMACS) $< &
.dvi.ps:
        $(DVIPS) $< > $@
.dvi.pdf:
        $(DVIPDFM) $<
.dvi.dv:
        $(XDVI) $<
.ps.gv:
        $(GV) $<
.pdf.av:
        $(ACROREAD) $<
#mono
.ps.pbm:
        $(GS) -sDEVICE=pbmraw -dNOPAUSE -dBATCH -r600 -sOutputFile=$@ $<
.pbm.pm:
        $(PBM2PPA) $< $(PRINT_DATA)
        @echo "Now Printing..."
        cat $(PRINT_DATA) |$(PRINTER_PORT) -Praw
        rm $(PRINT_DATA)
.ps.plm:
        $(GS) -sDEVICE=pbmraw -q -dNOPAUSE -dBATCH -r600 -sOutputFile=- $< \
|$(PBM2PPA) - - |$(PRINTER_PORT) -Praw

#mono through pnm2ppa
.ps.pbn:
        $(GS) -sDEVICE=pbmraw -dNOPAUSE -dBATCH -r600 -sOutputFile=$@ $<
.pbn.pn:
        cat $< |$(PNM2PPA) -i - -o $(PRINT_DATA)
        @echo "Now Printing..."
        cat $(PRINT_DATA) |$(PRINTER_PORT) -Praw
        rm $(PRINT_DATA)
.ps.pln:
        $(GS) -sDEVICE=pbmraw -q -dNOPAUSE -dBATCH -r600 -sOutputFile=- $< \
|$(PNM2PPA) -i - -o - |$(PRINTER_PORT) -Praw

#color
.ps.pnm:
        $(GS) -sDEVICE=pnmraw -dNOPAUSE -dBATCH -r600 -sOutputFile=$@ $<
.pnm.pc:
        cat $< |$(PNM2PPA) -i - -o $(PRINT_DATA)
        @echo "Now Printing..."
        cat $(PRINT_DATA) |$(PRINTER_PORT) -Praw
        rm $(PRINT_DATA)
.ps.plc:
        $(GS) -sDEVICE=pnmraw -q -dNOPAUSE -dBATCH -r600 -sOutputFile=- $< \
|$(PNM2PPA) -i - -o - |$(PRINTER_PORT)

# Main section

help:
        @echo ""
        @echo ".pm  Print in Monochrome (.plm all uses pipe. It maybe slow.)"
        @echo ".pn  Print in Monochrome but uses pnm2ppa. (for draft print.)"
        @echo ".pc  Print in Color (.plc all uses pipe. It maybe slow.)"
        @echo ".av  View in Acrobat Reader"
        @echo ".gv  View in Ghost View from GhostScript"
        @echo ".dv  View in XDVI"
        @echo ".em  Edit in Emacs"
        @echo ""
        @echo "new    Creat new pLeTeX(pTeX) document."
        @echo "clean  Remove all files except source."
        @echo "conf   Configure the commands."
        @echo "info   View the information of this program."
        @echo "old    Search old LaTeX/TeX files."
        @echo "view   View TeX files' list."
        @echo ""

info:
        @echo "<<Writer>>"
        @echo $(VERSION)
        @echo "<<pTeX>>"
        @ptex -v
        @echo "<<DVIPS>>"
        @dvips -v
        @echo "<<GhostScript>>"
        @gs -v

clean:
        rm -f $(PRINT_DATA) *.conf  *~ *.dvi \
*.aux *.toc *.log *.ps *.pdf \
*.pnm *.pbm *.bbl *.blg \
*.ilg missfont.log tmp/list.tmp \
$(OPT)

conf:
        ./config_

new:
        ./new_

old:
        ./old_

view:
        cpp -P ./tex.list > tmp/list.tmp
        echo

#Now include Makefile for each TeX files.

#include ./Files.make
