diff options
author | Jakob Odersky <jodersky@gmail.com> | 2011-03-12 13:04:12 +0000 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2011-03-12 13:04:12 +0000 |
commit | f2163b32810d75bb4ea3e3f7c91ccdf2c6ada61a (patch) | |
tree | 7db53b842e3c03517c278d3ac6f71e37f22ed2a8 | |
parent | a4dc61b5e52fd8b0e89c575583b37277c9a43ffb (diff) | |
download | vhc-f2163b32810d75bb4ea3e3f7c91ccdf2c6ada61a.tar.gz vhc-f2163b32810d75bb4ea3e3f7c91ccdf2c6ada61a.tar.bz2 vhc-f2163b32810d75bb4ea3e3f7c91ccdf2c6ada61a.zip |
Ajout des cibles make dans eclipse. Ajout d'une explication sur la structure du projet (structure.pdf).
-rw-r--r-- | .cproject | 22 | ||||
-rw-r--r-- | Makefile | 14 | ||||
-rw-r--r-- | src/main/vhc.cc (renamed from src/main/namespace.ccbak) | 0 | ||||
-rw-r--r-- | structure.lyx | 322 | ||||
-rw-r--r-- | structure.pdf | bin | 0 -> 66838 bytes |
5 files changed, 351 insertions, 7 deletions
@@ -143,6 +143,7 @@ </profile> </storageModule> <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> + <storageModule moduleId="org.eclipse.cdt.core.language.mapping"/> <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"> <buildTargets> <target name="all" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> @@ -151,7 +152,7 @@ <buildTarget>all</buildTarget> <stopOnError>true</stopOnError> <useDefaultCommand>true</useDefaultCommand> - <runAllBuilders>true</runAllBuilders> + <runAllBuilders>false</runAllBuilders> </target> <target name="clean" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> <buildCommand>make</buildCommand> @@ -159,11 +160,26 @@ <buildTarget>clean</buildTarget> <stopOnError>true</stopOnError> <useDefaultCommand>true</useDefaultCommand> - <runAllBuilders>true</runAllBuilders> + <runAllBuilders>false</runAllBuilders> + </target> + <target name="test-build" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> + <buildCommand>make</buildCommand> + <buildArguments/> + <buildTarget>test-build</buildTarget> + <stopOnError>true</stopOnError> + <useDefaultCommand>true</useDefaultCommand> + <runAllBuilders>false</runAllBuilders> + </target> + <target name="build" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> + <buildCommand>make</buildCommand> + <buildArguments/> + <buildTarget>build</buildTarget> + <stopOnError>true</stopOnError> + <useDefaultCommand>true</useDefaultCommand> + <runAllBuilders>false</runAllBuilders> </target> </buildTargets> </storageModule> - <storageModule moduleId="org.eclipse.cdt.core.language.mapping"/> </cconfiguration> </storageModule> <storageModule moduleId="cdtBuildSystem" version="4.0.0"> @@ -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/vhc.cc index 52d293c..52d293c 100644 --- a/src/main/namespace.ccbak +++ b/src/main/vhc.cc 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 Binary files differnew file mode 100644 index 0000000..1f6db3e --- /dev/null +++ b/structure.pdf |