summaryrefslogtreecommitdiff
path: root/src/main/Makefile
blob: 8b68115083a61745ad97b96ebf0d21c420ce2647 (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 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 = main

# ==> 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.
LOCALOBJS = Vector3D.o Particle.o Printable.o
OBJS=$(addprefix $(BINDIR)/$(LOCALDIR)/,$(LOCALOBJS))
.PHONY = lib

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)
	@echo "Packing library..."
	ar rcs $(BINDIR)/$(LOCALDIR)/libvhc.a $(OBJS)
	@echo "Done packing library."  

# Regle implicite qui modifie le repertoire de destination des fichiers .o
$(BINDIR)/$(LOCALDIR)/%.o: %.cc
	$(CXX) $(CXXFLAGS) -c $< -o $@