diff options
-rw-r--r-- | .cproject | 26 | ||||
-rw-r--r-- | Makefile | 60 | ||||
-rw-r--r-- | src/vhc/Makefile | 33 | ||||
-rw-r--r-- | src/vhc/namespace.ccbak (renamed from src/vhc/namespace.cc) | 0 | ||||
-rw-r--r-- | src/vhctest/Makefile | 37 | ||||
-rw-r--r-- | src/vhctest/Vector3DTest.cc | 2 |
6 files changed, 117 insertions, 41 deletions
@@ -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> @@ -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; |