2017-09-19 11 views
0

J'ai un projet avec deux modules (client et serveur). Chaque module est dans son sous-dossier, avec son propre fichier make. J'ai un seul fichier configure.ac dans le répertoire racine du projet.Comment définir une configuration séparée pour le sous-projet

Nous utilisons AC_SEARCH_LIBS pour définir des indicateurs de compilation pour le projet. Le problème est que les deux modules doivent utiliser des bibliothèques différentes (le serveur a besoin de pthread, pas de client).

Comment est-il possible de définir différents drapeaux de compilation pour les différents modules?

Quelle est la meilleure pratique?

Dois-je diviser configure.ac? (si oui, comment cela devrait être fait correctement)

Répondre

0

Il n'est pas nécessaire de diviser en plusieurs configure.ac.

L'astuce est de créer différentes variables de substitution pour chaque bibliothèque, que vous pouvez ensuite utiliser indépendamment dans votre Makefile.am s

configure.ac (extrait):

AC_SEARCH_LIBS([fooFun], [foo], [FOO_LIBS="-lfoo"]) 
AC_SEARCH_LIBS([barFun], [bar], [BAR_LIBS="-lbar"]) 
AC_SEARCH_LIBS([bazFun], [baz], [BAZ_LIBS="-lbaz"]) 
AC_SUBST([FOO_LIBS]) 
AC_SUBST([BAR_LIBS]) 
AC_SUBST([BAZ_LIBS]) 

et le serveur/Makefile. am (extrait):

server_LDADD = @[email protected] @[email protected] 

resp. client/Makefile.am (extrait):

client_LDADD = @[email protected]