# inspire de
http://gl.developpez.com/tutoriel/outil/makefile/
# Quelques variables internes au Makefile
# $@ Le nom de la cible
# $< Le nom de la première dépendance
# $^ La liste des dépendances
# $? La liste des dépendances plus récentes que la cible
# $* Le nom du fichier sans suffixe
# compilateur utilise
CC=gcc #CPP pour le C++ et CC pour le C
# CFLAGS regroupe les options de compilation (Généralement cette variable est nommées CFLAGS pour une compilation en C, CXXFLAGS pour le C++)
# ces options ont ete chopees sur
http://www.developpez.net/forums/viewtopic.php?t=418583
#CFLAGS=-Wall -O2 -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int -Werror-implicit-function-declaration -Wmain -Wparentheses -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused -Wuninitialized -Wunknown-pragmas -Wfloat-equal -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wwrite-strings -Wconversion -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wmissing-noreturn -Wformat -Wmissing-format-attribute -Wno-deprecated-declarations -Wpacked -Wredundant-decls -Wnested-externs -Winline -Wlong-long
CFLAGS=-Wall -O2 #ici si je mets CFLAGS=-Wall -Wextra -O2 l'option -Wextra n'est pas reconnue
# LDFLAGS regroupe les options de l'édition de liens
LDFLAGS=-Wall -Wextra -O2 -lm
# on inclut tous les headers
INCLUDE_DIR=../include
# EXEC contient le nom des exécutables à générer.
EXEC=out
# Fichiers sources
SRC= $(wildcard ../Fonctions_auxiliaires/*.c) main.c donnees_systeme.c donnees_initiales.c $(wildcard ../CVode/source/*.c)
# Fichiers objets le .c est remplace par un .o
OBJ=$(SRC:.c=.o)
# Regles de compilation:
all: $(EXEC)
out: $(OBJ)
@$(CC) -o $@ $^ $(LDFLAGS)
# Creation des .o à partir des .c qui se verront appelés par défaut.
%.o: %.c
@$(CC) -o $@ -c $< -I$(INCLUDE_DIR) $(CFLAGS)
clean:
rm -rf $(EXEC) $(OBJ) *~
Partager