Automake:使用make dist删除配置脚本检查

时间:2013-05-11 22:53:31

标签: automake

我想知道在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运行后检查不要发生。有什么办法吗?如果没有,这种情况通常如何处理?

2 个答案:

答案 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位于同一位置。如果没有,则可以调整路径。