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 :

Syntaxe pour un variable d'environnement dans un makefile


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 77
    Par défaut Syntaxe pour un variable d'environnement dans un makefile
    Bonjour à tous,

    je suis en train de porter du code Windows sous Linux, et donc j'ai un makefile pour compiler sous Linux mais j'aurai besoin d'y mettre une variable d'environnement du genre "Linux" dans mon makefile parce que dans mes sources j'ai des :
    #if defined(Windows)
    ....
    #elseif defined(Linux)
    .....
    #endif

    Merci d'avance pour votre aide

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 484
    Par défaut
    Et qu'est-ce qui t'ennuie ?

    Est-ce que les lignes que tu nous présentes sont extraites de fichiers C ou C++ ? Auquel cas, il suffit de passer l'option « -DLinux » au compilateur pour que la macro concernée soit définie à la compilation.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 77
    Par défaut
    je veux juste savoir ce que je dois ajouter dans mon fichier makefile pour avoir la variable d'environement "Linux" de déclarer lorsque je vais compiler mon projet

    et le -DLinux, je le mets où dans mon fichier makefile (désolé si la question vous semble stupide, mais je n'y connais rien en makefile) :

    OUT_FILE = XXXX

    INC_DIR += .
    C_SRC += XXXX.c
    C_SRC += XXXX.c

    OBJDIR = objdir
    OUTDIR = .

    ##############################################################
    -include $(shell mkdir $(OUTDIR) 2>/dev/null)
    -include $(shell mkdir $(OBJDIR) 2>/dev/null)

    ifeq ($(VERBOSE),1)
    Q =
    else
    Q = @
    endif

    PREFIX =

    CPP =$(PREFIX)cpp
    CC =$(PREFIX)gcc
    AS =$(PREFIX)as
    AR =$(PREFIX)ar
    LD =$(PREFIX)ld
    RANLIB =$(PREFIX)ranlib
    OBJCOPY =$(PREFIX)objcopy
    OBJDUMP =$(PREFIX)objdump
    NM =$(PREFIX)nm


    #CFLAGS = -g -I /usr/include/libusb-1.0/
    CFLAGS = -g -I /home/........
    LDFLAGS = -lpthread -lrt -lusb-1.0.8 -lSDL -lSDL_gfx
    SRC_INC = $(patsubst %,-I%,$(INC_DIR))

    ## Obj files
    C_OBJ = $(addprefix $(OBJDIR)/,$(notdir $(C_SRC:.c=.o)))

    ## Dependency files
    DEP += $(addprefix $(OBJDIR)/,$(notdir $(C_SRC:.c=.d)))

    ##############################################################
    VPATH += $(dir $(C_SRC))

    $(OBJDIR)/%.o: %.c
    @ echo [CC] $<
    $(Q)$(CC) -c $(CFLAGS) $(SRC_INC) $< -o $@
    $(Q)$(CC) -MM $(CFLAGS) $(SRC_INC) -MT $(OBJDIR)/$*.o $< > $(OBJDIR)/$*.d

    $(OUTDIR)/$(OUT_FILE): $(C_OBJ)
    @ echo [LD] $@
    $(Q)$(CC) $(C_OBJ) $(LDFLAGS) -o $(OUTDIR)/$(OUT_FILE)

    ##############################################################

    all: $(C_OBJ) $(OUTDIR)/$(OUT_FILE)
    gcc -c XXXX.c -o XXXX.o -c YYYY.c -o YYYY.o
    objcopy -I binary -O elf32-i386 -B i386 \
    gcc XXXX.o YYYY.o

    clean:
    rm -rf $(OBJDIR)
    rm -f $(OUTDIR)/$(OUT_FILE)

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 77
    Par défaut
    j'ai oublié de préciser que c'est pour un compile en C, sous Linux bien sur

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 484
    Par défaut
    Merci d'utiliser les balises [code] et [/code] (le bouton # de la boîte d'édition) lorsque tu postes un extrait de ton code.

    Ce n'est pas une option du Makefile, qui n'est pas lié, à proprement parler, au langage C. Tu peux t'en servir pour gérer les dépendances de n'importe quel projet.

    C'est une option du compilateur. Donc il faut la rajouter à la liste des options de ta ligne de commande lorsque tu appelles le compilo. Si tu veux faire ça propre, donc, tu les rajoutes à la définition de CFLAGS.

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 77
    Par défaut
    oui merci j'avais trouvé en ajoutant à ma ligne de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CFLAGS = -g -I /home/.... -DLINUX
    Merci pour vos réponses

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WIN2003]définir une variable d'environnement dans un batch
    Par creezeer dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 28/08/2007, 11h25
  2. variable d'environnement dans le fichier manifest.mf
    Par unmecenor dans le forum Langage
    Réponses: 2
    Dernier message: 07/09/2006, 17h40
  3. Réponses: 2
    Dernier message: 14/07/2006, 18h37
  4. [.NET]Modifier les variables d'environnement dans...
    Par GusS dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 09/02/2005, 16h25
  5. Syntaxe pour avoir un seul resultat dans une requete
    Par Pompil dans le forum Requêtes
    Réponses: 2
    Dernier message: 06/09/2003, 15h51

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