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] Comment faire une condition?


Sujet :

Linux

  1. #1
    Membre éclairé Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Points : 723
    Points
    723
    Par défaut [Makefile] Comment faire une condition?
    Bonjour,
    Je dois realiser un Makefile qui permet de compiler un projet sous plusieurs OS.
    J'ai reussi a en faire une premiere version mais elle ne me semble pas propre du tout et j'aimerai essayer de faire des conditions dans mon Makefile.
    Voici ce que j'ai teste apres avoir lu la doc mais comme vous vous en doute, ca ne fonctionne pas :p

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    OS = `uname -s`
    ifeq ($(OS), "SunOS")
            @echo "Je suis sous SunOS"
    ifeq ($(OS), 'Linux')
            @echo "Je suis sous Linux"
    ifeq ($(OS), 'FreeBSD')
            @echo "Je suis sous FreeBSD"
    Ma question est simple, que dois je modifier pour que ca fonctionne?

  2. #2
    Membre averti Avatar de fransoo
    Inscrit en
    Novembre 2009
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 209
    Points : 300
    Points
    300
    Par défaut
    Quel est donc ce shell ?
    En bash j'aurais écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    OS=$(uname -s)
    case $OS in
        SunOS)    echo "Je suis sous SunOS" ;;
        Linux)    echo "Je suis sous Linux"  ;;
        FreeBSD)  echo "Je suis sous FreeBSD" ;;
    esac

  3. #3
    Membre éclairé Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Points : 723
    Points
    723
    Par défaut
    Je suis sous tcsh, mais je pensais que make avait ca propre syntaxe pour faire une condition non?

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Août 2007
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Août 2007
    Messages : 190
    Points : 219
    Points
    219
    Par défaut
    Salut,

    Voilà ce que je te propose :
    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
    OS := $(shell uname -s)
     
    ifeq ($(OS), SunOS)
    default:
    	@echo SunOS
    else
    ifeq ($(OS), FreeBSD)
    default:
    	@echo FreeBSD
    else
    ifeq ($(OS), Linux)
    default:
    	@echo Linux
    else
    default:
    	@echo Unknown OS
    endif
    endif
    endif

  5. #5
    Membre éclairé Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Points : 723
    Points
    723
    Par défaut
    Bonsoir,
    ta proposition ne semble pas retenir l'attention de make qui me hurle des erreurs incomprehensible

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Août 2007
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Août 2007
    Messages : 190
    Points : 219
    Points
    219
    Par défaut
    Le plus simple serait que tu postes ton Makefile (ou une version simplifiée qui reproduit le problème) car chez moi le Makefile que j'ai posté fonctionne...

  7. #7
    Membre confirmé Avatar de cboudy
    Profil pro
    Ingénieur informatique industrielle
    Inscrit en
    Avril 2006
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique industrielle
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 407
    Points : 627
    Points
    627
    Par défaut
    as tu fais attention à utiliser des vrais tabulations ? Makefile est très pointilleux sur ce genre de choses.

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

Discussions similaires

  1. comment faire une condition ou une instruction avec gtk
    Par Invité dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 31/05/2009, 16h06
  2. Comment faire une condition aux limites?
    Par j-mike dans le forum MATLAB
    Réponses: 10
    Dernier message: 09/10/2008, 14h28
  3. Comment faire une condition switch
    Par y-bab dans le forum IHM
    Réponses: 3
    Dernier message: 07/08/2008, 09h37
  4. Comment faire une condition en C#
    Par Calvein dans le forum ASP.NET
    Réponses: 3
    Dernier message: 02/06/2008, 10h31
  5. Réponses: 16
    Dernier message: 06/04/2007, 13h36

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