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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
| #--------------------------------------
# makefile pour C
#
# IMPORTANT
# Ne pas oublier de faire:
# make depend
# apres ajout d'un nouveau fichier source (.h) ou (.c)
# ou apres l'ajout d'un #include dans un source
#--------------------------------------
#--------------------------------------
#compilateur
#--------------------------------------
C = gcc
#--------------------------------------
# partie à compléter
#--------------------------------------
#nom du fichier du repertoire principal contenant la fonction main
MAIN_C_SOURCES = main
#nom du répertoire contenant les autres fichiers source
DIR_SOURCES = src
#nom des autres fichiers sources du repertoire DIR_SOURCES
OTHERS_C_SOURCES = lectureFichier memInfo UImemInfo
#répertoire contenant les .h
DIR_INCLUDE = include
#répertoire pour les .o
DIR_OBJETS = lib
#répertoire pour l'exécutable
DIR_BIN = bin
# nom exécutable (si essai alors TARGET = essai)
TARGET = main
#--------------------------------------
#Options et répertoires
#--------------------------------------
#options de compilation
CFLAGS = -Wall -g -c `pkg-config --cflags elementary ecore-evas ecore evas `
#bibliothèques nécessaires
# exemple LIBS = -lm
LIBS = `pkg-config --libs elementary ecore-evas ecore evas`
#Répertoires bibliothèques à consulter
# exemple LIBSDIR = -L./lib
LIBSDIR =
#Répertoires include à consulter
INCLDIR = -I$(DIR_INCLUDE)
#--------------------------------------
# Ne pas modifier la suite
# dépendances:
SOURCEFILES = $(MAIN_C_SOURCES:=.c) \
$(patsubst %,$(DIR_SOURCES)/%,$(OTHERS_C_SOURCES:=.c))
OBJETFILES = $(DIR_OBJETS)/$(MAIN_C_SOURCES:=.o) \
$(patsubst %, $(DIR_OBJETS)/%,$(OTHERS_C_SOURCES:=.o))
OTHERSOBJETFILES = $(patsubst %, $(DIR_OBJETS)/%,$(OTHERS_C_SOURCES:=.o))
$(DIR_BIN)/$(TARGET) : $(OBJETFILES)
@echo "--- Création exécutable :" $(DIR_BIN)/$(TARGET) " ---"
@$(C) $(LIBSDIR) -o $(DIR_BIN)/$(TARGET) $(OBJETFILES) $(LIBS)
#pour le main
$(DIR_OBJETS)/$(MAIN_C_SOURCES:=.o): $(DIR_OBJETS)/%.o : %.c
@echo "--- " compilation $< " ---"
@$(C) $(CFLAGS) $(INCLDIR) $< -o $@
#pour les autres fichiers du répertoire DIR_SOURCES
$(OTHERSOBJETFILES) : $(DIR_OBJETS)/%.o : $(DIR_SOURCES)/%.c
@echo "--- " compilation $< " ---"
@$(C) $(CFLAGS) $(INCLDIR) $< -o $@
#----------------------------------------
# construction dependances
EXPRESSION ="-e s/^/$(DIR_OBJETS)\//"
depend:
@echo "--- Construction dépendances ---"
@$(C) -MM $(INCLDIR) $(SOURCEFILES) | \
sed $(EXPRESSION) >makefile.depend
#----------------------------------------
# utilitaires
clean :
@rm -f *~ $(DIR_SOURCES)/*~ $(DIR_OBJETS)/*.o $(DIR_SOURCES)/*.bak \
$(DIR_INCLUDE)/*~ core $(DIR_BIN)/$(TARGET) makefile.depend
@echo "--- clean OK ---"
@make -s depend
#----------------------------------------
# partie Makedepend
#
-include makefile.depend |
Partager