Forum Programmation.c++ Makefile et structure de fichier

Posté par  .
Étiquettes : aucune
0
21
fév.
2007
Bonjour,

Je voudrais savoir s'il est possible d'utiliser un Makefile et d'avoir une hiérarchie de répertoire du type :
src/ (là où on trouve les .cpp)
include/ (là où on trouve les .h)
obj/ (là où on génère les .o )


J'utilise cxx comme compilateur. D'après les gens qui m'entourent c'est impossible de façon propre mais j'ai un doute quand même.
  • # Mais si, c'est possible

    Posté par  (site web personnel) . Évalué à 3.

    INC_PATH = ${MODULE_ROOT}/include
    SRC_PATH = ${MODULE_ROOT}/src
    OBJ_PATH = ${MODULE_ROOT}/obj
    SOURCES = toto.cpp titi.cpp
    OBJECTS = ${SOURCES:%.cpp=${OBJ_PATH}/%.o}
    
    INCLUDES = -I${INC_PATH}
    
    DIRS = ${OBJ_PATH} ${BIN_PATH} .....
    
    all: ${DIRS} ${TARGETS}
    
    ${OBJ_PATH}:
    	mkdir -p $@
    
    ....
    
    ${OBJ_PATH}/%.o : ${SRC_PATH}/%.cpp
    	${CCC} ${FLAGS} ${INCLUDES} -c $< -o $@
    
    ...
    
    Il y a d'autres façons de faire, mais c'est une base où les seules choses à modifier sont SOURCES et TARGETS
    • [^] # Re: Mais si, c'est possible

      Posté par  . Évalué à 3.

      Une variante pour ceux qui ne souhaitent pas définir à la main la liste des fichiers source de leur projet :
      SOURCES = ${wildcard ${SRC_PATH}/*.cpp}
      OBJECTS = ${patsubst ${SRC_PATH}/%.cpp, ${OBJ_PATH}/%.o, ${SOURCES}}
      • [^] # tutoriel

        Posté par  . Évalué à 1.

        Merci infiniment !
        ça me fait me rendre compte qu'un makefile n'est pas hyper simple à manipuler. Existe-t-il un bon tutoriel pour apprendre à faire des makefile complexes ?
        • [^] # Re: tutoriel

          Posté par  (site web personnel) . Évalué à 2.

          Le man. Car, il y a des techniques qui sont communes à beaucoup de make (comme la substitution, les règles implicites), et d'autres non (comme les wildcards, les appels au shell, .PHONY, ...)

          Sinon, sur developpez Gilles Louise (si je me souviens bien) a écrit un petit tutoriel sur les makefile (de gmake).
          Je te dirais bien de chercher sur wikipedia aussi.
  • # Tutoriel

    Posté par  . Évalué à 1.

    Salut,

    Pour répondre à Luc Hermitte, le tutoriel qui explique comment réaliser un Makefile, c'est ce lien ci => http://gl.developpez.com/tutoriel/outil/makefile/

    @+
    • [^] # Re: Tutoriel

      Posté par  . Évalué à 1.

      Le tuto est plus que moyen.... Mais bon c'est toujours une base pour comprendre l'utilisation de Make.

      Corrections :
      CPPFLAGS=-I../include -W -Wall -pedantic -ansi
      CFLAGS=-02 -g
      LDFLAGS=-L../lib -lmalib

      On ne link pas avec des flags de preprocessing !

      Sinon peut-être un des meilleurs sites :
      http://www.gnu.org/software/make/

      Bon apprentissage :)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.