\chapter{Manuel}
\section{Procédure de compilation}
\paragraph{}
L'arborescence de notre projet respecte le standard d'arborescences des projets GNU,
en outre nous avons utilisé les logiciels Autoconf et Automake pour gérer la compilation.
La procédure standard pour compiler ce projet est alors la suivante : \\
\begin{verbatim}
./configure && make all install
\end{verbatim}
Mais étudions plus en détail chacune de ces deux étapes:

\paragraph{configure}

Ce script va générer automatiquement tous les Makefiles en fonction des informations contenues 
dans les fichiers Makefile.am ainsi que des informations qu'il aura récupérées sur le système,
notamment relatives au compilateur, à l'éditeur de liens, à la gestion de librairies dynamiques...
On peut avoir l'ensemble de ses options en l'invoquant par la commande :
\begin{verbatim}
./configure --help
\end{verbatim}
Si l'on veut par exemple compiler le programme avec un répertoire d'installation qui serait ~/usr/Polynom
en activant l'affichage des messages de déboguage, on lancera
\begin{verbatim}
./configure --prefix=~/usr/Polynom --with-debug
\end{verbatim}

\paragraph{make}
L'utilitaire bien connu qui permet de lancer les compilations, il va interpréter tout d'abord le Makefile
principal à la racine du projet puis entrer dans chaque sous répertoire et interpréter récursivement
tous les Makefiles qu'il va rencontrer. L'exécutable final se trouvera dans le répertoire src et se nomme
\textit{Polynom}.
La 'cible' all crée l'exécutable et la cible install l'installe avec ses librairies dans l'endroit
précisé par --prefix dans la ligne de commande de configure. Il est à noter que l'emplacement par défaut
se situe dans /usr/local, or ce dossier n'est typiquement accessible en écriture que par les administrateurs,
c est pourquoi nous vous conseillons de préciser l'option --prefix lors de l'appel de configure.

\section{Exécution du programme}
Le programme Polynom peut prendre un argument sur la ligne de commande à savoir la chaîne de caractères 
servant à décrire la variable muette dans les polynomes, par défaut celle-ci est initialisée à "x".
On invoque alors le programe comme suit: 
\begin{verbatim}
./src/Polynom [variable_muette]
\end{verbatim} 
( Dans un souci de respect des conventions UNIX, cette variable est bien entendu "case sensitive". )
Le programme propose alors son propre interpréteur de commandes, bien entendu dévoué au calcul polynomial.
Les opérateurs reconnus sont les opérateurs classiques sur les polynomes à savoir $'+'$, $'-'$, $'*'$, $'/'$, $'\%'$, '\^\ ', $'='$.
De plus nous avons implémenté quelques fonctions utiles, soit au calcul polynomial, soit à l'uilisation du
programme lui même : 
\begin{itemize}
\item les fonctions mathématiques deriv, derivn et int pour le calcul de la dérivée, de la dérivée $n^{ieme}$ et de la primitive.
\item les fonctions auxiliaires : printvars() pour l'affichage des variables, help() pour l'aide en ligne,
setdisplay(n) pour le mode d'affichage des scalaires, setsmartprint(n) pour le mode d'affichage des polynomes,
reinit() pour la réinitialisation su calculateur et exit() pour quitter le programme.
\end{itemize}
On notera que l'évaluation fonctionne comme dans nombre d'interpréteurs en ce qui concerne la ligne de commande, 
il est nécessaire de terminer chaque ligne par un point-virgule.
Ce programme possède enfin une variable "interne" ANS, mise-à-jour automatiquement à chaque évaluation, celle-ci contenant
toujours le résultat de l'opération précédente. 
