J'essaie de comprendre le fichier configure.ac
pour le package libXrender
:D'où sont substituées les variables dans configure.ac?
...
AC_INIT(libXrender, [0.9.8], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXrender])
AC_CONFIG_SRCDIR([Makefile.am])
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
AC_PROG_LIBTOOL
# Require X.Org macros 1.8 or later for AC_PROG_INSTALL
m4_ifndef([XORG_MACROS_VERSION], [m4_fatal([must install xorg-macros 1.8 or later before running autoconf/autogen])])
XORG_MACROS_VERSION(1.8)
XORG_DEFAULT_OPTIONS
XORG_CHECK_MALLOC_ZERO
# Check render configuration, strip extra digits from package version to
# find the required protocol version
if test "$VERSION" = "" ; then
VERSION=$PACKAGE_VERSION;
fi
RENDER_VERSION=[`echo $VERSION | sed 's/^\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/'`]
AC_SUBST(RENDER_VERSION)
# Obtain compiler/linker options for depedencies
PKG_CHECK_MODULES(RENDER, x11 renderproto >= $RENDER_VERSION)
# Check for _XEatDataWords function that may be patched into older Xlib release
SAVE_LIBS="$LIBS"
LIBS="$RENDER_LIBS"
AC_CHECK_FUNCS([_XEatDataWords])
LIBS="$SAVE_LIBS"
AC_CONFIG_FILES([Makefile
src/Makefile
xrender.pc])
AC_OUTPUT
Je comprends que AC_INIT
et AM_INIT_AUTOMAKE
, etc. sont des macros qui sont spécifiées dans les répertoires d'installation GNU Autotools et XORG_MACROS_VERSION
, etc. sont spécifié dans les répertoires d'installation du paquet X.org (je pense). Ce que je ne comprends pas est, d'où les variables comme $VERSION
, $PACKAGE_VERSION
et $LIBS
obtiennent-elles leurs valeurs? N'est-ce pas configure.ac
censé être comme, le fichier d'entrée «de premier niveau»?
Merci pour la réponse détaillée! Je crois que vous avez correctement indiqué ma confusion. Je pensais du point de vue des fonctions, c'est à dire d'où "configure" sera appelé, de sorte que les valeurs de ces variables puissent être transmises. Je réalise maintenant que c'est juste de la macro expansion - autoconf étend juste toutes les macros de configure.ac en utilisant des définitions trouvées ailleurs, et dans ces définitions il y aura aussi des définitions de variables, qui finissent dans "configure".Ce sont ces variables indirectement définies qui sont référencées dans configure.ac montré ci-dessus. –
Les références à ces variables dans configure.ac se retrouveront également dans "configure", mais * après * les versions développées des macros précédentes comme AC_INIT, qui contiendra les définitions de ces variables. –