summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.cproject26
-rw-r--r--Makefile60
-rw-r--r--src/vhc/Makefile33
-rw-r--r--src/vhc/namespace.ccbak (renamed from src/vhc/namespace.cc)0
-rw-r--r--src/vhctest/Makefile37
-rw-r--r--src/vhctest/Vector3DTest.cc2
6 files changed, 117 insertions, 41 deletions
diff --git a/.cproject b/.cproject
index 2cda037..0094808 100644
--- a/.cproject
+++ b/.cproject
@@ -561,17 +561,10 @@
</scannerConfigBuildInfo>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ <storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+ <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
- <buildTargets>
- <target name="qmake" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
- <buildCommand>qmake</buildCommand>
- <buildArguments>-project</buildArguments>
- <buildTarget>qmake.pro</buildTarget>
- <stopOnError>true</stopOnError>
- <useDefaultCommand>false</useDefaultCommand>
- <runAllBuilders>false</runAllBuilders>
- </target>
- </buildTargets>
+ <buildTargets/>
</storageModule>
</cconfiguration>
<cconfiguration id="cdt.managedbuild.config.gnu.cross.exe.release.368302453">
@@ -1132,17 +1125,10 @@
</scannerConfigBuildInfo>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ <storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+ <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
- <buildTargets>
- <target name="qmake" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
- <buildCommand>qmake</buildCommand>
- <buildArguments>-project</buildArguments>
- <buildTarget>qmake.pro</buildTarget>
- <stopOnError>true</stopOnError>
- <useDefaultCommand>false</useDefaultCommand>
- <runAllBuilders>false</runAllBuilders>
- </target>
- </buildTargets>
+ <buildTargets/>
</storageModule>
</cconfiguration>
</storageModule>
diff --git a/Makefile b/Makefile
index 42b97b2..cd77b41 100644
--- a/Makefile
+++ b/Makefile
@@ -1,33 +1,53 @@
-CC := g++
-LD := g++
+#########################################################################
+# Makefile principale #
+#=======================================================================#
+# Les variables suivantes sont definis pour des makefiles plus bas. #
+# BASEDIR repertoire de base du projet #
+# SRCDIR repertoire contenant le code source #
+# BINDIR repertoire ou sont places toutes objets compiles #
+#########################################################################
-MODULES := vhc vhctest
-SRC_DIR := $(addprefix src/,$(MODULES))
-BUILD_DIR := $(addprefix build/,$(MODULES))
-SRC := $(foreach sdir,$(SRC_DIR),$(wildcard $(sdir)/*.cc))
-OBJ := $(patsubst src/%.cc,build/%.o,$(SRC))
-INCLUDES := $(addprefix -I,$(SRC_DIR))
+# Choix du compilateur
+CXX = g++
-vpath %.cc $(SRC_DIR)
+# Repertoire de base
+export BASEDIR = $(abspath .)
-define make-goal
-$1/%.o: %.cc
- $(CC) $(INCLUDES) -c $$< -o $$@
-endef
+# Repertoire de source
+export SRCDIR = $(BASEDIR)/src
-.PHONY: all checkdirs clean
+# Repertoire de sortie
+export BINDIR = $(BASEDIR)/bin
-all: checkdirs build/vhcbin
+# Partie commentée : choisissez les options que vous voulez avoir
+# en décommentant la/les lignes correspondantes
+#
+# CXXFLAGS += -ansi -pedantic -Wall # pour les purs et durs
+# CXXFLAGS += -g # pour debugger
+# CXXFLAGS += -pg # pour profiler
+# LDFLAGS += -pg # pour profiler
+# CXXFLAGS += -O2 # pour optimiser la vitesse
-build/vhcbin: $(OBJ)
- $(LD) $^ -o $@
+.PHONY: all checkdirs build clean
+all: checkdirs build test-build
-checkdirs: $(BUILD_DIR)
+# Compile les fichiers source principales
+build:
+ @echo $(BINDIR)
+ make all -C $(SRCDIR)/vhc
-$(BUILD_DIR):
+# Compile les tests
+test-build:
+ make all -C $(SRCDIR)/vhctest
+
+# Verifie l'existance du repertoire de sortie
+checkdirs: $(BINDIR)
+
+# Cree le repertoire de sortie
+$(BINDIR):
@mkdir -p $@
clean:
- @rm -rf $(BUILD_DIR)
+ @rm -rf $(BINDIR) \ No newline at end of file
diff --git a/src/vhc/Makefile b/src/vhc/Makefile
new file mode 100644
index 0000000..b423444
--- /dev/null
+++ b/src/vhc/Makefile
@@ -0,0 +1,33 @@
+#########################################################################
+# Makefile recursif #
+#=======================================================================#
+# Les variables suivantes sont definis dans un makefile plus haut. #
+# BASEDIR repertoire de base du projet #
+# SRCDIR repertoire contenant le code source #
+# BINDIR repertoire ou sont places toutes objets compiles #
+#########################################################################
+
+# Nom du repertoire contenant ce makefile
+LOCALDIR = vhc
+
+# ==> Ajouter ici les objets a compiler
+# Si un objet necessite une compilation non-standard (i.e. pas de regle du style Foo.o : Foo.cc Foo.h), rajouter
+# cette regle.
+OBJS = Vector3D.o Particle.o
+
+all: checkdirs lib
+
+# Verifie l'existance du repertoire de sortie
+checkdirs: $(BINDIR)/$(LOCALDIR)
+
+# Cree le repertoire de sortie
+$(BINDIR)/$(LOCALDIR):
+ @mkdir -p $@
+
+# Cree une librairie statique des fichiers objets
+lib: $(OBJS)
+ ar rcs $(BINDIR)/$(LOCALDIR)/libvhc.a $(addprefix $(BINDIR)/$(LOCALDIR)/,$(OBJS))
+
+# Regle implicite qui modifie le repertoire de destination des fichiers .o
+%.o: %.cc
+ $(CXX) $(CXXFLAGS) -c $< -o $(BINDIR)/$(LOCALDIR)/$@ \ No newline at end of file
diff --git a/src/vhc/namespace.cc b/src/vhc/namespace.ccbak
index 52d293c..52d293c 100644
--- a/src/vhc/namespace.cc
+++ b/src/vhc/namespace.ccbak
diff --git a/src/vhctest/Makefile b/src/vhctest/Makefile
new file mode 100644
index 0000000..df809a9
--- /dev/null
+++ b/src/vhctest/Makefile
@@ -0,0 +1,37 @@
+#########################################################################
+# Makefile recursif #
+#=======================================================================#
+# Les variables suivantes sont definis dans un makefile plus haut. #
+# BASEDIR repertoire de base du projet #
+# SRCDIR repertoire contenant le code source #
+# BINDIR repertoire ou sont places toutes objets compiles #
+#=======================================================================#
+# ==> indique des champs modifiables aisement #
+#=======================================================================#
+# Comme tous les tests dependent du projet principal, les references au #
+# dossier `vhc' sont autorisees. #
+#########################################################################
+
+# Nom du repertoire contenant ce makefile
+LOCALDIR = vhctest
+
+# ==> Rajouter ici les tests a compiler, i.e. les noms des fichiers tests _sans_ extension
+# Si un objet X necessite une compilation non-standard (i.e. pas de regle du style X: X.cc X.h), rajouter cet objet
+# en fin de BINS ne suffit pas. Il faut de plus creer une nouvelle regle.
+BINS = Vector3DTest
+
+# Inclure les headers de vhc (source principale)
+CXXFLAGS += -I $(SRCDIR)/vhc/
+
+all: checkdirs $(BINS)
+
+# Verifie l'existance du repertoire de sortie
+checkdirs: $(BINDIR)/$(LOCALDIR)
+
+# Cree le repertoire de sortie
+$(BINDIR)/$(LOCALDIR):
+ @mkdir -p $@
+
+# Regle implicite pour les fichiers sans extension (i.e. pour les executables)
+%: %.cc
+ $(CXX) $(CXXFLAGS) $< -static -L$(BINDIR)/vhc -lvhc -o $(BINDIR)/$(LOCALDIR)/$@
diff --git a/src/vhctest/Vector3DTest.cc b/src/vhctest/Vector3DTest.cc
index f203253..bf4203a 100644
--- a/src/vhctest/Vector3DTest.cc
+++ b/src/vhctest/Vector3DTest.cc
@@ -11,7 +11,7 @@
#include <iomanip>
#include <limits>
//TODO change relative include
-#include "../vhc/Vector3D.h"
+#include "Vector3D.h"
using namespace std;
using namespace vhc;