# The installed library directory, change this if necessary:
HOMELIB = $$HOME/lib

DOC = CMman
DOCSRC = CMman.tex body.tex defines.tex

PICTEX = \
  AmpTable.tex Antennas.tex Audio.tex Axes.tex BigResistor.tex Bip.tex \
  CctTable.tex Dac.tex Diodes.tex Emarrows.tex FF.tex FlipFlop.tex \
  Flowdiag.tex Fuses.tex Grounds.tex Logic.tex Loop.tex Xform.tex \
  NLG.tex Nport.tex \
  Oblique.tex Opamp.tex Potentiometers.tex Relay.tex ShiftR.tex Sources.tex \
  Switches.tex Thermal.tex Tline.tex Variable.tex Windings.tex Workflow.tex \
  bistable.tex bitr.tex bi_trans.tex \
  currents.tex eboxdims.tex fet.tex lrarrows.tex mplex.tex oax.tex \
  quick.tex stringdims.tex thyristor.tex tran.tex ujt.tex woodchips.tex

VERBATIM = BigResistor1.verb BigResistor2.verb eboxdims.verb
BOXDIMS = Dac.tex Opamp.tex Windings.tex Workflow.tex \
  eboxdims.tex stringdims.tex bi_trans.tex woodchips.tex

LATEX = latex
M4 = m4 -B10000
M4 = m4

# For gpic
MODE = gpic
PIC = gpic -t
PRE =
POST = ;printf '\\centerline{\\box\\graph}\n'
PST =

# For dpic; comment these to stick with gpic.
MODE = pstricks
PIC = dpic -p
# PIC = $$HOME/dpic/test/dpic -p
# PIC = $$HOME/dpic/p2c/ftp/dpic -p
PRE = printf '\\centering\n';
POST =
PST = ;printf '\\usepackage{pstricks}\n' >> heading.tex
# PST = ;printf '\\usepackage{tikz}\n' >> heading.tex

M4LIBS = $(HOMELIB)/$(MODE).m4 $(HOMELIB)/libcct.m4 $(HOMELIB)/liblog.m4
.SUFFIXES: .tex .m4
.m4.tex: $*.m4
	$(M4) $(M4LIBS) $*.m4 > $*.pic
	($(PRE) $(PIC) $*.pic $(POST)) > $*.tex
	
$(DOC).ps: $(DOC).dvi
	dvips -t letter $(DOC) -o

$(DOC).dvi: citations $(PICTEX)
	$(LATEX) $(DOC)
    -@if grep -s "Warning: Reference " $(DOC).log ; then \
           $(LATEX) $(DOC) ;\
         elif test ! -f $(DOC).dvi ; then\
           $(LATEX) $(DOC) ; fi

citations: $(DOC).bbl $(PICTEX)
	$(LATEX) $(DOC)
	touch citations

$(DOC).bbl: $(DOC).aux $(DOC).bib
	bibtex $(DOC)

$(DOC).aux: $(DOCSRC) heading.tex $(VERBATIM) $(PICTEX)
	$(LATEX) $(DOC)
	rm -f $(BOXDIMS)
	make $(BOXDIMS)

heading.tex:
	printf '\\documentclass{article}\n' > heading.tex
	printf '\\usepackage{verbatim,url}\n' >> heading.tex
	printf '\\usepackage{amssymb,boxdims}\n' >> heading.tex $(PST)

oax.tex tran.tex bitr.tex: oax.m4
	$(M4) $(M4LIBS) $*.m4 > $*.pic
	$(PIC) $*.pic > $*.tex

BigResistor1.verb: BigResistor.m4
	( printf '\\begin{verbatim}\n' ; sed -n -e '/PS/,/R1/p' BigResistor.m4 ; \
    printf '\\end{verbatim}\n' ) > BigResistor1.verb

BigResistor2.verb: BigResistor.m4
	( printf '\\begin{verbatim}\n';sed -n '/thinlines/,/PE/p' BigResistor.m4 ;\
    printf '\\end{verbatim}\n' ) > BigResistor2.verb

eboxdims.verb: eboxdims.m4
	( printf '\\begin{verbatim}\n' ; sed -e '/thinlines/,$$d' eboxdims.m4 ; \
    printf '.PE\n\\end{verbatim}\n' ) > eboxdims.verb

ex08.m4: ../examples/ex08.m4
	cp ../examples/ex08.m4 ex08.m4

clobber: clean
	rm -f *.dvi
#	rm -f CMman.pdf

clean:
	rm -f *.bbl *.log *.aux *.blg *.toc citations *.verb ex08.m4
	rm -f *.pic $(PICTEX) heading.tex *.dim *.uu CMman.ps CMman.dvi