diff options
author | Jakob Odersky <jodersky@gmail.com> | 2011-03-11 20:13:06 +0000 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2011-03-11 20:13:06 +0000 |
commit | cc47a21b3c70a8f91ef945e6c127d4f2e3b007da (patch) | |
tree | 6fe420b2e67a505e1cd8eb4f6c14b0e1c151a60d /Makefile | |
parent | db6a4e8f183b7fb1492b5eef7d91ab05509a8311 (diff) | |
download | vhc-cc47a21b3c70a8f91ef945e6c127d4f2e3b007da.tar.gz vhc-cc47a21b3c70a8f91ef945e6c127d4f2e3b007da.tar.bz2 vhc-cc47a21b3c70a8f91ef945e6c127d4f2e3b007da.zip |
Mise en place d'un systeme de Makefiles. Lancer `make all' _dans_le_repertoire_du_projet_ pour une compilation du projet.
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 60 |
1 files changed, 40 insertions, 20 deletions
@@ -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 |