我想知道在configure
运行时是否有办法从make dist
脚本中删除依赖项检查。目的是存储库中的软件包版本使用emacs
来执行lisp文件并生成.c
个文件,而那些生成的源文件在运行make dist
时包含在tarball中。 Automake支持在输出tarball中包含构建文件,只需在Makefile中设置EXTRA_DIST
即可。我希望只有当有人试图从存储库编译时才能检查emacs
,但是当有人从tarball编译时却不能。
更具体地说,在configure.ac
我有:
AM_PATH_LISPDIR
AS_IF([test "$EMACS" = no], [AC_MSG_ERROR([cannot find emacs])])
但我想在make dist
运行后检查不要发生。有什么办法吗?如果没有,这种情况通常如何处理?
答案 0 :(得分:1)
我提出的最佳方法是检查是否存在Bootstrap
文件。 <{1}}运行后,{tar}会从tar包中删除Bootstrap
。
make dist
答案 1 :(得分:0)
如果我在configure.ac
中找到该工具,我通常会设置一个条件:
AM_PATH_LISPDIR
AM_CONDITIONAL([HAVE_EMACS_IN_REPOSITORY], [test "x$EMACS" != xno -a -d ".git"])
AS_IF([test "$EMACS" = no -a -d ".git"], [AC_MSG_ERROR([cannot find emacs])])
然后在Makefile.am
if HAVE_EMACS_IN_REPOSITORY
Execute lisp files...
Generate .c files...
endif
通常configure
最终与.git
位于同一位置。如果没有,则可以调整路径。