2016-12-03 1 views
1

Je suis tombé sur une collection de macros autoconf aujourd'hui: https://www.gnu.org/software/autoconf-archive/The-Macros.html#The-Macros. Tous sont préfixés ax_, par ex. ax_ac_append_to_file.m4, qui est activé dans configure.ac en incluant la ligne AX_ABSOLUTE_HEADER().autotools: pourquoi AX _... plutôt que AC _... dans configure.ac?

Dans le passé, je n'avais vu que des macros commençant par AC_.

Est-ce que le passage à AX_ est une convention relativement nouvelle, un moyen d'éviter les collisions d'espace de noms, ou quelque chose d'autre?

Répondre

2

Les macros ont un espace de noms. AC_ fait référence aux macros de Autoconf, AM_ est Automake, LT_ est Libtool, etc.

Dans le passé, il était courant d'autres programmes qui fournissent des macros pour taper du pied sur tout l'espace de noms de Autoconf, ce qui est la raison pour laquelle vous pourriez avoir vu des variations sur certains les macros AX_ dans la nature avec les préfixes AC_.

+0

Ce n'est pas clair. Est-ce que 'AX_' est pour les macros définies par l'utilisateur? –

+0

'AX_' n'est pas spécifique, c'est juste une convention. Ce qui compte, c'est qu'il n'utilise pas l'un des espaces de noms réservés. – ptomato

2

AX_ est l'espace de nom standard pour autoconf-archive, pour l'empêcher de collision avec d'autres implémentations.

Vous trouverez par exemple mon ancien attributes.m4 copié et utilisé dans de nombreux endroits, et qui utilise le préfixe au lieu CC_ (car à l'origine, il a vérifié le compilateur uniquement).