2
我正在創建一個android.m4文件,以便輕鬆查找android SDK/NDK中程序的路徑。爲什麼autoconf緩存我的宏?
的android.m4文件包含一個名爲_android_path_found_notfound
的輔助函數:
# _android_path_found_notfound(variable, program, path, found, notfound)
#
# search for a program in path. If found, 'variable' is set to the absolute path,
# then executes 'found', otherwise, 'variable' is set to '' and 'notfound' is run
m4_define([_android_path_found_notfound],
[AC_PATH_PROG([_android_temp_],[$2],[_android_notfound],[$3])
AS_IF([test x"$_android_temp_" = x"_android_notfound"],
[$1=""
AC_SUBST([$1],[])
$5],
[$1="$_android_temp_"
AC_SUBST([$1],[$_android_temp_])
$4])])
和許多功能,這使用輔助函數:
AC_DEFUN([AC_PROG_ANDROID],
[_android_path_found_notfound([ANDROID],[android],[$ANDROID_HOME:$PATH],[$1],[$2])]
)
AC_DEFUN([AC_PROG_DX],
[_android_path_found_notfound([DX],[dx],[$ANDROID_HOME:$PATH],[$1],[$2])]
)
...
然而,當我運行調用AC_PROG_ANDROID
配置腳本那麼AC_PROG_DX
,我得到這個:
checking for android... /opt/android-sdk-update-manager/tools/android
checking for dx... (cached) /opt/android-sdk-update-manager/tools/android
第二行指向與第一行相同的程序,並讀取(緩存)。爲什麼結果被緩存?
作爲未來讀者的注意事項,以'AC_'開頭的命令是保留的,所以這是一個不錯的選擇。 – qdii 2013-04-25 17:14:37