私はlibXrender
パッケージのconfigure.ac
ファイルを理解しようとしています:私はAC_INIT
、およびAM_INIT_AUTOMAKE
、などなど、GNU Autotool群のインストールディレクトリに指定されているマクロ、およびXORG_MACROS_VERSION
されていることを理解しどこから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
をX.orgパッケージのインストールディレクトリに指定されています(私は思う)。
私が分かりませんが、どこから$VERSION
、$PACKAGE_VERSION
、$LIBS
のような変数が得られますか? configure.ac
は "トップレベル"の入力ファイルのようになっていませんか?
詳細な回答ありがとうございました!私はあなたが私の混乱を正しく指摘したと信じています。私は関数の観点から考えていました。つまり、変数の値を渡すことができるように、 "configure"がどこから呼び出されるのかを考えていました。今はマクロ拡張であることがわかりました - autoconfはすべてのマクロを他の場所で見つかった定義を使用してconfigure.acを作成し、それらの定義にはいくつかの変数定義もあります。これは "configure"に終わります。上記のconfigure.acで参照されているのは間接的に定義された変数です。 –
configure.acのこれらの変数への参照は、 "configure"でも終了しますが、*これらの変数の定義を含むAC_INITのような前のマクロの展開されたバージョンの後に*終わります。 –