Commit 255324a1 authored by fpottier's avatar fpottier

Simplified the documentation by switching from pstricks to TikZ.

Simplified the documentation's Makefile.
A few documentation changes.


git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/menhir@332 0f8b5475-4b4e-0410-85a8-ee3154a6bfe7
parent 33084248
.PHONY: all clean
all: main.pdf
export TEXINPUTS=.:
%.pdf: %.tex
pdflatex $*
bibtex $*
pdflatex $*
clean:
rm -f *.log *.aux *.bbl *.blg *.out *.toc *~
# Dans ce fichier, on ne doit trouver que les réglages qui sont les
# mêmes pour tous mes articles.
# Les réglages qui dépendent de l'article courant sont dans Makefile.local.
include Makefile.local
PAPER := a4
DVIPS_COMMON_OPT := -Pcmz -Pamz -e 0
HREF_PDF := \def\fppdf{true}
clean::
rm -f *.out *.thm *~
This source diff could not be displayed because it is too large. You can view the blob instead.
# Dans ce fichier, on ne doit trouver que les réglages qui dépendent
# vraiment de l'article courant.
# Les réglages qui sont les mêmes pour tous mes articles sont dans
# Makefile.cfg.
# Ce fichier est également lu comme un script, donc doit être exprimé
# dans une syntaxe commune à bash et à make.
# Le nom du fichier source principal.
DOC=main
# Le nom des fichiers à exporter vers le site Web.
NAME=menhir
# Les imports TeX pour la compilation.
export TEXINPUTS=.:
# -*-autoconf-*-
# Autoconfiguration of AutomaTeX, a generic makefile for building LaTeX
# documents.
#
# Copyright 2003-2006 Christian Rinderknecht
#
# You may modify and redistribute with no charges this file as long as
# this copyright notice remains, the name "AutomaTeX" changes, the
# e-mail address changes in the AC_INIT macro call and the name in the
# `echo' shell command below is kept.
# Documentation is to be found in the companion file `Makefile.in'.
# Process this file with `autoconf' to produce a `configure' script.
# $Id: configure.ac,v 1.2 2008/02/01 20:06:42 fpottier Exp $
# ------------------------------------------------------------------------
# General settings
#
AC_INIT(AutomaTeX,0.5,rinderkn@konkuk.ac.kr)
AC_PREREQ(2.53)
AC_CONFIG_SRCDIR
ac_version=$(autoconf -V | grep GNU | sed -n 's|.*) \(.*\)$|\1|p')
echo "Autoconfiguration of AutomaTeX,"
echo "a generic makefile for building LaTeX documents."
echo "(c) 2003-2006 Christian Rinderknecht"
echo
echo "This is autoconf (GNU Autoconf)" $ac_version
echo -----------------------------------------------------------------
echo System tools
AC_PATH_PROG(SHELL,bash,none)
if test "$SHELL" = "none";
then
echo " => You must install \`bash'!"
fi
AC_PATH_PROG(GMKDIR,gmkdir,none)
if test "$GMKDIR" = "none";
then
AC_PATH_PROG(MKDIR,mkdir,none)
else
MKDIR=$GMKDIR
fi
AC_PATH_PROG(GMV,gmv,none)
if test "$GMV" = "none";
then
AC_PATH_PROG(MV,mv,none)
else
MV=$GMV
fi
AC_PATH_PROG(GCP,gcp,none)
if test "$GCP" = "none";
then
AC_PATH_PROG(CP,cp,none)
else
CP=$GCP
fi
AC_PATH_PROG(GCAT,gcat,none)
if test "$GCAT" = "none";
then
AC_PATH_PROG(CAT,cat,none)
else
CAT=$GCAT
fi
AC_PATH_PROG(GTR,gtr,none)
if test "$GTR" = "none";
then
AC_PATH_PROG(TR,tr,none)
else
TR=$GTR
fi
AC_PATH_PROG(GUNIQ,guniq,none)
if test "$GUNIQ" = "none";
then
AC_PATH_PROG(UNIQ,uniq,none)
else
UNIQ=$GUNIQ
fi
AC_PATH_PROG(GSED,gsed,none)
if test "$GSED" = "none";
then
AC_PATH_PROG(SED,sed,none)
else
SED=$GSED
fi
AC_PATH_PROG(GSORT,gsort,none)
if test "$GSORT" = "none";
then
AC_PATH_PROG(SORT,sort,none)
else
SORT=$GSORT
fi
AC_PATH_PROG(GHEAD,ghead,none)
if test "$GHEAD" = "none";
then
AC_PATH_PROG(HEAD,head,none)
else
HEAD=$GHEAD
fi
AC_PATH_PROG(GTAIL,gtail,none)
if test "$GTAIL" = "none";
then
AC_PATH_PROG(TAIL,tail,none)
else
TAIL=$GTAIL
fi
AC_PATH_PROG(GWC,gwc,none)
if test "$GWC" = "none";
then
AC_PATH_PROG(WC,wc,none)
else
WC=$GWC
fi
AC_PATH_PROG(GAWK,gawk,none)
if test "$GAWK" = "none";
then
AC_PATH_PROG(AWK,awk,none)
else
AWK=$GAWK
fi
AC_PATH_PROG(GLS,gls,none)
if test "$GLS" = "none";
then
AC_PATH_PROG(LS,ls,none)
else
LS=$GLS
fi
AC_PATH_PROG(GMAKE,gmake,none)
if test "$GMAKE" = "none";
then
AC_PATH_PROG(MAKE,make,none)
if test "$MAKE" = "none";
then
echo " => You must install \`gmake\'!"
else
$MAKE --version | grep GNU &> /dev/null
if test $? != 0;
then
echo " => You must install \`GNU make\'!"
else
$MAKE --version | grep 'GNU Make 3.80' &>/dev/null
if test $? != 0
then
echo " => You need GNU Make 3.80 or upper."
fi
fi
fi
else
MAKE=$GMAKE
fi
AC_PATH_PROG(PERL,perl,none)
if test "$PERL" = "none";
then
echo " => You must install \`perl\'!"
fi
AC_PATH_PROG(GEXPR,gexpr,none)
if test "$GEXPR" = "none";
then
AC_PATH_PROG(EXPR,expr,none)
else
EXPR=$GEXPR
fi
AC_PATH_PROG(GECHO,gecho,none)
if test "$GECHO" = "none";
then
AC_PATH_PROG(ECHO,echo,none)
else
ECHO=$GECHO
fi
AC_PATH_PROG(GPASTE,gpaste,none)
if test "$GPASTE" = "none";
then
AC_PATH_PROG(PASTE,paste,none)
else
PASTE=$GPASTE
fi
AC_PATH_PROG(GCUT,gcut,none)
if test "$GCUT" = "none";
then
AC_PATH_PROG(CUT,cut,none)
else
CUT=$GCUT
fi
AC_PATH_PROG(GNL,gnl,none)
if test "$GNL" = "none";
then
AC_PATH_PROG(NL,nl,none)
else
NL=$GNL
fi
AC_PATH_PROG(RMGNU,rm.gnu,none)
if test "$RMGNU" = "none";
then
AC_PATH_PROG(RM,rm,none)
else
RM=$RMGNU
fi
AC_PATH_PROG(PSNUP,psnup,none)
if test "$PSNUP" = "none";
then echo " => You should install \`psnup\' for 4-up thumbnails."
fi
AC_PATH_PROG(BZIP2,bzip2,none)
if test "$BZIP2" = "none";
then echo " => You should install \`bzip2\'."
fi
AC_PATH_PROG(GTAR,gtar,none)
if test "$GTAR" = "none";
then
AC_PATH_PROG(TAR,tar,none)
else
TAR=$GTAR
fi
echo -----------------------------------------------------------------
echo LaTeX tools
AC_PATH_PROG(LATEX,latex,none)
AC_PATH_PROG(PDFTEX,pdftex,none)
AC_PATH_PROG(PDFLATEX,pdflatex,none)
AC_PATH_PROG(BIBTEX,bibtex,none)
AC_PATH_PROG(MAKEINDEX,makeindex,none)
AC_PATH_PROG(HEVEA,hevea,none)
AC_PATH_PROG(OCAMLWEB,ocamlweb,none)
echo -----------------------------------------------------------------
echo Other tools
AC_PATH_PROG(CONVERT,convert,none)
AC_PATH_PROG(JPEG2EPS,jpeg2eps,none)
AC_PATH_PROG(FIG2DEV,fig2dev,none)
AC_PATH_PROG(DVIPS,dvips,none)
AC_PATH_PROG(DVIPDFMX,dvipdfmx,none)
if test "$DVIPDFMX" = "none";
then
AC_PATH_PROG(DVIPDFM,dvipdfm,none)
else
DVIPDFM=$DVIPDFMX
fi
AC_PATH_PROG(DVIPDF,dvipdf,none)
AC_PATH_PROG(PS2PDF,ps2pdf,none)
AC_PATH_PROG(JAVA,java,none)
AC_PATH_PROG(SAXON,saxon8.jar,none)
AC_PATH_PROG(XMLLINT,xmllint,none)
AC_PATH_PROG(ERLC,erlc,none)
echo -----------------------------------------------------------------
echo Directories and paths
echo " => The source directory is" \'$srcdir\'
# ------------------------------------------------------------------------
# Explicit variable substitutions
#
AC_SUBST(SHELL)
AC_SUBST(MKDIR)
AC_SUBST(MV)
AC_SUBST(CP)
AC_SUBST(CAT)
AC_SUBST(TR)
AC_SUBST(UNIQ)
AC_SUBST(SED)
AC_SUBST(SORT)
AC_SUBST(HEAD)
AC_SUBST(TAIL)
AC_SUBST(WC)
AC_SUBST(AWK)
AC_SUBST(LS)
AC_SUBST(EXPR)
AC_SUBST(ECHO)
AC_SUBST(MAKE)
AC_SUBST(PERL)
AC_SUBST(PASTE)
AC_SUBST(CUT)
AC_SUBST(NL)
AC_SUBST(RM)
AC_SUBST(PSNUP)
AC_SUBST(LATEX)
AC_SUBST(BIBTEX)
AC_SUBST(MAKEINDEX)
AC_SUBST(CONVERT)
AC_SUBST(JPEG2EPS)
AC_SUBST(FIG2DEV)
AC_SUBST(DVIPS)
AC_SUBST(HEVEA)
AC_SUBST(HACHA)
AC_SUBST(OCAMLWEB)
AC_SUBST(DVIPDFM)
AC_SUBST(DVIPDF)
AC_SUBST(PS2PDF)
AC_SUBST(PDFTEX)
AC_SUBST(BZIP2)
AC_SUBST(TAR)
AC_SUBST(srcdir)
AC_SUBST(ac_version)
echo -----------------------------------------------------------------
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
chmod a-w Makefile
% This tiny package invokes ``hyperref'' with appropriate options.
% Three modes are provided:
% if \fppdf is defined, we configure ``hyperref'' for producing nice PDF output via dvipdfm.
% if \fppdf is defined, we configure ``hyperref'' for PDF output.
% otherwise, if WhizzyTeX is active, we do configure ``softref'' for producing DVI output
% containing ``advi''-style hyperlinks.
% otherwise, we configure nothing.
......@@ -30,8 +30,8 @@
}
}{
% PDF output.
\typeout{Hyperlinks in dvipdfm style.}
\usepackage[dvipdfm,bookmarks=true,bookmarksopen=true,colorlinks=true,linkcolor=blue,citecolor=blue,urlcolor=blue]{hyperref}
\typeout{Hyperlinks in pdflatex style.}
\usepackage[bookmarks=true,bookmarksopen=true,colorlinks=true,linkcolor=blue,citecolor=blue,urlcolor=blue]{hyperref}
\let\softlink\hyperlink
\let\softtarget\hypertarget
}
......@@ -97,34 +97,42 @@
% Command line options.
\newcommand{\obase}{\texttt{--base}\xspace}
\newcommand{\ocomment}{\texttt{--comment}\xspace}
\newcommand{\odepend}{\texttt{--depend}\xspace}
\newcommand{\orawdepend}{\texttt{--raw-depend}\xspace}
\newcommand{\odump}{\texttt{--dump}\xspace}
\newcommand{\oerrorrecovery}{\texttt{--error-recovery}\xspace}
\newcommand{\oexplain}{\texttt{--explain}\xspace}
\newcommand{\oexternaltokens}{\texttt{--external-tokens}\xspace}
\newcommand{\ofixedexc}{\texttt{--fixed-exception}\xspace}
\newcommand{\ograph}{\texttt{--graph}\xspace}
\newcommand{\oinfer}{\texttt{--infer}\xspace}
\newcommand{\ointerpret}{\texttt{--interpret}\xspace}
\newcommand{\ointerpretshowcst}{\texttt{--interpret-show-cst}\xspace}
\newcommand{\ologautomaton}{\texttt{--log-automaton}\xspace}
\newcommand{\ologcode}{\texttt{--log-code}\xspace}
\newcommand{\ologgrammar}{\texttt{--log-grammar}\xspace}
\newcommand{\onoinline}{\texttt{--no-inline}\xspace}
\newcommand{\onostdlib}{\texttt{--no-stdlib}\xspace}
\newcommand{\oocamlc}{\texttt{--ocamlc}\xspace}
\newcommand{\oocamldep}{\texttt{--ocamldep}\xspace}
\newcommand{\oonlypreprocess}{\texttt{--only-preprocess}\xspace}
\newcommand{\oonlytokens}{\texttt{--only-tokens}\xspace}
\newcommand{\ostrict}{\texttt{--strict}\xspace}
\newcommand{\osuggestcomp}{\texttt{--suggest-comp-flags}\xspace}
\newcommand{\osuggestlinkb}{\texttt{--suggest-link-flags-byte}\xspace}
\newcommand{\osuggestlinko}{\texttt{--suggest-link-flags-opt}\xspace}
\newcommand{\otable}{\texttt{--table}\xspace}
\newcommand{\otimings}{\texttt{--timings}\xspace}
\newcommand{\otrace}{\texttt{--trace}\xspace}
\newcommand{\ostdlib}{\texttt{--stdlib}\xspace}
\newcommand{\oversion}{\texttt{--version}\xspace}
\newcommand{\obase}{\texttt{-{}-base}\xspace}
\newcommand{\ocomment}{\texttt{-{}-comment}\xspace}
\newcommand{\odepend}{\texttt{-{}-depend}\xspace}
\newcommand{\orawdepend}{\texttt{-{}-raw-depend}\xspace}
\newcommand{\odump}{\texttt{-{}-dump}\xspace}
\newcommand{\oerrorrecovery}{\texttt{-{}-error-recovery}\xspace}
\newcommand{\oexplain}{\texttt{-{}-explain}\xspace}
\newcommand{\oexternaltokens}{\texttt{-{}-external-tokens}\xspace}
\newcommand{\ofixedexc}{\texttt{-{}-fixed-exception}\xspace}
\newcommand{\ograph}{\texttt{-{}-graph}\xspace}
\newcommand{\oinfer}{\texttt{-{}-infer}\xspace}
\newcommand{\ointerpret}{\texttt{-{}-interpret}\xspace}
\newcommand{\ointerpretshowcst}{\texttt{-{}-interpret-show-cst}\xspace}
\newcommand{\ologautomaton}{\texttt{-{}-log-automaton}\xspace}
\newcommand{\ologcode}{\texttt{-{}-log-code}\xspace}
\newcommand{\ologgrammar}{\texttt{-{}-log-grammar}\xspace}
\newcommand{\onoinline}{\texttt{-{}-no-inline}\xspace}
\newcommand{\onostdlib}{\texttt{-{}-no-stdlib}\xspace}
\newcommand{\oocamlc}{\texttt{-{}-ocamlc}\xspace}
\newcommand{\oocamldep}{\texttt{-{}-ocamldep}\xspace}
\newcommand{\oonlypreprocess}{\texttt{-{}-only-preprocess}\xspace}
\newcommand{\oonlytokens}{\texttt{-{}-only-tokens}\xspace}
\newcommand{\ostrict}{\texttt{-{}-strict}\xspace}
\newcommand{\osuggestcomp}{\texttt{-{}-suggest-comp-flags}\xspace}
\newcommand{\osuggestlinkb}{\texttt{-{}-suggest-link-flags-byte}\xspace}
\newcommand{\osuggestlinko}{\texttt{-{}-suggest-link-flags-opt}\xspace}
\newcommand{\otable}{\texttt{-{}-table}\xspace}
\newcommand{\otimings}{\texttt{-{}-timings}\xspace}
\newcommand{\otrace}{\texttt{-{}-trace}\xspace}
\newcommand{\ostdlib}{\texttt{-{}-stdlib}\xspace}
\newcommand{\oversion}{\texttt{-{}-version}\xspace}
% Adding mathstruts to ensure a common baseline.
\newcommand{\mycommonbaseline}{
\let\oldnt\nt
\renewcommand{\nt}[1]{$\mathstrut$\oldnt{##1}}
\let\oldbasic\basic
\renewcommand{\basic}[1]{$\mathstrut$\oldbasic{##1}}
}
......@@ -2,12 +2,12 @@
\let\fpacm\true
\documentclass[onecolumn,11pt,nocopyrightspace]{sigplanconf}
\usepackage{amstext}
\usepackage[OT1]{fontenc}
\usepackage{graphicx}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{type1cm}
\usepackage{tikz}
\usepackage{xspace}
\usepackage{mymacros}
\def\fppdf{true}
\usepackage{fppdf}
\input{macros}
\input{version}
......@@ -130,8 +130,10 @@ the user to define module $T$ and to make sure that it exports a suitable
out of a grammar specification using the \oonlytokens switch.
\docswitch{\ofixedexc} This switch causes the exception \texttt{Error} to be
declared equal to \texttt{Parsing.Parse\_error}. This helps increase Menhir's
compatibility with \ocamlyacc. There is otherwise no reason to use it.
internally defined as a synonym for \texttt{Parsing.Parse\_error}. This means
that an exception handler that catches \texttt{Parsing.Parse\_error} will also
catch the generated parser's \texttt{Error}. This helps increase Menhir's
compatibility with \ocamlyacc. There is otherwise no reason to use this switch.
\docswitch{\ograph} This switch causes a description of the grammar's
dependency graph to be written to the file \nt{basename}\dott. The graph's
......@@ -148,8 +150,9 @@ especially when advanced features such as \menhir's standard library or
compiler usually needs to consult a few \texttt{.cm[iox]} files. This means
that these files must have been created first, requiring \Makefile changes and
use of the \odepend switch. The file \distrib{demos/Makefile.shared} suggests
how to deal with this difficulty. Another option is to avoid \make altogether
and use \ocamlbuild, which has built-in knowledge of \menhir.
how to deal with this difficulty. A better option is to avoid \make altogether
and use \ocamlbuild, which has built-in knowledge of \menhir. Using
\ocamlbuild is also \textbf{strongly recommended}!
% There is a slight catch with \oinfer. The types inferred by \ocamlc are valid
% in the toplevel context, but can change meaning when inserted into a local
......@@ -1071,9 +1074,23 @@ fringe of some partial derivation tree is a \emph{sentential form}.
\paragraph{Why shifting is legal}
\begin{figure}
\vspace{5mm}
\mycommonbaseline
\begin{center}
\hskip -3mm\includegraphics{tree1}
\begin{tikzpicture}[level distance=12mm]
\node { \nt{expression} }
child { node {\basic{IF}} }
child { node {\nt{expression}} }
child { node {\basic{THEN}} }
child { node {\nt{expression}}
child { node {\basic{IF}} }
child { node {\nt{expression}} }
child { node {\basic{THEN}} }
child { node {\nt{expression}} }
child { node {\basic{ELSE}} }
child { node {\nt{expression}} }
}
;
\end{tikzpicture}
\end{center}
\caption{A partial derivation tree that justifies shifting}
\label{fig:shifting:tree}
......@@ -1114,9 +1131,23 @@ token, it makes sense for it to \emph{shift} that token.
\paragraph{Why reducing is legal}
\begin{figure}
\vspace{5mm}
\mycommonbaseline
\begin{center}
\hskip -3mm\includegraphics{tree2}
\begin{tikzpicture}[level distance=12mm]
\node { \nt{expression} }
child { node {\basic{IF}} }
child { node {\nt{expression}} }
child { node {\basic{THEN}} }
child { node {\nt{expression}}
child { node {\basic{IF}} }
child { node {\nt{expression}} }
child { node {\basic{THEN}} }
child { node {\nt{expression}} }
}
child { node {\basic{ELSE}} }
child { node {\nt{expression}} }
;
\end{tikzpicture}
\end{center}
\caption{A partial derivation tree that justifies reducing}
\label{fig:reducing:tree}
......@@ -1164,9 +1195,29 @@ the question: following \basic{UIDENT}, what's the next terminal symbol on the
fringe?
\begin{figure}
\vspace{5mm}
\mycommonbaseline
\begin{center}
\hskip -3mm\includegraphics{tree3}
\begin{tikzpicture}[level distance=12mm,level 1/.style={sibling distance=18mm},
level 2/.style={sibling distance=18mm},
level 4/.style={sibling distance=24mm}]]
\node { \nt{decls} }
child { node {\nt{decl}}
child { node {\basic{DATA}} }
child { node {\basic{UIDENT}} }
child { node {\basic{EQUALS}} }
child { node {\nt{tycon\_expr}}
child { node {\nt{tycon\_item}}
child { node {\basic{UIDENT}} }
child { node {\nt{opt\_type\_exprs}}
child { node {} edge from parent [dashed] }
}
}
}
}
child { node {\nt{opt\_semi}} }
child { node {\nt{decls}} }
;
\end{tikzpicture}
\end{center}
\caption{A partial derivation tree that justifies reducing}
\label{fig:xreducing:tree}
......@@ -1832,7 +1883,7 @@ of it into your own \Makefile, or submit suggestions for improvement.
\question{I am unable to write a correct \Makefile for \menhir, and so are
you.} True enough. Have a look at \ocamlbuild. It has built-in compilation
rules for \ocaml and \menhir. Maybe that will help.
rules for \ocaml and \menhir. That should help.
\question{\menhir reports \emph{more} shift/reduce conflicts than
\ocamlyacc! How come?} \ocamlyacc sometimes merges two states
......
\documentclass[onecolumn,11pt,nocopyrightspace]{sigplanconf}
\usepackage{pstricks,pst-node,pst-tree}
\usepackage[OT1]{fontenc}
\input{macros}
\begin{document}
\thispagestyle{empty}
\pstree[nodesep=3pt,levelsep=30pt]
{\TR{\nt{expression}}}
{
\TR{\basic{IF}}
\TR{\nt{expression}}
\TR{\basic{THEN}}
\pstree{\TR{\nt{expression}}}
{
\TR{\basic{IF}}
\TR{\nt{expression}}
\TR{\basic{THEN}}
\TR{\nt{expression}}
\TR{\basic{ELSE}}
\TR{\nt{expression}}
}
}
\end{document}
\documentclass[onecolumn,11pt,nocopyrightspace]{sigplanconf}
\usepackage{pstricks,pst-node,pst-tree}
\usepackage[OT1]{fontenc}
\input{macros}
\begin{document}
\thispagestyle{empty}
\pstree[nodesep=3pt,levelsep=30pt]
{\TR{\nt{expression}}}
{
\TR{\basic{IF}}
\TR{\nt{expression}}
\TR{\basic{THEN}}
\pstree{\TR{\nt{expression}}}
{
\TR{\basic{IF}}
\TR{\nt{expression}}
\TR{\basic{THEN}}
\TR{\nt{expression}}
}
\TR{\basic{ELSE}}
\TR{\nt{expression}}
}
\end{document}
\documentclass[onecolumn,11pt,nocopyrightspace]{sigplanconf}
\usepackage{pstricks,pst-node,pst-tree}
\usepackage[OT1]{fontenc}
\input{macros}
\begin{document}
\thispagestyle{empty}
\pstree[nodesep=3pt,levelsep=30pt]
{\TR{\nt{decls}}}
{
\pstree{\TR{\nt{decl}}}
{
\TR{\basic{DATA}}
\TR{\basic{UIDENT}}
\TR{\basic{EQUALS}}
\pstree{\TR{\nt{tycon\_expr}}}
{
\pstree{\TR{\nt{tycon\_item}}}
{
\TR{\basic{UIDENT}}
\pstree[linestyle=dotted]
{\TR{\nt{opt\_type\_exprs}}}
{
\TR{.}
}
}
}
}
\TR{\nt{opt\_semi}}
\TR{\nt{decls}}
}
\end{document}
#!/bin/sh
# Ce script installe la dernire version du Makefile magique en provenance
# de chez Christian.
mkdir tmp
cd tmp
wget http://konkuk.ac.kr/~rinderkn/Software/automatex.tar.gz
tar xvfz automatex.tar.gz
if diff ./configure.ac ../configure.ac > /dev/null && diff ./Makefile.in ../Makefile.in > /dev/null ; then
echo "Aucune nouvelle version n'est disponible."
cd ..
rm -rf tmp
else
mv configure.ac Makefile.in ..
cd ..
rm -rf tmp
if pwd | grep skeletons > /dev/null ; then
echo "Mise jour effectue."
else
echo "Mise jour effectue. Configuration..."
autoconf
./configure
fi
fi
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment