J'ai rencontré un problème similaire. J'utilise AC_CHECK_LIB
pour déterminer si libdvbpsi est disponible.
Au début, j'utilisé les éléments suivants:
AC_CHECK_LIB([dvbpsi], [dvbpsi_pat_attach])
Mais je réalise que dvbpsi_pat_attach
est un nom de fonction qui est présente uniquement dans les dernières versions. Les anciennes versions de la bibliothèque utilisent une ancienne convention de dénomination et la fonction est nommée dvbpsi_AttachPAT
. Mon propre projet a un support de compatibilité en amont pour les versions anciennes et nouvelles de la bibliothèque, donc je devrais être capable de détecter les deux. Ce qui suit est ce que je l'utilise maintenant:
AC_CHECK_LIB([dvbpsi], [dvbpsi_pat_attach], [], [AC_CHECK_LIB([dvbpsi], [dvbpsi_AttachPAT])])
Les deux premiers paramètres sont les mêmes que ce que vous êtes habitué. Le troisième paramètre est laissé vide. Ce paramètre est le action if found
, dont nous ne voulons rien. Le paramètre suivant est le action if not found
... Si ce n'est pas le cas, nous voulons répéter le test mais rechercher un autre nom de fonction. J'ai inséré un AC_CHECK_LIB
imbriqué dans le cas action if not found
et maintenant ce bloc détecte correctement les anciennes et les nouvelles versions de la bibliothèque. De toute évidence, ce n'est pas une solution directe à votre problème, mais cela répond au fait que "AC_CHECK_LIB ne peut pas être appelé deux fois, il renvoie toujours le premier résultat mis en cache.", Comme vous l'avez décrit dans votre question.
Dans votre cas, vous pouvez essayer le bloc de code suivant:
LIBS="$saveLIBS -L$ORACLE_HOME/baddir"
AC_CHECK_LIB([clntsh], [sqlcxt], [], [
LIBS="$saveLIBS -L$ORACLE_HOME/lib32"
AC_CHECK_LIB([clntsh], [sqlcxt], [], [
LIBS="$saveLIBS -L$ORACLE_HOME/lib"
AC_CHECK_LIB([clntsh], [sqlcxt])
])
])
chèques emboîtées produisent souvent script de configuration non valide: par exemple une fonction shell défini après que l'on appelle – basin
il est sûr dans ce cas. fonctionne très bien dans mon propre projet: https://github.com/mkrufky/libdvbtee/blob/master/configure.ac (ligne 47) – mkrufky