summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2011-03-12 13:04:12 +0000
committerJakob Odersky <jodersky@gmail.com>2011-03-12 13:04:12 +0000
commitf2163b32810d75bb4ea3e3f7c91ccdf2c6ada61a (patch)
tree7db53b842e3c03517c278d3ac6f71e37f22ed2a8
parenta4dc61b5e52fd8b0e89c575583b37277c9a43ffb (diff)
downloadvhc-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--.cproject22
-rw-r--r--Makefile14
-rw-r--r--src/main/vhc.cc (renamed from src/main/namespace.ccbak)0
-rw-r--r--structure.lyx322
-rw-r--r--structure.pdfbin0 -> 66838 bytes
5 files changed, 351 insertions, 7 deletions
diff --git a/.cproject b/.cproject
index e47c00e..c036af7 100644
--- a/.cproject
+++ b/.cproject
@@ -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">
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/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
new file mode 100644
index 0000000..1f6db3e
--- /dev/null
+++ b/structure.pdf
Binary files differ