Question sur les autotools

Question sur les autotools - Divers - Programmation

Marsh Posté le 19-06-2010 à 11:22:04    

Bonjour,
 
 J'ai question sur la configuration de mes MAkefile.am
 
Voici la structure d'un projet :
trunk
     | object (dossier)
     | com (dossier)
           | ... fichier .cpp et .h
           | Makefile.am
     |Main.cpp
     | log.cpp
     | log.h
     | configure.ac
     | Makefile.am
 
J'aimerai que le Makefile.am du dossier com me génère seulement les .o des classes qui sont dans ce dossier et les places par exemple dans le dossier object mais je ne trouve pas la façon de faire.
Y a t'il une option ou une macro particulière à indiqué ?
 
Merci.
 
PS voici le contenu du Makefile.am situé au niveau du trunk :
 

Code :
  1. # trunk
  2. SUBDIRS =  com
  3. bin_PROGRAMS = MonAppli
  4. MonAppli_SOURCES = log.cpp main.cpp


 

Reply

Marsh Posté le 19-06-2010 à 11:22:04   

Reply

Marsh Posté le 19-06-2010 à 17:11:38    

Quelqu'un à une idée ?

Reply

Marsh Posté le 19-06-2010 à 17:29:56    

ça fait quoi actuellement?

Reply

Marsh Posté le 19-06-2010 à 18:33:27    

actuellement le makefile qui se lance dans le répertoire com me génère tout les .o mais les link tous à la fin or ce n'est pas l'exécutable final, juste une partie. j'aimerai juste que tout les .o soit générer sans faire de linkage ( qui se fera dans le makefile du trunk)

Reply

Marsh Posté le 19-06-2010 à 18:43:47    


 
D'accord
Voici ce que j'avais fait "A l'époque". C'est peut-être moisi mais ça marchait. L'idée c'est de compiler chaque sous répertoire comme une librairie .a  
J'avais un répertoire table. Le makefile.am du répertoire table c'était ça:

Code :
  1. AM_CPPFLAGS = $(DEPS_CFLAGS)
  2. LIBS = $(DEPS_LIBS)
  3. noinst_LIBRARIES = libtable.a
  4. libtable_a_SOURCES = table_cColumnRecord.cc table_cColumnRecord.h \
  5.                 table_cTreeModel.cc table_cTreeModel.h \
  6.                 table_cTreeview.cc table_cTreeview.h \
  7.                 table_cTreeViewColumn.cc table_cTreeViewColumn.h \
  8.                 table_displaywindow.cc table_displaywindow.h \
  9.  Dialog_newDATA.cc Dialog_newDATA.h


 
et ça te crée la librairie libtable.
 
Dans le makefile.am de ton trunk, tu ajoutes la directive qui link avec ta librairie::

Code :
  1. Nom_logiciel_LDADD = ./table/libtable.a


 
J'avais pompé cette structure sur le blog du développeur de gtkmm http://www.openismus.com/documents [...] e/automake
c'est très simplement expliqué.

Reply

Marsh Posté le 19-06-2010 à 19:03:43    

je suis tombé sur cette solution entre temps elle m'a l'air pas mal pour ce que je veux faire je vais tester sa et je vous tiens au courant

Reply

Marsh Posté le 23-06-2010 à 16:54:03    

Bonjour à tous,  
 
J'ai une autre question concernant ce projet.
 
Si je reprend l'exemple de GrosBoc, j'aimerai récupérer la liste des fichiers indiqués dans "libtable_a_SOURCES" par une commande find du shell. j'ai essayer par exemple :
libtable_a_SOURCES = $(shell find . -name *.cpp)
 
mais sa ne fait rien

Reply

Marsh Posté le 23-06-2010 à 20:44:59    

quelqu'un à une idée ?

Reply

Marsh Posté le 23-06-2010 à 20:55:08    


 
j'en sais rien. T'as plus qu'à faire ls >> toto, puis ctrl C ctrl V :-)
Si ça peut être automatisé je suis preneur aussi
 

Reply

Marsh Posté le 23-06-2010 à 20:59:51    

lol bon bah on est 2 ^^

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed