From f2163b32810d75bb4ea3e3f7c91ccdf2c6ada61a Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Sat, 12 Mar 2011 13:04:12 +0000 Subject: Ajout des cibles make dans eclipse. Ajout d'une explication sur la structure du projet (structure.pdf). --- .cproject | 22 +++- Makefile | 14 ++- src/main/namespace.ccbak | 2 - src/main/vhc.cc | 2 + structure.lyx | 322 +++++++++++++++++++++++++++++++++++++++++++++++ structure.pdf | Bin 0 -> 66838 bytes 6 files changed, 353 insertions(+), 9 deletions(-) delete mode 100644 src/main/namespace.ccbak create mode 100644 src/main/vhc.cc create mode 100644 structure.lyx create mode 100644 structure.pdf diff --git a/.cproject b/.cproject index e47c00e..c036af7 100644 --- a/.cproject +++ b/.cproject @@ -143,6 +143,7 @@ + @@ -151,7 +152,7 @@ all true true - true + false make @@ -159,11 +160,26 @@ clean true true - true + false + + + make + + test-build + true + true + false + + + make + + build + true + true + false - diff --git a/Makefile b/Makefile index 1194246..4cc5c84 100644 --- a/Makefile +++ b/Makefile @@ -29,22 +29,28 @@ export BINDIR = $(BASEDIR)/bin # LDFLAGS += -pg # pour profiler # CXXFLAGS += -O2 # pour optimiser la vitesse -.PHONY: all checkdirs build clean +.PHONY: all checkdirs build clean doc -all: checkdirs build test-build +all: checkdirs build test-build doc # Compile les fichiers source principales -build: +build: checkdirs @echo "Building main sources..." make all -C $(SRCDIR)/main @echo "Done building main sources." # Compile les tests -test-build: +test-build: checkdirs build @echo "Building test sources..." make all -C $(SRCDIR)/test @echo "Done building test sources." +# Genere la documentation +doc: + @echo "Building doc..." + doxygen Doxyfile + @echo "Done building doc." + # Verifie l'existance du repertoire de sortie checkdirs: $(BINDIR) diff --git a/src/main/namespace.ccbak b/src/main/namespace.ccbak deleted file mode 100644 index 52d293c..0000000 --- a/src/main/namespace.ccbak +++ /dev/null @@ -1,2 +0,0 @@ -/** Espace de nom contenant tout code relatif au projet `Virtual Hadron Collider'. */ -namespace vhc {}; diff --git a/src/main/vhc.cc b/src/main/vhc.cc new file mode 100644 index 0000000..52d293c --- /dev/null +++ b/src/main/vhc.cc @@ -0,0 +1,2 @@ +/** Espace de nom contenant tout code relatif au projet `Virtual Hadron Collider'. */ +namespace vhc {}; diff --git a/structure.lyx b/structure.lyx new file mode 100644 index 0000000..8926cac --- /dev/null +++ b/structure.lyx @@ -0,0 +1,322 @@ +#LyX 1.6.7 created this file. For more info see http://www.lyx.org/ +\lyxformat 345 +\begin_document +\begin_header +\textclass article +\use_default_options true +\language english +\inputencoding auto +\font_roman default +\font_sans default +\font_typewriter courier +\font_default_family default +\font_sc false +\font_osf false +\font_sf_scale 100 +\font_tt_scale 100 + +\graphics default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_amsmath 1 +\use_esint 1 +\cite_engine basic +\use_bibtopic false +\paperorientation portrait +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\defskip medskip +\quotes_language english +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\author "" +\end_header + +\begin_body + +\begin_layout Title +Structure du projet et makefiles +\end_layout + +\begin_layout Part* +Structure +\end_layout + +\begin_layout Standard +Le dosier du projet, nommé `vhc' (pour `Virtual Hadron Collider'), est structuré + de la manière suivante: +\end_layout + +\begin_layout Standard +\begin_inset listings +lstparams "basicstyle={\ttfamily}" +inline false +status open + +\begin_layout Plain Layout + +vhc +\end_layout + +\begin_layout Plain Layout + +|-- bin +\end_layout + +\begin_layout Plain Layout + +| |-- main +\end_layout + +\begin_layout Plain Layout + +| `-- test +\end_layout + +\begin_layout Plain Layout + +|-- doc +\end_layout + +\begin_layout Plain Layout + +|-- Doxyfile +\end_layout + +\begin_layout Plain Layout + +|-- JOURNAL.txt +\end_layout + +\begin_layout Plain Layout + +|-- Makefile +\end_layout + +\begin_layout Plain Layout + +|-- reponses.lyx +\end_layout + +\begin_layout Plain Layout + +|-- REPONSES.pdf +\end_layout + +\begin_layout Plain Layout + +`-- src +\end_layout + +\begin_layout Plain Layout + + |-- main +\end_layout + +\begin_layout Plain Layout + + `-- test +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Section* +vhc +\end_layout + +\begin_layout Standard +Le répertoire principale (dit `de base') du projet est est `vhc'. + Dans celui-ci se trouvent les fichiers expliqués dans la description officielle + du projet. + Notamment: +\end_layout + +\begin_layout Itemize +JOURNAL +\end_layout + +\begin_layout Itemize +REPONSES +\end_layout + +\begin_layout Itemize +README +\end_layout + +\begin_layout Itemize +Makefile +\end_layout + +\begin_layout Standard +Il contient de plus le fichier `Doxyfile' utilisé pour générer de la documentati +on du code source. +\end_layout + +\begin_layout Section* +src +\end_layout + +\begin_layout Standard +Ce répertoire contient tout le code source, donc les fichiers les plus important +s du projet! Le code source est lui-meme reparti dans les sous-répertoires + suivantes: +\end_layout + +\begin_layout Itemize +main +\begin_inset Newline newline +\end_inset + +Contient le code source principale, c'est à dire tout les fichiers sources + du simulateur. +\begin_inset Newline newline +\end_inset + +Exemples: Vector3D.cc, Vector3D.h, Particle.cc, etc... +\end_layout + +\begin_layout Itemize +test +\begin_inset Newline newline +\end_inset + +Contient le code source des tests. + Les fichiers tests contenant une fonction `main' devraient se terminer + avec `Test'. +\begin_inset Newline newline +\end_inset + +Exemples: Vector3DTest.cc, etc... +\end_layout + +\begin_layout Section* +doc +\end_layout + +\begin_layout Standard +Contient de la documentation générée automatiquement par un outil comme + `doxygen'. +\end_layout + +\begin_layout Standard +Remarque: n'est pas sous contrôle de version. +\end_layout + +\begin_layout Section* +bin +\end_layout + +\begin_layout Standard +Contient les fichiers binaires (i.e. + executables, objets, librairies etc...) compilés du code source. + La structure de ce répertoire est identique a celle de `src', c'est-à-dire + que les tests seront compilés dans `bin/test/' et les sources principaux + dans `bin/main/'. +\end_layout + +\begin_layout Standard +Remarque: n'est pas sous contrôle de version. +\end_layout + +\begin_layout Part* +Makefiles +\end_layout + +\begin_layout Standard +Afin d'automatiser le processus de compilation, un Makefile est présent + dans le répertoire de base. + A cause de la compléxité du répertoire source, le Makefile est récursif. + Cela signifie que ce Makefile ne fait que de déléguer les commandes à deux + makefiles contenus dans les répertoires src/main et src/test. + Ainsi, lorsqu'on ajoute/supprime des fichiers des répertoires précédents, + il suffit de modifier le Makefile contenu dans le répertoire respectif. + En général, il ne faut pas modifer le Makefile de base. +\end_layout + +\begin_layout Standard +Pour plus d'informations voir les commantaires des Makefiles. +\end_layout + +\begin_layout Section* +Commandes +\end_layout + +\begin_layout Standard +Voici quelques commandes pour le Makefile principal. +\end_layout + +\begin_layout Itemize +build +\begin_inset Newline newline +\end_inset + +compile les sources principaux +\end_layout + +\begin_layout Itemize +test-build +\begin_inset Newline newline +\end_inset + +compile les tests +\end_layout + +\begin_layout Itemize +doc +\begin_inset Newline newline +\end_inset + +génère la documentation +\end_layout + +\begin_layout Itemize +all +\begin_inset Newline newline +\end_inset + +lance un build, test-build et doc +\end_layout + +\begin_layout Itemize +clean +\begin_inset Newline newline +\end_inset + +supprime le répertoire bin pour une compilation +\begin_inset Quotes eld +\end_inset + +propre +\begin_inset Quotes erd +\end_inset + + +\end_layout + +\begin_layout Section* +Compilation +\end_layout + +\begin_layout Itemize +Les fichiers source principaux sont compilés et regroupés dans une librairie + statique. + Cette libraire s'appelle `libvhc.a'. +\end_layout + +\begin_layout Itemize +Les tests sont compilés en éxécutables et reliés (linked) avec la librairie + statique `libvhc.a' +\end_layout + +\end_body +\end_document diff --git a/structure.pdf b/structure.pdf new file mode 100644 index 0000000..1f6db3e Binary files /dev/null and b/structure.pdf differ -- cgit v1.2.3