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 shell et automatisation


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 274
    Par défaut Makefile shell et automatisation
    Bonjour à tous,
    cela fait maintenant 1 heure que je bloque sur un problème qu'on pourrait qualifier de "minable" par le peu de difficultés qu'il présente et pourtant ... Je dois avouer que je suis très très très loin d'être un expert dans ce domaine, je dirais même que je n'y connais rien
    Toujours est-il que, étant sous windows, j'ai récemment installé cygwin (-> c'est pour ça que je poste dans cette partie du forum), notamment pour compiler des choses en C utilisables en Caml, mais la n'est pas le problème.

    Le problème est que je dispose de 13 fichiers .c que je compile et qui donnent chacun un executable du même nom (a.c -> a.exe, b.c -> b.exe ...). Jusque là aucun problème, les fichiers se compilent tout seul et j'ai bien mes exécutables. Seulement voilà, pour aller plus vite, même si pour le coup cela m'aura fait perdre un certain temps je souhaite faire un makefile pour compiler tout cela d'un coup : après un petit temps de réflexion et quelques recherches j'écris cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CC=gcc
    OPTS= 
     
    LIBDIR=/usr/local/lib
     
    all: 
    	for F in *.c ; do gcc $$F -L $(LIBDIR) -lportaudio.dll -o `echo $F | sed 's/\(.*\.\)c /\1exe/'` ; done
    Seulement voilà, la partie "regex" du code est toujours vide, autrement dit ici aucun fichier n'est crée puisqu'il manque évidemment une chaîne à coté de l'option -o.

    Ma question est : pourquoi ? et comment résoudre ce problème qui je pense ne doit pas être bien coriace

    Merci par avance !

  2. #2
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 274
    Par défaut
    En fait c'est bon je viens de résoudre mon problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CC=gcc
    OPTS= 
     
    LIBDIR=/usr/local/lib
     
    all: 
    	for F in *.c ; do gcc $$F -L $(LIBDIR) -lportaudio.dll -o "$$(echo "$$F" | sed 's/\(.*\).c$\/\1.exe/')" ; done

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

Discussions similaires

  1. variable initialisée par shell dans un makefile
    Par chambollemusigny dans le forum Systèmes de compilation
    Réponses: 0
    Dernier message: 02/12/2007, 23h36
  2. [Script Shell] Automatiser une installation de package avec su -/sudo
    Par paco69 dans le forum Administration système
    Réponses: 1
    Dernier message: 25/10/2007, 11h19
  3. [Makefile] Problème lancement Makefile dans Shell
    Par domiq44 dans le forum Systèmes de compilation
    Réponses: 14
    Dernier message: 29/11/2006, 15h17
  4. Automatiser un korn shell
    Par tonymontana4192 dans le forum Linux
    Réponses: 1
    Dernier message: 25/11/2005, 17h43
  5. Réponses: 2
    Dernier message: 01/06/2004, 16h12

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