IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Systèmes de compilation Discussion :

makefile pour plusieurs exécutables


Sujet :

Systèmes de compilation

  1. #1
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut makefile pour plusieurs exécutables
    Bonjour à tous.

    Je suis confronté à un problème assez coriace.
    Je développe un petit jeu vidéo façon stratégie tour par tour (dans le genre de Wesnoth), essentiellement pour le défi.

    Au moment de le compiler, j'ai voulu faire un makefile.
    Jusque là, pas de problème, il marche bien, et le code fonctionne à merveille.
    Par contre, il me vient l'idée de concevoir un "visionneur d'unités", en réutilisant une grande partie du code.

    Le problème est donc le suivant:
    Puisque j'ai deux exécutables à construire, jeu et viewer, chacun utilisant les fichiers proches de unite.cpp (unite.hpp, modele.hpp/.cpp, unitebuffer.hpp/.cpp), comment établir le makefile pour compiler les deux sans lier tous les objets à chaque fois?

    J'ai pensé au début à utiliser deux variables comme JEUSRC et VIEWERSRC, mais ce n'est pas viable.
    Il doit y avoir une solution pour faire cela automatiquement. peut-être dans les auto-tools?

    Merci d'avance.

  2. #2
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Salut.

    Tu peut faire dans un Makefile, des cibles différentes et indépendantes, exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #Makefile
    cible1:
            mkdir ~/dossier
    cible2:
            rm -r ~/dossier
    make tout court ou make cible1 fabriqueront la cible 1, c'est à dire création d'un dossier et make cible2 supprimera ce dossier.

    Ou des cibles liées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #Makefile
    cible1:
            mkdir ~/dossier
    cible2: cible1
            rm -r ~/dossier
    make cible2 fabriquera d'abord la cible 1 avant la cible 2 ...

  3. #3
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Merci, mais c'est pas exactement à ca que je pensais.
    j'aurais plutôt vu un truc dans le genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #makefile
    JEUOBJ=...
    VIEWEROBJ=...
    all:jeu viewer
    jeu : $(JEUOBJ)
    viewer: $(VIEWEROBJ)
    #définition des dépendances des .o
    #compilations de tous
    %.o:%.cpp
        $(CC) ...
    avec la définition de la liste des objets requis se construisant "toute seule"

    Effectivement je pourrai ensuite faire make jeu ou make viewer.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Et en construisant une librairie commune au jeu et au viewer ?

  5. #5
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    C'est pas bête du tout comme solution ça. Je vais voir.

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/11/2013, 12h34
  2. Réponses: 10
    Dernier message: 01/03/2010, 17h06
  3. Exécution une macro pour plusieurs macrovariables
    Par SASMetrics dans le forum Macro
    Réponses: 2
    Dernier message: 26/01/2010, 12h01
  4. Makefile pour projet c++, plusieurs fichiers, classes
    Par thhomas dans le forum Systèmes de compilation
    Réponses: 2
    Dernier message: 04/08/2009, 16h42
  5. makefile ... comment faire plusieurs exécutables !
    Par fregate dans le forum Systèmes de compilation
    Réponses: 9
    Dernier message: 18/12/2005, 16h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo