configure.acには、設定を呼び出すときに含める必要がある貴重な変数[1]があります。たとえば、システムLuaインタプリタの位置を貴重な変数[2]で設定します。
configure.ac:
...
dnl Make LUA a precious variable.
AC_ARG_VAR([LUA], [The Lua interpreter, e.g. /usr/bin/lua5.1])
command line:
./configure LUA=lua-5.3.6/src/lua
OR
export LUA=lua-5.3.6/src/lua
./configure
しかし、ユーザーが環境変数として毎回追加するように要求するのではなく、Luaインタプリタの場所をハードコードしたいと思います。これをどのようにconfigure.acにハードコードできますか?
[1]https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Setting-Output-Variables.html
[2]:AC_ARG_VARは実際にm4マクロにネストされています。http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/ax_lua.m4
答え1
を使用すると仮定すると、AX_PROG_LUA
より良いアプローチはaction-not-foundブランチを使用することです。
AX_PROG_LUA[([MINIMUM-VERSION], [TOO-BIG-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])]
そのブランチ内でデフォルトを使用して必要なパスを設定できます(またはより良い方法は、まずこのパスで実際にluaを見つけることができることを確認することです)。
これの利点は、(1)既存のマクロを変更する必要がなく、(2)パッケージが破損しないことです。欲しくないハードコーディングしたいパスにluaを含めます。
これがあなたのユースケースではなく、パッケージに特定のバージョンのLUAが含まれている場合(ユースケースを伝えていないので推測する必要がある)、パスを設定するだけです。それに頼る代わりに直接AX_PROG_LUA
。