0

我想知道是否有办法在运行configure时从脚本中删除依赖项检查make dist。目的是存储库中的软件包版本用于emacs执行 lisp 文件并生成.c文件,而这些生成的源文件在运行时包含在 tarballmake dist中。Automake 支持在输出 tarball 中包含构建文件,只需EXTRA_DIST在 Makefile 中进行设置即可。我希望emacs仅在有人尝试从存储库编译时进行检查,而不是在有人从 tarball 编译时进行检查。

更具体地说,在configure.ac我有:

 AM_PATH_LISPDIR
 AS_IF([test "$EMACS" = no], [AC_MSG_ERROR([cannot find emacs])])

但我希望在make dist运行后不会发生该检查。有什么办法可以做到这一点?如果不是,这个案子一般是怎么处理的?

4

2 回答 2

1

我想出的最好方法是检查Bootstrap文件是否存在。Bootstrap运行后从 tarball 中删除make dist

AC_CHECK_FILE([Bootstrap])
if test "$ac_cv_file_Bootstrap" == yes ; then
    <check for emacs>
fi
于 2013-06-01T01:00:07.823 回答
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。如果没有,可以调整路径。

于 2013-05-11T23:16:39.400 回答