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

Linux Discussion :

makefile + création d'arboressante


Sujet :

Linux

  1. #1
    Membre confirmé
    Homme Profil pro
    T24 Admin
    Inscrit en
    Avril 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : T24 Admin
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2007
    Messages : 80
    Par défaut makefile + création d'arboressante
    Bonjour,

    j'ai pas vraiment de très bonnes connaissances en makefile et j'arrive pas a faire ce que je veux.
    voila: j'ai un code a compiler puis a tester suivant plusieurs options avec gcc et icc et ce que je veux c'est crée un makefile qui me permet d'avoir une arbo ressante dans un dossier que j'appelle "resultat" avec le fichier exécutable résultant de l'étape de compilation tel que le fichier soit appelé de la façon suivante :

    saxpy_<xxx><yyyy>
    où xxx et le nom du compilo "gcc" ou "icc" et "yyyy" l'option de compilation ex : -O0 ou -O1 ....

    et je veut bien qu'elle soit dans un sous dossier de résultat qui porte le nom d'option ex: -O2 -O0 -O3 etc
    pour obtenir des resultat ressemblante a :

    -O1/saxpy_gcc-O1,-O1/saxpy_icc-O1 -O3/saxpy_icc-O3, -O3/saxpy_icc-O3 ....
    et pour ce fait j'ai pensé a faire ce qui suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    go0:
        SRC=saxpy.c
        CC=gcc
        FLAGS = -o0
        $(CC) $(FLAGS) -o $(OBJ)$(CC)$(FLAGS) $(SRC)
        if [ ! -e $(DIR)/$(FLAGS) ]; then
            mkdir $(DIR)/$(FLAGS)
        mv $(OBJ)$(CC)$(FLAGS) $(DIR)/$(FLAGS)
        rm -f saxpy*
    io0:
        SRC=saxpy.c
        CC=icc
        FLAGS = -o0
        $(CC) $(FLAGS) -o $(OBJ)$(CC)$(FLAGS) $(SRC)
        if [ ! -e $(DIR)/$(FLAGS) ]; then
            mkdir $(DIR)/$(FLAGS)
        mv $(OBJ)$(CC)$(FLAGS) $(DIR)/$(FLAGS)
        rm -f saxpy*
    go1:
        SRC=saxpy.c
        CC=gcc
        FLAGS = -o1
        $(CC) $(FLAGS) -o $(OBJ)$(CC)$(FLAGS) $(SRC)
        if [ ! -e $(DIR)/$(FLAGS) ]; then
            mkdir $(DIR)/$(FLAGS)
        mv $(OBJ)$(CC)$(FLAGS) $(DIR)/$(FLAGS)
        rm -f saxpy*
    mais ça ne marche pas !!!
    SVP pourriez vous m'aider en filant un coup de main ou me mettre sur une piste.

  2. #2
    Membre émérite Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Par défaut
    Quand tu tapes make, tu as l'affichage de ce qui est exécuté.

    Je pense que l'erreur doit venir du fait que (FLAGS = -o0) et que ta ligne de compile ressemble à (gcc -o0 -o foogcc -o0 foo.c). Je pense qu'il doit y avoir un problème d'espace.

  3. #3
    Membre confirmé
    Homme Profil pro
    T24 Admin
    Inscrit en
    Avril 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : T24 Admin
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2007
    Messages : 80
    Par défaut j'y arrive a 85%
    Bonjour,
    Pour mon sujet d'arboressante je crois que j'ai trouvé une solution qui a un peut bugué au début(a cause de mon niveau faible en makefile) mais actuellement je fait 85% de ce que je veut voila une échantillon du code pour ceux qui s'intéresse a faire un truc ressemblant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    CC=
    SRC=
    DRAPEAUX=
    OBJ=_saxpy_
    BASEDIR=$(shell pwd)
    DIR=resultat
    RM=/bin/rm
     
    # gzero : compilation gcc sans aucune option de compilation
    gzero: DRAPEAUX = zero 
    gzero: SRC=$(BASEDIR)/source/saxpy.c 
    gzero: CC=gcc
    gzero:     
        @$(CC) -o $(CC)$(OBJ)$(DRAPEAUX) $(SRC)
        @if ! test -e $(BASEDIR)/$(DIR)/$(DRAPEAUX) ; then \
            cd $(DIR); \
             mkdir $(DRAPEAUX);\
             cd .. ;\
         fi
        @mv $(CC)$(OBJ)$(DRAPEAUX) $(BASEDIR)/$(DIR)/$(DRAPEAUX)
        @rm -f $(CC)$(OBJ)$(DRAPEAUX)
     
    # gO0 : compilation gcc avec l'option -O0 
    go0: DRAPEAUX = O0
    go0: SRC=$(BASEDIR)/source/saxpy.c
    go0: CC=gcc
    go0:     
        @$(CC) -$(DRAPEAUX) -o $(CC)$(OBJ)$(DRAPEAUX) $(SRC)
        @if ! test -e $(BASEDIR)/$(DIR)/$(DRAPEAUX) ; then cd $(DIR); mkdir -v $(DRAPEAUX);    cd .. ;    fi
        @mv $(CC)$(OBJ)$(DRAPEAUX) $(BASEDIR)/$(DIR)/$(DRAPEAUX)
        @rm -f $(CC)$(OBJ)$(DRAPEAUX)
    Et ce que je veut faire actuellement c'est faire un tag pour faire un nettoyage "cleanall" et un nettoyage par fichier produit
    ex: j'ai produit par "make go0" le fichier "gcc_saxpy_O0" et je veut avec un "cleango0" supprimer le fichier "gcc_saxpy_O0" sauf que suivant ce que j'ai fait ça fait pas ce que je veut
    pour le nettoyage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    cleanall: 
        cd $(BASEDIR)/$(DIR);
        $(RM) -R *
        echo ok;
    pour la surpression d'un fichier specifique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    cleango0:
        cd $(BASEDIR)/$(DIR)/$(DRAPEAUX);
        rm -f $(CC)$(OBJ)$(DRAPEAUX)
    Voila, merci pour votre aide

Discussions similaires

  1. Création des Makefiles (-I manquant ?)
    Par LittleWhite dans le forum Qt Creator
    Réponses: 1
    Dernier message: 10/09/2011, 11h15
  2. Création de makefile pour librairie dynamique
    Par Ganondorf dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 12/11/2010, 08h59
  3. Création d'un makefile pour compilation automatique
    Par freestyler dans le forum Delphi
    Réponses: 48
    Dernier message: 08/06/2007, 14h47
  4. Aide à la création d'un makefile
    Par komper_63 dans le forum C++
    Réponses: 5
    Dernier message: 06/01/2007, 14h47
  5. Création de règles de dépendance pour un Makefile
    Par d'Oursse dans le forum Windows
    Réponses: 1
    Dernier message: 07/12/2006, 11h20

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