L'équivalent d'une variable AM_LDADD
est tout simplement LDADD
. par exemple,
LDADD = -llibrary
test1_SOURCES = ...
...
test20_SOURCES = ...
Si vous avez besoin de passer outre LDADD
pour un programme particulier: prog
, puis prog_LDADD
aura toujours la priorité.
Je suppose toujours que, puisqu'il n'y avait pas de variable d'environnement standard LDADD
passé à configure
- comme vous pouvez le voir avec configure --help
- il n'y a aucune raison pour un AM_LDADD
. Ce genre de logique, comme le script configure
, et toutes les options, par exemple, --with-foo=<path>
devraient (idéalement) travailler sur les dépendances de la bibliothèque.
D'autre part, en passant par CFLAGS
configure
pourrait encore avoir besoin d'un AM_CFLAGS
qui combine CFLAGS
et avec d'autres drapeaux du compilateur déterminés par le script de configuration; ou même un override foo_CFLAGS
. Depuis configure
doit être informé de votre personnalisation CFLAGS
.
De plus, je ne sais pas si les programmes test<n>
ne prennent qu'un seul fichier source C++, mais le cas échéant, vous pouvez simplifier le Makefile.am
avec:
LDADD = -llibrary
check_PROGRAMS = test1 test2 ... test20
AM_DEFAULT_SOURCE_EXT = .cC# or .cpp
comme décrit here.
En ce qui concerne votre commentaire, votre peut utiliser un convenience library à cette fin - ce qui est particulièrement utile pour le code commun utilisé par les programmes de test:
noinst_LIBRARIES = libfoo.a # or noinst_LTLIBRARIES = libfoo.la
libfoo_a_SOURCES = MyClass.hh MyClass.cc # or libfoo_la_SOURCES
LDADD = ./libfoo.a -llibrary # or libfoo.la if using libtool.
... etc ...
Merci pour le dernier conseil, malheureusement, les tests nécessitent la classe d'essai et la classe d'origine, une idée de la façon de traiter? –
@ VicenteAdolfoBoleaSánchez - oui, il y a un moyen facile pour cela - je vais ajouter à la réponse. Utilisez-vous 'libtool' avec votre paquet? –
Ce n'est pas vraiment un fichier de bibliothèque statique (.a), c'est une bibliothèque tierce donc je préfère ne pas le modifier. –