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

Bibliothèques, systèmes et outils C Discussion :

2 niveaux de configure.ac


Sujet :

Bibliothèques, systèmes et outils C

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2013
    Messages : 52
    Points : 25
    Points
    25
    Par défaut 2 niveaux de configure.ac
    Bonjour,
    J'utilise les autotools et souhaiterais créer deux "niveaux" de configure.ac.
    Je m'explique:
    J'ai une arborescence de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    PROJET
        |___ SRC
        |     |____ .c
        |
        |___ LIB
              |____LIB1 (.h)
              |____LIB2 (.h)
    Je souhaiterais que mes librairies soient portables et facilement compilables(qu'elles aient un propre outil de génération), et je compte créer des configure.ac/makefile.am pour les générer.

    Ensuite, j'ai besoin de ces librairies pour créer un exécutable en les linkant aux .c. Pour créer cet exécutable, je vais aussi faire des configure.ac/Makefile.am, et il faudrait que lorsque je vais ./configure dans PROJET, ce configure.ac "appelle" d'abord le configure.ac pour qu'il génère les librairies.

    Merci d'avance pour votre aide, et désolée pour l'exotisme de la question.

  2. #2
    Membre expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Points : 3 352
    Points
    3 352
    Par défaut
    Hello,

    l'intérêt d'avoir un sous projet géré indépendamment avec les autotools est qu'il peut justement vivre sa vie indépendamment
    Il n'y en a en revanche aucun si ta bibliothèque est uniquement utilisée par ton appli.

    Pour réaliser ça tu peux simplement utiliser la macro AC_CONFIG_SUBDIRS qui prend pour paramètre la liste des sous répertoires qui sont également à configurer par un configure.
    Ensuite dans ton top Makefile.am tu listes dans le bon ordre les sous répertoire à construire dans la variable SUBDIRS.

    Tu peux trouver un petit exemple dans la doc autoconf : Nesting Packages.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2013
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Super, merci beaucoup!
    Est-ce que c'est possible de faire la même chose avec une bibliothèque dynamique?

  4. #4
    Membre expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Points : 3 352
    Points
    3 352
    Par défaut
    oui .... peu importe la profondeur ou la nature des packages.

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2013
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Ce que je voulais demander, en fait, c'est si une bibliothèque dynamique se construit comme une statique (comme dans l'exemple, en remplaçant les .a par des .so).

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2013
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Oh, je n'avais pas compris que bibliothèques partagées et dynamiques sont la même chose.

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2013
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Une dernière question:
    Dans le cas du lien que tu m'as donné, la librairie est dans un sous répertoire.
    Mais si elle est située dans un répertoire différent, puis-je remplacer "hand" (le sous répertoire avec la librairie) par un lien absolu?

    Dans le configure.ac
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AC_CONFIG_SUBDIRS([hand])
    Dans le Makefile.am

  8. #8
    Membre expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Points : 3 352
    Points
    3 352
    Par défaut
    Les autotools ne sont pas vraiment prévus pour ça, même si ça pourrait fonctionner.
    L'idée des subpackages est surtout de fournir à l'utilisateur, soit une version particulière de bibliothèque, soit de lui éviter d'avoir à downloader/installer séparément une bibliothèque sachant qu'on n'utilisera pas le subpackage si l'utilisateur l'a déjà.

    Si tes bibliothèques sont intimement liées à ton programme (seul ton programme les utilise par exemple) alors ça a du sens de n'avoir qu'un projet sans subpackages.
    Si tu prévois que ces bibliothèques pourraient être utilisées dans d'autres projets mais que ce n'est pas encore le cas, ça a du sens de les proposer en subpackages de ton projet.
    Si elles sont déjà utilisées dans d'autres projets, et qu'elles sont déjà gérées par autotools alors ça a aussi du sens de le proposer en subpackages, mais ça a aussi du sens de les proposer comme packages indépendants.

    Maintenant, si tu as un package pour tes bibliothèques, un autre pour ton programme tu peux également mettre les deux projets au même niveau chacun dans leur répertoire et proposer un script de compilation/création qui pourrait être tout aussi bien un script personnel ou un configure.ac. Dans ce dernier cas, cela revient à avoir un nouveau projet ayant deux sous packages : les bilbiothèques d'un côté, ton programme de l'autre.
    Quelque chose du genre (seul les répertoires avec un configure.ac sont notés) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    BODY
      |
      +-- ARM
      |
      `-- HAND
    Souvent quand on découvre les possibilités d'un outil on essaye de les utiliser même si ce n'est pas forcément une bonne chose
    Le découpage de ton projet n'a peut-être pas besoin d'être aussi fin ni d'utiliser une hiérarchie aussi profonde.

Discussions similaires

  1. Réponses: 9
    Dernier message: 30/07/2015, 16h20
  2. Réponses: 0
    Dernier message: 19/11/2009, 14h23
  3. [Smarty] Configuration d'un templates_dir à plusieurs niveaux
    Par danidan75 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 14/05/2009, 15h32
  4. BDE : Configurer automatiquement le NETDIR
    Par Harry dans le forum Paradox
    Réponses: 10
    Dernier message: 29/07/2002, 11h33

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