From 7e20eb2b2bb23fe1e6f0ea01ae986d1bf336bb8a Mon Sep 17 00:00:00 2001 From: Fabien Givors Date: Mon, 29 Oct 2012 13:19:37 +0100 Subject: [PATCH] Correction pour les Makefiles --- TP-0/Makefile | 15 +++--- TP-0/src/Makefile | 10 ++++ TP-0/tex-src/Makefile | 18 +++++++ TP-0/tex-src/src/.Makefile.swp | Bin 0 -> 12288 bytes TP-0/tex-src/src/Makefile-basique | 10 ++++ TP-0/tex-src/src/shell-doc.c | 45 +++++++++++++++++ TP-0/tex-src/src/shell-fgets.c | 16 ++++++ TP-0/tex-src/src/shell-hello_world.c | 8 +++ TP-0/tex-src/tuto.tex | 73 +++------------------------ 9 files changed, 120 insertions(+), 75 deletions(-) create mode 100644 TP-0/src/Makefile create mode 100644 TP-0/tex-src/Makefile create mode 100644 TP-0/tex-src/src/.Makefile.swp create mode 100644 TP-0/tex-src/src/Makefile-basique create mode 100644 TP-0/tex-src/src/shell-doc.c create mode 100644 TP-0/tex-src/src/shell-fgets.c create mode 100644 TP-0/tex-src/src/shell-hello_world.c diff --git a/TP-0/Makefile b/TP-0/Makefile index ccad907..a400ad1 100644 --- a/TP-0/Makefile +++ b/TP-0/Makefile @@ -1,3 +1,5 @@ +.PHONY: tuto.pdf + # Par défaut, on construit le fichier shell, la doc, et le fichier tuto.pdf all: shell doc tuto.pdf @@ -12,17 +14,14 @@ doc: src/shell.c doxygen Doxyfile # Pour construire tuto.pdf, on a besoin du fichier tuto.tex -tuto.pdf: tex-src/tuto.tex - # On crée un répertoire pour les fichiers temporaires - mkdir -p .build-latex - # On compile le fichier .tex en utilisant ce répertoire temporaire - pdflatex -output-directory .build-latex $^ - # On crée dans le répertoire courant un lien vers le fichier .pdf généré - ln -f .build-latex/$@ +tuto.pdf: + $(MAKE) -C tex-src/ tuto.pdf + ln -f tex-src/tuto.pdf # Pour nettoyer les fichiers temporaires clean: - rm -fr .build-latex + $(MAKE) -C tex-src/ cleanall + $(MAKE) -C src/ cleanall # Pour nettoyer tous les fichiers générés cleanall: clean diff --git a/TP-0/src/Makefile b/TP-0/src/Makefile new file mode 100644 index 0000000..60d7f0a --- /dev/null +++ b/TP-0/src/Makefile @@ -0,0 +1,10 @@ +all: shell + +# Pour construire le fichier shell, on a besoin du fichier shell.c +shell: src/shell.c + # La ligne de commande suivante compile le fichier shell.c en shell + gcc -Wall -pedantic --extra-warnings -std=c99 -o $@ $^ + +# Pour nettoyer tous les fichiers générés +cleanall: + rm -f shell diff --git a/TP-0/tex-src/Makefile b/TP-0/tex-src/Makefile new file mode 100644 index 0000000..0170ce6 --- /dev/null +++ b/TP-0/tex-src/Makefile @@ -0,0 +1,18 @@ +# Par défaut, on construit le fichier shell, la doc, et le fichier tuto.pdf +all: tuto.pdf + +# Pour construire tuto.pdf, on a besoin du fichier tuto.tex +tuto.pdf: tuto.tex + # On crée un répertoire pour les fichiers temporaires + mkdir -p .build-latex + # On compile le fichier .tex en utilisant ce répertoire temporaire + pdflatex -output-directory .build-latex $^ + # On crée dans le répertoire courant un lien vers le fichier .pdf généré + ln -f .build-latex/$@ + +# Pour nettoyer les fichiers temporaires +clean: + rm -fr .build-latex + +cleanall: clean + rm -f tuto.pdf diff --git a/TP-0/tex-src/src/.Makefile.swp b/TP-0/tex-src/src/.Makefile.swp new file mode 100644 index 0000000000000000000000000000000000000000..85981c96677e54d2f3ca02f33d637641e0e51759 GIT binary patch literal 12288 zcmeI&yKWRQ6b9fEx<%q5@&YGpO1!g>0ul*{7Kun(a1jlX%r%{dr9eYnqeM>{0tI?<=}cJg8KBc0bo zRqc*KOkK}~#RTWOxNwkkp7skCvlw35oQkqiwaZ0rb4W!xN!duwsMXA(>Cab00hBn<0SG_<0uX=z1Rwwb2tWV=5P-lxD47ikIo+WE!izZkjzB@+7p8z0EnC*vL7wi5r`^a^}$4n7Cfd{bC*$bIE-l)W)!S zCNo*hY^i;A(pL63N3CA#=$)?*!up^%cJk{G6TL#iXWNP=}qt{$JWK)7r4d2v*rVvBqyKC Mc71uGj-lV-Cy|hw>Hq)$ literal 0 HcmV?d00001 diff --git a/TP-0/tex-src/src/Makefile-basique b/TP-0/tex-src/src/Makefile-basique new file mode 100644 index 0000000..60d7f0a --- /dev/null +++ b/TP-0/tex-src/src/Makefile-basique @@ -0,0 +1,10 @@ +all: shell + +# Pour construire le fichier shell, on a besoin du fichier shell.c +shell: src/shell.c + # La ligne de commande suivante compile le fichier shell.c en shell + gcc -Wall -pedantic --extra-warnings -std=c99 -o $@ $^ + +# Pour nettoyer tous les fichiers générés +cleanall: + rm -f shell diff --git a/TP-0/tex-src/src/shell-doc.c b/TP-0/tex-src/src/shell-doc.c new file mode 100644 index 0000000..7a5eff1 --- /dev/null +++ b/TP-0/tex-src/src/shell-doc.c @@ -0,0 +1,45 @@ +/** + * @file + * @author Votre Nom + * @version 1.0 + * + * @section LICENSE + * + * Ce programme est un logiciel libre ; vous pouvez le redistribuer ou le + * modifier suivant les termes de la GNU General Public License telle que + * publiée par la Free Software Foundation ; soit la version 3 de la licence, + * soit (à votre gré) toute version ultérieure. + * + * Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE + * GARANTIE ; pas même la garantie implicite de COMMERCIABILISABILITÉ ni + * d'ADÉQUATION à UN OBJECTIF PARTICULIER. Consultez la GNU General Public + * License pour plus de détails. + * + * Vous devriez avoir reçu une copie de la GNU General Public License en même + * temps que ce programme ; si ce n'est pas le cas, consultez + * . + * + * @section DESCRIPTION + * + * Ce fichier contient un programme affichant "Bonjour DF !" à l'écran. + */ + +/** + * main fonction d'entrée du programme. + * + * main affiche simplement du texte puis termine en renvoyant le code d'erreur + * indiquant le bon déroulement de l'exécution. + * + * @param argc nombre d'arguments dans la ligne de commande appelante + * @param argv tableau des arguments de la ligne de commande + * @return code de terminaison du programme + **/ + +#include + +int main(int argc, char* argv[]) +{ + printf("Bonjour DF !\n"); + + return 0; +} diff --git a/TP-0/tex-src/src/shell-fgets.c b/TP-0/tex-src/src/shell-fgets.c new file mode 100644 index 0000000..8202095 --- /dev/null +++ b/TP-0/tex-src/src/shell-fgets.c @@ -0,0 +1,16 @@ +#include + +#define TAILLE_BUF 256 + +int main(int argc, char* argv[]) +{ + printf("Bonjour DF !\n"); + printf("Entrez du texte !\n"); + + char buffer[TAILLE_BUF]; + fgets((char*)&buffer,TAILLE_BUF, stdin); + + printf("Vous avez entré : %s\n", buffer); + + return 0; +} diff --git a/TP-0/tex-src/src/shell-hello_world.c b/TP-0/tex-src/src/shell-hello_world.c new file mode 100644 index 0000000..c54567f --- /dev/null +++ b/TP-0/tex-src/src/shell-hello_world.c @@ -0,0 +1,8 @@ +#include + +int main(int argc, char* argv[]) +{ + printf("Bonjour DF !\n"); + + return 0; +} diff --git a/TP-0/tex-src/tuto.tex b/TP-0/tex-src/tuto.tex index 7c9a840..4612d58 100644 --- a/TP-0/tex-src/tuto.tex +++ b/TP-0/tex-src/tuto.tex @@ -87,14 +87,7 @@ source {\tt shell.c} dans le répertoire {\tt src/} précédemment créé. Voici un code simple affichant simplement du texte sur la sortie standard et terminant. -\begin{lstlisting}[language=c,caption=src/shell.c] -int main(int argc, char* argv[]) -{ - printf("Bonjour DF !\n"); - - return EXIT_SUCCESS; -} -\end{lstlisting} +\lstinputlisting[language=c,caption=src/shell-hello\_world.c]{src/shell-hello_world.c} % }}} \subsubsection{Première compilation} @@ -108,50 +101,7 @@ Bonjour DF ! \subsubsection{Documentation} % {{{ -\begin{lstlisting}[language=C,caption=shell.c] -/** - * @file - * @author Votre Nom - * @version 1.0 - * - * @section LICENSE - * - * Ce programme est un logiciel libre ; vous pouvez le redistribuer ou le - * modifier suivant les termes de la GNU General Public License telle que - * publiée par la Free Software Foundation ; soit la version 3 de la licence, - * soit (à votre gré) toute version ultérieure. - * - * Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE - * GARANTIE ; pas même la garantie implicite de COMMERCIABILISABILITÉ ni - * d'ADÉQUATION à UN OBJECTIF PARTICULIER. Consultez la GNU General Public - * License pour plus de détails. - * - * Vous devriez avoir reçu une copie de la GNU General Public License en même - * temps que ce programme ; si ce n'est pas le cas, consultez - * . - * - * @section DESCRIPTION - * - * Ce fichier contient un programme affichant "Bonjour DF !" à l'écran. - */ - -/** - * main fonction d'entrée du programme. - * - * main affiche simplement du texte puis termine en renvoyant le code d'erreur - * indiquant le bon déroulement de l'exécution. - * - * @param argc nombre d'arguments dans la ligne de commande appelante - * @param argv tableau des arguments de la ligne de commande - * @return code de terminaison du programme - **/ -int main(int argc, char* argv[]) -{ - printf("Bonjour DF !\n"); - - return EXIT_SUCCESS; -} -\end{lstlisting} +\lstinputlisting[language=c,caption=src/shell-doc.c]{src/shell-doc.c} \begin{lstlisting}[language=bash,caption=Dans votre shell] $ doxygen Doxyfile @@ -165,28 +115,17 @@ $ doxygen Doxyfile \subsection{Le Makefile} % {{{ -\lstinputlisting[language=make,caption=Makefile]{Makefile} +\lstinputlisting[language=make,caption=Makefile]{src/Makefile-basque} % }}} % }}} - \section{Lire et écrire sur l'entrée standard} +% {{{ -\begin{lstlisting}[language=c,caption=shell.c] -int main(int argc, char* argv[]) -{ - printf("Bonjour DF !\n"); - printf("Entrez du texte !\n"); - - char buffer[256]; - gets(&buffer); - printf("Vous avez entré : %s\n"); - - return EXIT_SUCCESS; -} -\end{lstlisting} +\lstinputlisting[language=c]{src/shell-fgets.c} +% }}} % }}} \end{document}