#
# Makefile bestial pour un projet Latex
#
# Attention : le cible dite "standard" sont en r�alit� d�pendante de ce projet
# (e.g. clean, distclean, ...)
#
# Modif par Maurice Diamantini le 29/08/2006


########################################################################

FILE = "pst-uml-doc"
EXEMPLES = "pst-uml-exemples"
FIG = "pst-uml-encapsuled-pdf-fig"

########################################################################
all: docpdf expdf fig clean

doc:
       $(MAKE) tex       && \
       $(MAKE) tex       && \
       $(MAKE) ps

ex:
       latex $(EXEMPLES).tex && \
       latex $(EXEMPLES).tex && \
       dvips $(EXEMPLES).dvi -o $(EXEMPLES).ps

docpdf:
       $(MAKE) doc       && \
       ps2pdf $(FILE).ps  $(FILE).pdf

expdf:
       $(MAKE) ex       && \
       ps2pdf $(EXEMPLES).ps  $(EXEMPLES).pdf

fig:
       latex $(FIG).tex                        && \
       dvips -E $(FIG).dvi  -o $(FIG).eps      && \
       epstopdf $(FIG).eps


# full : la totale !  peut servir de r�servoir pour l'�tiquette par d�faut
full:
       $(MAKE) tex       && \
       $(MAKE) pdftex    && \
       $(MAKE) dvipdf    && \
       $(MAKE) bib       && \
       $(MAKE) dvi       && \
       $(MAKE) psoffset  && \
       $(MAKE) ps        && \
       $(MAKE) vps       && \
       $(MAKE) pdf       && \
       $(MAKE) epdf      && \
       $(MAKE) vpdf


########################################################################
# C'est pour construire le dvi correcte qu'il faudra rendre ce Makefile
# plus intelligent !
#

dvi :
       $(MAKE) tex   && \
       $(MAKE) tex   && \
       $(MAKE) dvipdf

########################################################################
#
# Quelques �tiquettes symboliques standards (pour moi :-)
#

tex:
       @echo
       @echo "=>   lancement d'UN latex"
       @echo
       latex $(FILE).tex

dvipdf:
       @echo
       @echo "=>   lancement d'UN dvipdf"
       @echo
       dvipdf $(FILE).dvi

pdftex:
       @echo
       @echo "=>   lancement d'UN pdflatex"
       @echo
       pdflatex $(FILE).tex

bib:
       @echo
       @echo "=>   lancement d'UN bibtex"
       @echo
       bibtex $(FILE)

ps :
       @echo
       @echo "=>   cr�ation de $(FILE).ps :"
       @echo "=>   Un fichier r�cent $(FILE).dvi **DOIT** exister"
       @echo
       dvips $(FILE).dvi  -t a4 -o $(FILE).ps


txt:
       @echo
       @echo "=>   cr�ation d'une version texte pur par hevea :"
       @echo
       hevea -francais -text -o $(FILE).txt $(FILE).tex

html:
       @echo
       @echo "=>   cr�ation d'une version html par hevea :"
       @echo
       hevea -francais -o $(FILE).html $(FILE).tex

########################################################################
# psresize
psoffset :
       @echo
       @echo "=>   modif offset du fichier postscript :"
       @echo
       mv -f $(FILE).ps $(FILE).ori.ps                         && \
       pstops "0(0cm,-1.5cm)"  $(FILE).ori.ps   $(FILE).ps     && \
       rm $(FILE).ori.ps



2upps :
       @echo
       @echo "=>   conversion postscript vers 2up "
       @echo
       psnup -2 -pa4 -m1.5cm $(FILE).ps $(FILE).2up.ps

2up : 2uppdf
2uppdf : 2upps
       @echo
       @echo "=>   conversion 2up postscript vers 2up pdf"
       @echo
       ps2pdf  $(FILE).2up.ps $(FILE).2up.pdf  && \
       rm $(FILE).2up.ps
# # pdf:
# #     @echo
# #     @echo "=>   cr�ation de $(FILE).pdf :"
# #     @echo "=>   Un fichier r�cent $(FILE).ps **DOIT** exister"
# #     @echo
# #     ps2pdf $(FILE).ps  $(FILE).pdf
# Les options "-Pwww -G0" de dvips sont en vue de g�n�rer du PDF
pdf:
       @echo
       @echo "=>   cr�ation de $(FILE).pdf :"
       @echo "=>   Un fichier r�cent $(FILE).dvi **DOIT** exister"
       @echo
       dvips -Pwww -G0  $(FILE).dvi  -o $(FILE).ps4pdf && \
       ps2pdf $(FILE).ps4pdf  $(FILE).pdf && \
       rm $(FILE).ps4pdf
pdfold:
       @echo
       @echo "=>   cr�ation de $(FILE).pdf :"
       @echo "=>   Un fichier r�cent $(FILE).dvi **DOIT** exister"
       @echo
       ps2pdf $(FILE).ps  $(FILE).pdf

# Pour cr�er une figure encapsul�e pdf en utilisant pstricks
#
# \documentclass[a4paper]{article}
#     \usepackage{times}%           xxxxxxxxxx IMPORTANT
#     \usepackage{pst-eps}%         xxxxxxxxxx IMPORTANT
#     \thispagestyle{empty}%        xxxxxxxxxx IMPORTANT
#     \usepackage{pst-uml}
# \begin{document}
# \TeXtoEPS%
# % put your own figure stuff here
# \umlActor[umlActorLineWidth=1mm]{Client}
# \endTeXtoEPS%
# \end{document}
#
epdf:
       latex $(FILE).tex                       && \
       dvips -E $(FILE).dvi  -o $(FILE).eps    && \
       epstopdf $(FILE).eps


########################################################################
#
# �tiquettes auxiliaires
#


vdvi:
       xdvi  ${XDVI_ARGS}     $(FILE).dvi &

vps:
       gv    ${GV_ARGS}     $(FILE).ps &

# xpdf:
# vpdf:
#       xpdf  ${XPDF_ARGS}   $(FILE).pdf &
xpdf:
vpdf:
       # echo `which xpdf`
       # echo "LD_LIBRARY_PATH=$$LD_LIBRARY_PATH"
       xpdf   ${XPDF_ARGS}    $(FILE).pdf &

ar: acroread
acroread:
       open -a acroread $(FILE).pdf &

pv: preview
preview:
       open -a Preview $(FILE).pdf &


########################################################################
##

# pour mes essais
try:
       latex try.tex
       dvips try.dvi  -o try.ps
       gv -pixmap -scale 2 -geo 1000x900+0+0 -watch try.ps &


# editeur stead pour latex  URL :  <http://www.ensta.fr/~diam/stead>
e:      edit
ed:     edit
edit:
       stead  $(FILE).tex  &


clean:
       rm -f *.aux *.bbl *.blg  *.log *.lof *.lot *.tmp *.toc *.ps4pdf  *.idx
       rm -f *.out *.nav *.snm  $(FILE)*.dvi $(EXEMPLES).dvi
       rm -f $(FILE).ps $(EXEMPLES).ps $(FIG).dvi $(FIG).eps

dc: distclean
distclean: clean
       rm -f $(FILE)*.dvi $(FILE)*.ps $(FILE)*.pdf
       rm -f $($(EXEMPLES))*.dvi $($(EXEMPLES))*.ps $($(EXEMPLES))*.pdf
       rm -f $(FIG).pdf

########################################################################
# Archivage du r�pertoire courant dans le r�pertoire parent
# avec la date dans le nom du .zip cr��
#
# Description des options de zip utilis�es :
#    -r   recurse into directories
#    -y   store symbolic links as the link instead of the referenced file
#    -9   compress better (-1 compress faster)
#    -v   verbose operation/print version info
#    -q   quiet operation
#    -o   make zipfile as old as latest entry
# Decompression par :
#    unzip leFichier.zip
#    le r�pertoire "projet" d'origine est alors recr�er (ATTENTION
#    s'il existe d�ja)
arc: zip
zip:
       $(MAKE) clean
       date=`date +%Y%m%d-%Hh%Mmn`                     && \
       lpath=`pwd`                                     && \
       bname=`basename $$lpath`                        && \
       datename=$$bname-$$date                         && \
       cd ..                                           && \
       cp -a $$bname $$datename                        && \
       zip -r -y -o -q -9  $$datename.zip $$datename   && \
       \rm -rf $$datename                              && \
       cd $$lpath

tgz:
       $(MAKE) clean
       date=`date +%Y%m%d-%Hh%Mmn`                     && \
       lpath=`pwd`                                     && \
       bname=`basename $$lpath`                        && \
       datename=$$bname-$$date                         && \
       cd ..                                           && \
       cp -a $$bname $$datename                        && \
       tar cf - $$datename | gzip > $$datename.tgz     && \
       \rm -rf $$datename                              && \
       cd $$lpath

tbz:
       $(MAKE) clean
       date=`date +%Y%m%d-%Hh%Mmn`                     && \
       lpath=`pwd`                                     && \
       bname=`basename $$lpath`                        && \
       datename=$$bname-$$date                         && \
       cd ..                                           && \
       cp -a $$bname $$datename                        && \
       tar cf - $$datename | bzip2 > $$datename.tbz    && \
       \rm -rf $$datename                              && \
       cd $$lpath


#./