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
|
#===========================================================
#
# Makefile du projet ................
#
# Auteur : .................
# Date de création : ................
# Date de modification : ................
#
# Version Actuelle du projet: ................
#
# Histoire:
# - ver -- date -- comment
# - ..... -- ...... -- .....................................
#
#===========================================================
#variables
SRCDIR = ./src/
OBJDIR = ./obj/
EXEC = ./bin/LachFem
DEPFILE = $(OBJDIR)mk.depend
INCDIR =
LIBDIR =
INCLIB = -lstdc++
#les programmes et leurs options
MSQ = @
MSG = $(MSQ)echo
MSG_OK = $(MSG) " Ok"
MSG_CCOK = $(MSG) " a été correctement compilé"
MSG_DEPOK = $(MSG) " *** dépendances calculées"
MSG_BUILDOK = $(MSG) "Le Projet a été construit!"
RM = $(MSQ)rm -rf
CC = $(MSQ)gcc
SED = sed -e "s/\(.*\.o:\)/$(subst /,\/,$(OBJDIR))\1/g"
CFLAGS = -O3 -Wall
LFLAGS = -O3 -Wall
#variables automatiques
SRC = $(wildcard $(SRCDIR)*.cpp $(SRCDIR)*/*.cpp $(SRCDIR)*/*/*.cpp $(SRCDIR)*/*/*/*.cpp)
SRC_H = $(wildcard $(SRCDIR)*.h $(SRCDIR)*/*.h $(SRCDIR)*/*/*.h $(SRCDIR)*/*/*/*.h)
OBJ = $(patsubst %.cpp,$(OBJDIR)%.o,$(notdir $(SRC)))
all:
ifeq ($(wildcard $(DEPFILE)), )
all:$(DEPFILE)
-include $(DEPFILE)
else
include $(DEPFILE)
all:$(EXEC)
endif
$(EXEC):$(OBJ)
$(MSG) "==== édition de liens ===== "
$(CC) $(LFLAGS) $(OBJ) -o $(EXEC) $(LIBDIR) $(INCLIB)
$(MSG_BUILDOK)
$(DEPFILE): $(SRC) $(SRC_H)
$(MSG) "Calcul des dependances..."
$(RM) $(DEPFILE)
$(CC) -MM $(SRC) $(CFLAGS) $(INCDIR) | $(SED) > $(DEPFILE)
$(MSG_DEPOK)
$(OBJ):
$(MSG) "---- compilation $*.cpp ------"
$(CC) -c $< -o $@ $(CFLAGS) $(INCDIR)
$(MSG) -n " +++ $*.cpp "
$(MSG_CCOK)
clean:
$(RM) $(OBJ) $(DEPFILE)
#============ fin du makefile ======================== |