[gull] Makefile / cmake / interpretation de commande au link
    Marc SCHAEFER 
    schaefer at alphanet.ch
       
    Wed Jan  3 15:02:10 CET 2007
    
    
  
On Wed, Jan 03, 2007 at 10:58:59AM +0100, B. Carrupt wrote:
> J'utilise cmake pour compiler en C++ mes projets sur une Fedora core 1 et j'ai un souci avec le link lorsque j'utilise wxWindows.
Dans de tels cas, il manque en général pas mal d'informations
(background) pour éviter d'avoir des dizaines de mails fragmentaires :->
Je ne crois pas avoir utilisé cmake. Je suppose que cet outil *génère*
des fichiers Makefile, selon la plateforme (un peu comme imake,
automake, et autres?).
Ces fichiers sont ensuite lus par la commande usuelle `make'.
Si oui, il nous faudrait un extrait du Makefile concerné. Quitte à
déposer le Makefile entier sur un serveur HTTP ou FTP et donner l'URL
ici-même.
> J'ai essaye de supprimer les parametres de la commande `wx-config`, mais j'ai toujours le meme probleme, ce coup-ci avec l'accent ferme :
make ne supporte pas, à ma connaissance, l'expansion via les backticks
(`). Du moins pas GNU make.
Si je lis le manuel (info make), je trouve (section 8.11):
      The `shell' function performs the same function that backquotes
      (``') perform in most shells: it does "command expansion".  This means
      that it takes as an argument a shell command and evaluates to the
      output of the command.  The only processing `make' does on the result
      is to convert each newline (or carriage-return / newline pair) to a
      single space.  If there is a trailing (carriage-return and) newline it
      will simply be removed.
Donc, si dans le fichier Makefile généré par cmake il y a une ligne du
genre:
   WXCONFIG=`wx-config`
elle devrait être changée en:
   WXCONFIG=$(shell wx-config)
Une alternative serait d'utiliser une autre version de make, qui
supporterait peut-être cette syntaxe.
En général, ce genre de programme retourne un chemin (p.ex. le chemin
aux bibliothèques, etc).
> J'ai ensuite supprime tout ce qui touche `wx-config` dans le link et ca ne me donne plus d'erreur. Mais evidemment cmake me regenere les fichiers avec `wx-config`. Et j'en aurai surement besoin plus loin.
> 
> Une suggestion ?
Il n'est jamais interdit de lancer ses outils dans un Makefile de plus
haut niveau, comme p.ex.:
   all: application
   
   application: Makefile
   
   Makefile:
   	cmake
   	patch < $(PATCHES)/fix-incorrect-wx-config-call
   
   clean:
   	make clean
   	rm -f Makefile
Mais bien sûr, peut-être que le problème est dû à un bug dans la
distribution; consulter le système de bug-reporting pour p.ex. le
package cmake; chercher sur Google, etc; pour éviter d'appliquer
un work-around à un problème connu, voire déjà résolu.
    
    
More information about the gull
mailing list