blob: 44160becba0e08c6d22aa953179824b9e1b64f8c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#########################################################################
# Makefile récursif #
#=======================================================================#
# Les variables suivantes sont définies dans un makefile plus haut. #
# BASEDIR répertoire de base du projet #
# SRCDIR répertoire contenant le code source #
# BINDIR répertoire où sont placés tous les objets compilé #
#########################################################################
# Nom du répertoire contenant ce makefile
LOCALDIR = main
# ==> Ajouter ici les objets à compiler
# Si un objet nécessite une compilation non-standard (i.e. pas de règle du style Foo.o : Foo.cc Foo.h), rajouter
# cette règle.
LOCALOBJS = Vector3D.o Particle.o Printable.o Element.o
OBJS=$(addprefix $(BINDIR)/$(LOCALDIR)/,$(LOCALOBJS))
.PHONY = lib
all: checkdirs lib
# Vérifie l'existence du répertoire de sortie
checkdirs: $(BINDIR)/$(LOCALDIR)
# Crée le répertoire de sortie
$(BINDIR)/$(LOCALDIR):
@mkdir -p $@
# Crée une librairie statique des fichiers objets
lib: $(OBJS)
@echo "Packing library..."
ar rcs $(BINDIR)/$(LOCALDIR)/libvhc.a $(OBJS)
@echo "Done packing library."
# Règle implicite qui modifie le répertoire de destination des fichiers .o
$(BINDIR)/$(LOCALDIR)/%.o: %.cc
$(CXX) $(CXXFLAGS) -c $< -o $@
|